ログイン時に X を起動

提供: ArchWiki
2015年1月14日 (水) 14:38時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

関連記事

この記事では仮想端末にログインした後、自動的に X サーバーを起動させる方法を説明しています。startx コマンドを実行することでこれを行い、startx の挙動は xinitrc の記事に書かれているようにしてカスタマイズできます。例えば、起動するウィンドウマネージャを選ぶことができます。また、ディスプレイマネージャを使って自動的に X を起動し、グラフィカルなログイン画面を表示することも可能です。

シェルプロファイル

ノート: ログインセッションを管理するために、ここでは X を login に使われるのと同じ tty で実行します。
  • Bash では、以下を ~/.bash_profile の最後に加えます。ファイルが存在しない場合、/etc/skel/.bash_profile から空の設定をコピーしてください。
  • Zsh では、以下を ~/.zprofile に加えます。
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
ノート:
  • 複数の仮想端末からグラフィカルログインをしたい場合は -eq 1-le 3 (for vt1 to vt3) などに置き換えることができます。
  • X はログインと同じ tty 上で実行しなくてはなりません、logind セッションを維持するためです。これはデフォルトの /etc/X11/xinit/xserverrc の挙動です。
  • Fish では、以下を ~/.config/fish/config.fish の最後に加えます。
# start X at login
if status --is-login
    if test -z "$DISPLAY" -a $XDG_VTNR = 1
        exec startx
    end
end

Tips and tricks

  • このメソッドは仮想端末に自動ログインと一緒に使うことができます。その時は、~/.xinitrc が読み込まれて pulseaudio が実行される前に dbus が起動するように自動ログインの systemd サービスに適切な依存を設定する必要があります (参照: BBS#155416)。
  • X セッションが終了してもログイン状態を維持したい場合、exec を削除してください。
  • X セッションの出力をファイルに書き込むには alias を使って下さい:
alias startx='startx &> ~/.xlog'