【Ubuntu 11.10:Gnome3】Oneiric Alpha 3でGnome Shellを動かすと、デスクトップの上部パネルの背後にメニューバーが出てしまう問題。(Unity以外の環境なら同じ問題が発生する可能性あり) [ubuntu]
Ubuntu 11.10(Oneiric) Alpha 3でGnome Shellを使用していたら、最近ある事に気が付きました。
下図(右上の方)のようにGnome Shellの上部パネルの背後にメニューがうっすら見えるのです。(画像をクリックすると大きく表示されて分ると思います。)
この現象は、Gnome Shellのテーマのパネル部分に透過の設定をしていると発生します。
例えば上図はDelta-Shellのテーマを使用しています。そのスタイルシート(gnome-shell.css)に#panel のbackgroundの設定がありますが、rgbaで透過を使用しています。(下図:本来のDelta-Shellは0.6の透過値です)
このPanel部分に透過を使用してないテーマは始めの図のようにメニューが透けて出てきません。
なので、仮対処としては下記のように書き直して透過をさせないようにします。(不本意ですが・・・)
これで、下図のように透けて見えません。
<< 原因 >>
そもそも、Gnome Shellの上部パネルの背後にもう1つパネル見たいなものがあって、メニューのようなものがでているのは、Nautilusが原因です。
/etc/xdg/autostart/nautilus-autostart.desktop というファイルがあって、ログイン時にnautilus -n が実行されます。
これはnautilus 3.0.2あたり(2011/5/末ごろ)に入りました。これによってパネル背後にメニューバーのようなものがでます。他のLubuntuの方とかも影響がある見たいです。
https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/826058
なので、nautilus -qを実行すると、下図のように消えます。
そうであるなら、下図のように/etc/xdg/autostart/nautilus-autostart.desktopにOnlyShowIn=Unityを追加して、起動しないようにすれば良いはずです。
ところが、これで起動すると下図のように真っ暗。(Virtualboxの場合です。HDDにインストールしたものは壁紙がめちゃくちゃな表示でした。)
一度nautilus -n を起動してあげます。
そうすると背景でます。上図はその後nautilus -nを実行してメニューバーを消した状態です。/etc/xdg/autostart/nautilus-autostart.desktopのコメントAutostartConditionを読むとわかるように、壁紙を管理するのもnautilusのお仕事見たいです。
ちなみに上図で、nautilus.cssのエラーがでていますが、下記に報告されています。
https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/822193
ならば、一度nautilus-autostart.desktopで起動させて、数秒後に終了させるようにしてしまえばよいのではと思って、下記のコマンドを自動実行するようにしてみました。
bash -c "sleep 10;nautilus -q"
ところが、nautilusをメニューやコマンドラインから起動すると、また上部のメニューバーがでます。上部パネルが出ないようにするには、nautilus --no-desktopで起動しないとなりません。 なので、メニューを書きなおしたり、aliasしないとダメです。面倒だし、ログイン直後に少しの間メニューバーが透けてでているのもみっともないので止めました。Nautilusのエクステンションがちゃんと動いてくれるかも心配です。
OneiricはUnityが基本なので、この問題は直してくれないかな?? nautilus起動時にデスクトップ環境を自動判別して、デスクトップ上部にメニューバーを出すか出さないかを自動的にやってくれるとありがたいんだけど・・・
---2011/8/16追記---
tista様のコメントに従って、gnome-tweak-toolsを起動してFile Manager->Have file manager handle the desktopをOFFにする事によりgnome shellのパネルの下にあるNautilusのメニューバーを消す事が出来ました。
それで、gnome-tweak-toolsでFile Manager->Have file manager handle the desktopをOFFにする事は何をしているかというと、下記のコマンドと同等な事をしています。(ちなみに、ONの場合は値をtureにするのと、nautilus -nをautostartする設定をしています)
gsettings set org.gnome.desktop.background show-desktop-icons false
Unityの環境の場合は、どうもこの値がtrueでないとちゃんと起動してくれません。それと、この値がtrueでも"nautilus -n"が起動していないと、デスクトップを管理してくれません。
ところで、下図の/etc/xdg/autostart/nautilus-autostart.desktopの記述にAutostartConsition="Gsettings org.gnome.desktop.background show-desktop-icons"とあります。このAutostartConditionというのを調べてみたら、この値がtrueの時だけExecに書かれているものを実行します。これで、前述の値がfalseの場合は、nautilus -nを起動しないようにしているみたいです。 逆にUnityの環境の場合は、前述の値がtrueにセットされているので、nautilus -nを起動するようになってます。
なので、gnome-shellとか他の環境だけ使用するとかの場合は、下記のコマンドを入力すれば一応(なぜ一応なのかは後述)OKです。
gsettings set org.gnome.desktop.background show-desktop-icons false
ただ、gnome-shell とunityの環境を併用する場合は困るので、下記の仮対処をしました。
<< 仮対処 >>
下記の2つのファイルを~/.confing/autostartの下に作ります。
----nautilus-autostart-for-unity.desktop----
[Desktop Entry]
Type=Application
Name=Files
Exec=bash -c "gsettings set org.gnome.desktop.background show-desktop-icons true;nautilus -n"
NoDisplay=true
X-Ubuntu-Gettext-Domain=nautilus
OnlyShowIn=Unity;
----------------------------------------------------
----- nautilus-autostart-for-others.desktop -----
[Desktop Entry]
Type=Application
Name=Files
Exec=gsettings set org.gnome.desktop.background show-desktop-icons false
NoDisplay=true
X-Ubuntu-Gettext-Domain=nautilus
NotShowIn=Unity;
------------------------------------------------------
要するに、Unityの時とその他の環境でorg.gnome.desktop.background show-desktop-iconsの値を切り替えてあげるのです。
但し、まだちょっと問題があります。org.gnome.desktop.background show-desktop-iconsの値をfalseにすると言う事は、デスクトップ環境をnautilusが管理してくれません。なので、デスクトップ上を右クリックしたりしてもメニューが出ません。(なので、値をfalseにする事が"一応"OKなのです)
gnome shellのデスクトップ上で右クリックは元々無かったのかもしれませんが・・・他の環境(Lubuntuとか)は大丈夫かな??
あと、上記の仮対処だと私の環境ではunityからログアウトしてgnome shellにログインすると一度目だけ背景がおかしくなる現象がでています。もう一度、gnome-shellにログインしなおせば直ります。これは他の環境で起こるかは分りません。
---- 2011/8/16追記終わり ---
←AMAZONのマグカップ
アマゾン何考えてるのだ??
マグカップ出すなんて。
でも、これ結構レビューの評価がいい。