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

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

LXDE上の自動起動について

KDE4上の自動起動とSCIMについて」のものを更に修正して、全てのデスクトップ環境で共用することを目指す。

セッションマネージャ起動前
ログイン後、デスクトップ環境ごとの処理に入る前に読み込まれて処理されるファイル。
ファイル名: ~/.xprofile

#! /bin/sh

# (デスクトップ環境共通の環境変数指定など)

_KDE_SESSION_NAME="kde-4"
_LXDE_SESSION_NAME="lxde"
if [ ${DESKTOP_SESSION} == ${_KDE_SESSION_NAME} ]; then
  # KDE4
  GTK2_RC_FILES=~/.gtkrc-2.0      # SCIMのGTK+ 2テーマ対策
  export OOO_FORCE_DESKTOP=gnome  # OOoがKDE4に対応するまでの対処
else
  if [ ${DESKTOP_SESSION} == ${_LXDE_SESSION_NAME} ]; then
    # LXDE
    export OOO_FORCE_DESKTOP=gnome
  else
    # GNOME, Xfce4
    export GTK2_RC_FILES=         # ${HOME}/.gtkrc-2.0対策
  fi
fi
scim -d                           # KDE4の関係で例外的にここで自動起動する

ここではOpenOffice.orgGTK+ 2を使用する設定(export OOO_FORCE_DESKTOP=gnome)を書いている。その他、LXDE上でのみ設定したい環境変数があれば指定しておくとよい。
もし変数DESKTOP_SESSIONの値が大文字で格納されていて、「# LXDE」と書いた部分の処理に入らなかった場合、

_LXDE_SESSION_NAME="LXDE"

としてみると意図した動作になるかもしれない。
(2009/1/2)Mandriva Linux 2009.0では

_KDE_SESSION_NAME="01KDE4"
_LXDE_SESSION_NAME="LXDE"

となった。

セッションマネージャ起動後(freedesktop.org自動起動)
自動起動スクリプトファイルと、それを呼び出す.desktopファイルを配置する。
スクリプトファイルの例としては、下のようになる。
[任意]ファイル名: ~/bin/startup.sh

if ps -U $(whoami) | grep lxsession >/dev/null; then
  xset r rate 250 45  # keyboard repeat: xset r rate delay (rate)
  xset m 2/1 4        # mouse: xset m accel_mult (/accel_div) (threshold)
  xscreensaver &

  # (以下、LXDE上で自動起動したいアプリケーション)
fi

# (以下、デスクトップ環境共通の起動処理)

このファイルを自動起動するためには、[ホームディレクトリ]/.config/autostart/startup.sh.desktop*1を配置する。内容は「Xfce 4.4における環境変数の設定と自動実行コマンド」を参照。
なお、xsetでは

  • キーボードのキーを押しっ放しにしたときに連続して入力される際のパラメータ
  • マウスの各種パラメータ

を指定している。設定値は好みに応じて試行錯誤で調整する。以下も参照。

*1:ファイル名は任意だが、上のスクリプトファイルの場所を「Exec」に絶対パスで書く