So-net無料ブログ作成

【Ubuntu 11.10】ログインするディスクトップ環境によって設定を変える方法。(環境変数 DESKTOP_SESSION利用) [ubuntu]

1つ前の記事『【Ubuntu 11.10:Gnome3】Gnome-Tweak-Toolが3.1.0になって、デスクトップ上に"コンピュータ"や"ゴミ箱"アイコンの表示/非表示の設定が可能になった。』で、gnome-tweak-toolでデスクトップ上にアイコンの表示/非表示が可能になりました。

Gnome Shellを使っていると、下図のようにゴミ箱とかがデスクトップ上にあった方が便利です。

SS-Tweak-Tool_x012.jpeg

ところが、これでGnome Shellのセッションをログアウトして、ubuntu(Unity)のセッションにログインしてしまうと、下図の様になります。(Show mounted volumes on the desktopがONになっているのは、スクリーンショットを撮るときに手動でONにしてしました。)

SS-Tweak-Tool_x013.jpeg

ゴミ箱がUnityのランチャー上にもあるし、デスクトップ上にもあります。2つもいりませんよね。

実際、Gnome ShellとUnityを併用する方はどれだけいるか分かりませんが。。。もし、Gnome Shellのセッションにログインしたなら最初のスクリーンショット見たいにデスクトップ上にゴミ箱とか出して、Unityのセッションなら下図のように何も出したくありません。

SS-Tweak-Tool_x014.jpeg

そこで、ログインしたセッションがコマンドラインで得られれば何とかなるんだけどな~と思ってちょっと探したら、環境変数"DESKTOP_SESSION"がありました。

と言うわけで、switch-gsettings.shと言うファイルを作成しました。内容は下記の通りです。

----  switch-gsettings.sh -----

#!/bin/sh -e

# switch gsettings for login session
# 2011/8/21

#echo $DESKTOP_SESSION

case $DESKTOP_SESSION in
    ubuntu|ubuntu-2d)
        gsettings set org.gnome.nautilus.desktop computer-icon-visible false
        gsettings set org.gnome.nautilus.desktop home-icon-visible false
        gsettings set org.gnome.nautilus.desktop network-icon-visible false
        gsettings set org.gnome.nautilus.desktop trash-icon-visible false
        gsettings set org.gnome.nautilus.desktop volumes-visible false
     ;;
    gnome-shell)
        gsettings set org.gnome.nautilus.desktop computer-icon-visible true
        gsettings set org.gnome.nautilus.desktop home-icon-visible true
        gsettings set org.gnome.nautilus.desktop network-icon-visible true
        gsettings set org.gnome.nautilus.desktop trash-icon-visible true
        gsettings set org.gnome.nautilus.desktop volumes-visible true
     ;;
     *)
     ;;
esac

---- end of switch-gsettings.sh -----

なんて単純な・・・(*v.v)。ハズイ。。。。

※始めのecho文のコメントアウトはデバックの為に付けています。

これを ~/binの中(Ubuntuでは~/binに自動的にパスが通ります。)にいれて、下記のコマンドで実行権を付けておきます。

chmod +x switch-gsettings.sh

それと、ログイン時に自動実行させたいので、 ~/.config/autostartにswitch-gsettings.desktopというファイルを置きます。内容は、下記の通りです。

-----  switch-gsettings.desktop -----

[Desktop Entry]
Name=Gsetting Switcher
Comment=Switch Gsetting for login session
Exec=switch-gsettings.sh
Icon=preferences-system
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;Core;

-----  end of switch-gsettings.desktop -----

これで、異なるログイン環境(セッション)を併用しても切り替えることができます。上記はデスクトップ上のアイコン(ゴミ箱など)を表示/非表示を切り替える為にgsettingsのコマンドを使用しましたが、コマンドで設定できるものであれば基本的に何でもできると思います。

ただし、欠点があります。例えば、前述のスクリプトを利用してGnome Shellにログインしたらゴミ箱がデスクトップ上に出てくる様にします。これをログイン中にgnome-tweak-toolを使ってゴミ箱を非表示にしたとします。それで、Gnome Shellから抜けて、再度Gnome Shellのセッションにログインすると、再びゴミ箱が出てきてしまいます。

つまり、ログイン時に起動するスクリプト(この礼ではswitch-gsettings.sh)が強制的に設定するので、ログイン中に変更したものを覚えていてくれないのです。 もし、変更が必要ならスクリプトを変更する必要があります。そんなにしょっちゅう変える物では無いので、私はそれほど問題ではありませんが・・・

なんかもっとよい方法ないかな~

 

 ←PC用スタンド キャスター付き

   PCの下にキャスターを付けて
   動かすのを簡単にする物ってあるかな~
   と思って、探したらあった。
   1000円ちょっとのものが多い。
   掃除をしょっちゅうやる方は重宝するかも。
   私は、掃除をしないのでPCの奥を覗くの恐い。。
    (((( ;゜д゜)))アワワワワ


nice!(0)  コメント(4) 
共通テーマ:パソコン・インターネット
メッセージを送る