試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

GNOME起動時の環境変数の設定と自動起動について

(2009/9/2)この記事の前半は当時のGentoo上での不具合について書いているもので、Mandriva Linux上では${HOME}/.gnomercは正しく扱われており、一般的にGNOMEではこのファイルが処理されるものとみなせる。

GNOMEのセッションスクリプトと${HOME}/.gnomercの謎

GDMからGNOMEのセッションに入るとき、環境変数を設定するのに${HOME}/.gnomercというファイルが使用されるという情報を目にしたことがある。
[引用]ファイル名: /etc/X11/Sessions/Gnomeより抜粋

if [ -x "$HOME/.gnomerc" ]; then
	command="$HOME/.gnomerc"
elif [ -x /etc/X11/gdm/gnomerc ]; then
	command="/etc/X11/gdm/gnomerc"
else
	# as fallback in case the config is screwed
	command=`which gnome-session`
fi
(中略)
exec $command

このような記述があるので、そういう仕組みにはなっているのだと思われるのだが、何を書いても反映されないどころか、このスクリプトの先頭に

touch /tmp/test

などと書いても、空のファイルは作られない。つまり、このスクリプト自体実行されていないということが判明。

セッションを開始する.desktopファイル

更に調べると、/etc/X11/dm/Sessions/以下には「カスタム」や「Xfce4」のセッションを開始させるための.desktopファイルが存在している*1のだが、何故かGNOME用のものが見当たらない。そこで
ファイル名: /etc/X11/dm/Sessions/gnome.desktop

[Desktop Entry]
Encoding=UTF-8
Name=GNOME
Comment=GNOME
Exec=/etc/X11/Sessions/Gnome
Type=Application

という.desktopファイルを作成した上で

ファイル名: ~/.gnomerc

#!/bin/sh

export TEST=test
exec gnome-session

という内容の${HOME}/.gnomercを作成したところ、GNOMEセッションが開始された上で、${TEST}がセットされていることが確認できた。注意点としては、必ず最後に「exec gnome-session」「. /etc/gnome/gnomerc」を書く必要がある。
(2010/6/9)最後の行に関する記述を修正

${HOME}/.xprofileについて

なお、上の.desktopファイルと.gnomercを用意しなくても、GDMからログインする場合、${HOME}/.xprofileでexportしている環境変数は反映される上、Xfce4やKDEなど、別のデスクトップ環境でもこのファイルは使用されるため、日本語入力関連など、共通して使用する設定を書くのにはこちらが適しているかもしれない。${HOME}/.gnomerc${HOME}/.config/xfce4/xinitrcのようなファイルは、デスクトップ環境固有で行う必要のある処理が出たときに使用できる。
設定例は「Xfce 4.4における環境変数の設定と自動実行コマンド」を参照。

startxでGNOMEを起動する場合

以下の内容の初期化スクリプト${HOME}/.xinitrcで、GDMでログインした場合と同じ環境変数の指定の仕方で使用できる。
ファイル名: ~/.xinitrc

#! /bin/sh
test -f "${HOME}/.xprofile" && . "${HOME}/.xprofile"
/etc/X11/Sessions/Gnome

GNOME 2.16における自動起動の設定

自動起動の設定は、GNOMEメニューの「セッション」から開ける。自動起動するプログラムの項目は、Xfce 4.4と同様、${HOME}/.config/autostart/以下の.desktopファイル。ただし、.desktopファイルの中で

Hidden=true

となっているものは、リストに表示されない。Xfce 4.4の場合、チェックの外れた状態でリストには表示され、有効/無効の切り替えもできる。つまり、Xfce 4.4の自動起動設定ツールは、Hiddenの値を有効/無効に応じて変更する。

関連記事:

使用したバージョン:

  • gnome 2.16.3
  • gdm 2.16.4

*1:「カスタム」のほうは「gdm」パッケージ、「Xfce4」のほうは「xfce-utils」パッケージに含まれる