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

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

Xfce 4.4における環境変数の設定と自動実行コマンド

Xfce4をインストールした直後の状態では、日本語の入力ができない場合が多いのではないかと思う(ディストリしだいではあるが)。
セッション開始後に自動的に適切な環境変数が設定されるようにしつつ、X入力メソッドを使用する場合には適当なデーモンの起動をする必要がある。

Xfce4セッション開始時には、[ホームディレクトリ]/.config/xfce/xinitrcというファイルがあればそれが実行され、無ければ/etc/xdg/xfce4/xinitrcが実行される。
一般的には、/etc/xdg/xfce4/xinitrcの内容を[ホームディレクトリ]/.config/xfce/xinitrcに含めて、必要に応じて編集(カスタマイズ)する。

  1. 環境変数の設定
  2. 自動起動アプリケーション(Xfce 4.4)
  3. 自動起動アプリケーション(Xfce 4.2 概要のみ)

環境変数の設定

(2007/7/13)GDM経由のログインでは、デスクトップ環境によらず[ホームディレクトリ]/.xprofileの中でexportすればセットされるので、日本語入力関係など、共通して使用したい環境変数をセットするとよい。
日本語の入力メソッドにSCIMを使用する場合に必要な環境変数の設定例
ファイル名: ~/.xprofile

#!/bin/sh
export XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim
(必要に応じて「export 環境変数=値」をここに追加)

scim -d  # X入力メソッド(XIM)でSCIMを使用するのに必要
export GTK2_RC_FILES=  # ${HOME}/.gtkrc-2.0を配置する場合

(2008/2/29)KDE4でログイン後に(XIMとして)SCIMが正常に動作するためには、[ホームディレクトリ]/.xprofile側に「scim -d」を書かなくてはならなかったため、下の自動起動スクリプトからこちらに移動・更に、GTK2_RC_FILESを空文字列にすることにより、[ホームディレクトリ]/.gtkrc-2.0配置時にGTK+ 2の設定がおかしくなるのを回避するようにした

ファイル名: ~/.config/xfce4/xinitrc

#! /bin/sh
(Xfceの初期化時に行う処理や環境変数の設定など)

. /etc/xdg/xfce4/xinitrc

startxで起動させる場合は以下の[ホームディレクトリ]/.xinitrcを用意することで、[ホームディレクトリ]/.xprofile[ホームディレクトリ]/.config/xfce4/xinitrcの両方が使用できる。
ファイル名: ~/.xinitrc

#! /bin/sh
test -f ~/.xprofile && . ~/.xprofile
startxfce4

自動起動アプリケーション(Xfce 4.4)

Xfce 4.4では、[ホームディレクトリ]/.config/autostart/以下に.desktopファイルを配置すると、xfce4-autostart-editor(「自動開始アプリケーション」の設定)を起動して該当項目にチェックを入れる(初期状態では有効になっている)ことでアプリケーションの自動起動をサポートしている。
/usr/share/applications/以下に.desktopファイルがある場合はリンクを張ればよい。
下はberyl-managerを自動起動候補に登録する例。

$ ln -s /usr/share/applications/beryl-manager.desktop ~/.config/autostart/

コマンドを自動的に実行したい場合、以下の流れとなる。

  1. 処理をシェルスクリプトに記述して適当な場所([ホームディレクトリ]/bin/以下など)に保存
  2. シェルスクリプトを実行するための.desktopファイルを[ホームディレクトリ]/.config/autostart/以下に作成
  3. xfce4-autostart-editor(「自動開始アプリケーション」の設定)で、項目が有効になっていることを確認

シェルスクリプトの内容例(実行したいコマンドを並べるだけ)
ファイル名: ~/bin/startup.sh

#! /bin/sh
 # 実行したいコマンド名を並べていく
nvidia-settings -l
nvclock -n 150
numlockx
xbindkeys
mlclient "$@" 2>/dev/null || mlterm -j genuine "$@"
 # GUIアプリはバックグラウンド実行にする
emacs &
LC_TIME=C gkrellm2 &  # 日付に日本語が入ると「木31 5月」のようになるため英語で使用している

(2008/2/29)[ホームディレクトリ]/.xprofileのところにも書いているが、KDE4上のSCIMの関係で、ここからは消した。また、ファイル名に関しても、別のデスクトップ環境での共用を考えてstartup.shに変更

.desktopファイルの内容例(必要最低限の内容。Execの値はシェルスクリプトの場所)
ファイル名: ~/.config/autostart/startup.sh.desktop

[Desktop Entry]
Type=Application
Exec=/home/[ユーザ名]/bin/startup.sh
Name=Custom Startup Script

(2008/2/29)ファイル名を変更


自動起動の設定でチェックが入っていることを確認

自動起動アプリケーション(Xfce 4.2 概要のみ)

Xfce 4.2系では~/Desktop/Autostart/という階層の中に、実行したいファイル(もしくは実行ファイルへのリンク)を配置して、実行属性を付ける。.desktopファイルは使用しない。シェルスクリプトを書いた場合、~/Desktop/Autostart/へ保存するだけ。