So-net無料ブログ作成

【Ubuntu 11.10:Gnome3】Oneiric Alpha 3でGnome Shellを動かすと、デスクトップの上部パネルの背後にメニューバーが出てしまう問題。(Unity以外の環境なら同じ問題が発生する可能性あり) [ubuntu]

Ubuntu 11.10(Oneiric) Alpha 3でGnome Shellを使用していたら、最近ある事に気が付きました。

下図(右上の方)のようにGnome Shellの上部パネルの背後にメニューがうっすら見えるのです。(画像をクリックすると大きく表示されて分ると思います。)

SS-gnome-shell-oneiric-001.JPG

この現象は、Gnome Shellのテーマのパネル部分に透過の設定をしていると発生します。

例えば上図はDelta-Shellのテーマを使用しています。そのスタイルシート(gnome-shell.css)に#panel のbackgroundの設定がありますが、rgbaで透過を使用しています。(下図:本来のDelta-Shellは0.6の透過値です)

SS-gnome-shell-oneiric-007.JPG

このPanel部分に透過を使用してないテーマは始めの図のようにメニューが透けて出てきません。

なので、仮対処としては下記のように書き直して透過をさせないようにします。(不本意ですが・・・)

SS-gnome-shell-oneiric-008.JPG

これで、下図のように透けて見えません。

SS-gnome-shell-oneiric-009.JPG

 

<< 原因 >>

そもそも、Gnome Shellの上部パネルの背後にもう1つパネル見たいなものがあって、メニューのようなものがでているのは、Nautilusが原因です。

/etc/xdg/autostart/nautilus-autostart.desktop というファイルがあって、ログイン時にnautilus -n が実行されます。

SS-gnome-shell-oneiric-002.JPG

これはnautilus 3.0.2あたり(2011/5/末ごろ)に入りました。これによってパネル背後にメニューバーのようなものがでます。他のLubuntuの方とかも影響がある見たいです。

https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/826058

なので、nautilus -qを実行すると、下図のように消えます。

SS-gnome-shell-oneiric-004.JPG

そうであるなら、下図のように/etc/xdg/autostart/nautilus-autostart.desktopにOnlyShowIn=Unityを追加して、起動しないようにすれば良いはずです。

SS-gnome-shell-oneiric-003.JPG

ところが、これで起動すると下図のように真っ暗。(Virtualboxの場合です。HDDにインストールしたものは壁紙がめちゃくちゃな表示でした。)

SS-gnome-shell-oneiric-005.JPG

一度nautilus -n を起動してあげます。

SS-gnome-shell-oneiric-006.JPG

そうすると背景でます。上図はその後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を起動するようになってます。

SS-gnome-shell-oneiric-002.JPG

なので、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のマグカップ

    アマゾン何考えてるのだ??
    マグカップ出すなんて。
    でも、これ結構レビューの評価がいい。


nice!(1)  コメント(6) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 6

tista

はじめまして。
tistaといいます。主にubuntu-forumで活動していまして、この件は当方のOneiricでは現象が出ないので興味ありますね。

もしLaunchpadのIDをお持ちなら是非Bug reportを送ってください。少なくとも、黙って待っていても開発者には伝わりませんので・・・。
by tista (2011-08-15 02:55) 

あんきょ

☆tistaさん☆
はじめまして。
私の環境では、HDDにインストールした方もVirtualboxにインストールした方も同じ症状がでます。

LaunchpadのIDですが、Open-IDなのでいつの間にかありました。なので、#826771 でバグリポート出してみました。
初めてのバグ報告ですし、英語がめちゃくちゃ苦手なので分ってもらえるかどうか。。
by あんきょ (2011-08-16 00:04) 

tista

もしかして、gnome-tweak-toolから、
File Manager -> Have file manager handle the desktopを"Off"にすると状況変わったりしますか?
あるいはindicator-appmenuをinstall/uninstallでもどうかとか・・・。

既に検証済みだったら申し訳ないです。

tista
by tista (2011-08-16 08:20) 

あんきょ

☆tistaさん☆
gnome-tweak-toolから、File Manager -> Have file manager handle the desktopでOFFにすると、消えました。

ただ、gnome shellとしては問題ないのですが、その後ログアウトして、ubuntu(unity) sessionにHave file manager handle the desktopをOFFのままログインしてしまうと、壁紙がでるだけでUnityが立ち上がりません。
ubuntu-2d sessionの場合は、普通にログインできたように見えますが、デスクトップを管理していないため、右クリックが使えなくなります。

indicator-appmenuのinstall/uninstallは特に変化はありませんでした。 

by あんきょ (2011-08-16 10:17) 

tista

@あんきょさん

確認ありがとうございます。:-)
なるほど。これは先日適用したgtk3に対するhardcodedなmenu-proxy patchが影響しているかもしれませんね。もはやgtk3アプリは環境変数UBUNTU_MENUPROXYを無視している可能性があるため、やはりdevsに改善してもらうしかなさそうですね・・。あるいは時間があればうちのPPAにdispatchしたgtk3を上げてみましょう。
最近のdevsは皆Unity偏重でGnome-Shellでの不具合を見てみぬふりなのでw、tistaも頭にきています!!

gtk3へのbug reportも必要かもですねぇ。

tista
by tista (2011-08-16 17:03) 

あんきょ

☆tistaさん☆
UBUNTU_MENUPROXYという環境変数があるのを初めて知りました。これで、メニューをグローバル化してだしているんですね。

Unityをメインに置いて開発を進めるのは構わないと思うのですが、それでuniversリポジトリーにあるような非サポート対象のソフト(Gnome Shellとか)に不具合などの影響があっても知らん顔しているとしたら・・私もちょっと嫌です。

せっかく、debパッケージという仕組みで簡単に色々ソフトを組み合わせて自分なりの環境を作って使えるのが魅力なのに・・・
by あんきょ (2011-08-17 01:51) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。