【Ubuntu 11.10】Gnome Shell (3.1.91) をグローバルメニュー化(Gnome Shell Global Menu) [ubuntu]
---2011/9/28 追記 ---
Gnome Shell 3.1.92になって、再度入れなおす必要があります。
本記事の手順を始めからやって下さい。ただ、手順7)はする必要が無くなりました。
---2011/9/28 追記終わり---
Gnome Shellをグローバルメニュー化する方法が下記に載ってました。
http://www.webupd8.org/2011/09/get-global-menu-in-gnome-shell.html
試しに私もトライ。
動きますね・・・
それでやり方は、始めに示したリンクの通りなのですが、英語なので簡単にやり方を紹介します。
<< インストール方法 >>
1) 環境を整える。
sudo apt-get install git-core valac-0.12 libvala-0.12-dev libgtk-3-dev gobject-introspection libgirepository1.0-dev libgtk2.0-dev autotools-dev automake autoconf intltool libtool
2) 作業ディレクトリの作成と0.9 alpha 5の展開
cd
mkdir -p globalmenu
cd globalmenu
wget http://gnome2-globalmenu.googlecode.com/files/gnome-globalmenu-0.9.alpha5.tar.bz2
tar -xvf gnome-globalmenu-0.9.alpha5.tar.bz2
4) gitからソースを持ってくる
git clone git://github.com/gnome-globalmenu/gnome-globalmenu.git
5) ブランチを行い、一部のファイルを入れ替える。
cd gnome-globalmenu
git checkout gnome-3
cp ../gnome-globalmenu-0.9.alpha5/src/{module.c,header.h,header-gtk2.h} ./src
6) ビルド&インストール
autoreconf --force --install --verbose
./autogen.sh --prefix=/usr
make
sudo make GTK2_MODULES_DIR=/usr/lib/gtk-2.0/modules GTK3_MODULES_DIR=/usr/lib/gtk-3.0/modules GLIB_COMPILE_SCHEMAS=/bin/true install
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
sudo ln -sfv /usr/lib/gtk-2.0/modules/libglobalmenu-gtk2.so /usr/lib/gtk-2.0/modules/libglobalmenu-gtk.so
※後でブログを見直した時に、ブログの折り返しの都合でどこまでが1つのコマンドか分りませんでした。(*_ _)人ゴメンナサイ。 空行毎に一行です。なのでブログで、押し返してあっても上の行とくっついていれば1つの行のコマンドです。
7) バージョンに合わせてエクステンションを修正
cd /usr/share/gnome-shell/extensions/GlobalMenu@globalmenu.org/
sudo vi metadata.json
ここで、 "shell-version": ["3.0.4"]とかなっている部分を "shell-version": ["3.1.91"] に修正します。基本的に括弧内のバージョンが現在使用しているgnome-shellのバージョンと一致していればよいです。
gnome-shellのバージョンは端末から gnome-shell --version で出ます。私は
次に、下記でextensions.jsを開きます。
sudo vi extension.js
まず、 tracker.connect('app-state-changed' と書いてある部分を探します。そしたら、その行を削除して下記の2行に書き直します。
let appSys = Shell.AppSystem.get_default();
appSys.connect('app-state-changed', Lang.bind(this, this._onAppStateCha
nged));
それで、最後の方に行って、「function main() {」 という行を探します。それを、 「function init(metadata) {」に書き直します。さらにファイルの最後に下記を追記します。
function enable() {
//indicator = new Indicator();
}
function disable() {
indicator.destroy();
}
これでセーブします。diffの方が分かりやすい方の為に下記に載せておきます。
diff -urN a/extension.js b/extension.js
--- a/extension.js 2011-09-10 14:11:32.284649321 +0900
+++ b/extension.js 2011-09-10 14:11:57.632648748 +0900
@@ -417,7 +417,8 @@
let tracker = Shell.WindowTracker.get_default();
tracker.connect('notify::focus-app', Lang.bind(this, this._sync));
- tracker.connect('app-state-changed', Lang.bind(this, this._onAppStateChanged));
+ let appSys = Shell.AppSystem.get_default();
+ appSys.connect('app-state-changed', Lang.bind(this, this._onAppStateChanged));
global.window_manager.connect('switch-workspace', Lang.bind(this, this._sync));
@@ -775,7 +776,7 @@
Mainloop.timeout_add(3000, function () { text.destroy(); });
}
-function main() {
+function init(metadata) {
var leftChildren = Main.panel._leftBox.get_children_list();
var oldAppMenuButton = leftChildren[leftChildren.length - 1];
Main.panel._leftBox.remove_actor(oldAppMenuButton);
@@ -785,3 +786,11 @@
Main.panel._leftBox.add(button.actor);
Main.panel._menus.addMenu(button.menu);
}
+
+function enable() {
+ //indicator = new Indicator();
+}
+
+function disable() {
+ indicator.destroy();
+}
8)環境変数の設定。
cp ~/globalmenu/gnome-globalmenu/globalmenu.sh /etc/profile.d/
sudo chmod +x /etc/profile.d/globalmenu.sh
これでまずログアウト&ログインします。※gnome-shellの再起動でも可能。但し、再起動時に起動していたアプリケーションにはGlobalmenuは適応されません。
9) global menu extensionの有効化
gnome-tweak-toolを使ってShell Extensionsの設定をします。
GlobalMenu Extension をオンにしたときにはWindo List Extensionはオフにしてください。どちらもオンになっていると1つアプリを立ち上げるとパネルに2つアプリが表示されます。
余談ですが、Delta-Shellの場合、下図のようになります。
以前、『【Ubuntu 11.10:Gnome3】Oneiric Alpha 3でGnome Shellを動かすと、デスクトップの上部パネルの背後にメニューバーが出てしまう問題。(Unity以外の環境なら同じ問題が発生する可能性あり)』という記事を書きました。
この時下図のように、パネルの下にメニューが出ていました。
上図の2つを大きくして(クリックして)よく見てもらうとわかるのですが、Gnome Shell Global Menuを入れると(1つ上の図)、メニューの項目は無くなっています。ただ、3mm程度上に白い部分が残ってます。
私の予想ですが、デスクトップの管理の為にNautilusが立ち上げたのにも関わらず、メニュー項目を表示しているのだと思います。 UnityでもGnome Shellでもglobalmenuが動いていると、globalmenuが表示項目を受け取るのですが、どこにも表示できないので、見えないだけではないかと予想しています。
←ワイヤレスマウス
1000円ちょっとでワイヤレスマウス。
ワイヤレスマウスにはあまりよい思い出がない。
でも、これだけ安いとダメ元でと思ってしまいます。
しかし、マウスって消耗品ですね。
コメント 0