「Xinit」の版間の差分
(ページの作成:「{{Lowercase title}} Category:デスクトップ環境 Category:X サーバー de:Xinitrc el:Xinitrc en:Xinitrc es:Xinitrc fr:Startx it:Xinit...」) |
|||
66行目: | 66行目: | ||
===セッションの維持=== |
===セッションの維持=== |
||
− | logind セッションを維持するために、X はいつでもログインしたのと同じ tty で実行される必要があります。これはデフォルトの {{ic|/etc/X11/xinit/xserverrc}} によって管理されています。関連する問題については |
+ | logind セッションを維持するために、X はいつでもログインしたのと同じ tty で実行される必要があります。これはデフォルトの {{ic|/etc/X11/xinit/xserverrc}} によって管理されています。関連する問題については[[一般的なトラブルシューティング#セッションのパーミッション]]も見て下さい。 |
{{Note|過去、古いセッションを壊す代わりに'''新しい'''セッションをスタートするために {{ic|ck-launch-session}} が使われていました。{{ic|logind}} にはこのようなことをするものがないので、任意の tty で X を実行するためにディスプレイマネージャが必要です。}} |
{{Note|過去、古いセッションを壊す代わりに'''新しい'''セッションをスタートするために {{ic|ck-launch-session}} が使われていました。{{ic|logind}} にはこのようなことをするものがないので、任意の tty で X を実行するためにディスプレイマネージャが必要です。}} |
2015年1月7日 (水) 12:21時点における版
~/.xinitrc
ファイルは xinit
や startx
によって読み込まれるシェルスクリプトです。主として、X サーバーが起動した時にデスクトップ環境やウィンドウマネージャなどのプログラムを起動するのに使われます (デーモンの起動や環境変数のセットなど)。xinit
と startx
プログラムは X Window System を起動させ、X を直接 /etc/init
から起動できないシステムや複数のウィンドウシステムを使っている環境で、一番最初のクライアントプログラムとして動作します。
~/.xinitrc
の主要な仕事の一つは、/usr/bin/startx
や /usr/bin/xinit
プログラムが実行されたときに X Window System のためにどのクライアントを呼び出すか指定することです。様々な追加の記述やコマンドが存在しており、それらを ~/.xinitrc
に追加して、その後のシステムのカスタマイズも行えます。
初めに
新しくユーザーを作ったときのデフォルトと同じファイル・ディレクトリが /etc/skel/
に入っています (skel という名前は skeleton (スケルトン) からきています。これらのファイルはユーザーの home ディレクトリのための基本骨格となるからです)。xorg-xinit パッケージは骨組みの .xinitrc
ファイルで /etc/skel
を初期設定します。
サンプルファイル /etc/skel/.xinitrc
をあなたの home ディレクトリにコピーします:
$ cp /etc/skel/.xinitrc ~
そして ~/.xinitrc
を編集し、あなたが使っている DE/WM に合わせて行をアンコメントします。例えば、基本的な X の設定(マウス、キーボード、解像度)をテストするために xterm を使いたい場合:
#!/bin/sh # # ~/.xinitrc # # Executed by startx (run your window manager from here) if [ -d /etc/X11/xinit/xinitrc.d ]; then for f in /etc/X11/xinit/xinitrc.d/*; do [ -x "$f" ] && . "$f" done unset f fi # exec gnome-session # exec startkde # exec startxfce4 # exec wmaker # exec icewm # exec blackbox # exec fluxbox # exec openbox-session # ...or the Window Manager of your choice exec xterm
~/.xinitrc
を正しく設定したら、X を起動してください。X を起動するには:
$ startx
あなたが選んだ DE/WM が起動するはずです。自由にキーボードやマウスやレイアウトをテストしてください。
セッションの維持
logind セッションを維持するために、X はいつでもログインしたのと同じ tty で実行される必要があります。これはデフォルトの /etc/X11/xinit/xserverrc
によって管理されています。関連する問題については一般的なトラブルシューティング#セッションのパーミッションも見て下さい。
ファイル例
以下はスタートアッププログラムをいくつか含んだ ~/.xinitrc
の例です:
~/.xinitrc
#!/bin/sh if [ -d /etc/X11/xinit/xinitrc.d ]; then for f in /etc/X11/xinit/xinitrc.d/*; do [ -x "$f" ] && . "$f" done unset f fi xrdb -merge ~/.Xresources # update x resources db xscreensaver -no-splash & # starts screensaver daemon xsetroot -cursor_name left_ptr & # sets the cursor icon sh ~/.fehbg & # sets the background image exec openbox-session # starts the window manager
exec
の前に書かれていることは現在のプロセスを置き換えるものとして推奨されます、スクリプトの実行が停止したりプロセスがバックグラウンドにフォークされても X が終了しなくなります。
ファイル設定
ディスプレイマネージャを使わない場合、X セッションの生殺与奪は ~/.xinitrc
次第であることを心に留めて下さい。これはスクリプトが一度終了すればあなたが(ウィンドウマネージャを含む)プログラムをまだ実行していようと X が終了することを意味しています。従ってウィンドウマネージャの終了と X の終了が同時に起こる必要があるということが重要です。そのために、スクリプトの最後のプログラムとしてウィンドウマネージャを起動しましょう。
上の例では cairo-compmgr
, xscreensaver
, xsetroot
, sh
などのプログラムがバックグラウンドで実行されている (&
が後ろに付けられている) ことに注意してください。そうしないと、openbox-session
を実行する前に、スクリプトがそれぞれのプログラムやデーモンを待つことになります。また、openbox-session
はバックグラウンドにしていないことも注意してください。これで openbox が動いている間はスクリプトが終了しないようになっています。
以下のセクションでは複数の WM や DE を使う場合の ~/.xinitrc
の設定方法を説明しています。
コマンドライン
既に ~/.xinitrc
が動作しているが、他の WM/DE を試してみたい場合、ウィンドウマネージャへのパスを指定した xinit
を実行することで WM/DE を起動できます:
xinit /full/path/to/window-manager
フルパスが必要です。任意で、X サーバーに --
の後でオプションを渡すこともできます - 例:
xinit /usr/bin/enlightenment -- -br +bs -dpi 96
以下の ~/.xinitrc
の例では引数によって特定のウィンドウマネージャを起動する方法を示しています:
~/.xinitrc
#!/bin/sh # # ~/.xinitrc # # Executed by startx (run your window manager from here) if [ -d /etc/X11/xinit/xinitrc.d ]; then for f in /etc/X11/xinit/xinitrc.d/*; do [ -x "$f" ] && . "$f" done unset f fi if [[ $1 == "fluxbox" ]] then exec startfluxbox elif [[ $1 == "spectrwm" ]] then exec spectrwm else echo "Choose a window manager" fi
このサンプルを使えば xinit fluxbox
や xinit spectrwm
というコマンドで fluxbox や spectrwm が起動できます。
スタートアップ
ログイン時に X を起動を見て下さい。