3つの構成ファイルが見つかりました。
.xinitrc
.xsession
.xsessionrc
1つ目はstartx
を使用するためのもので、2つ目と3つ目はディスプレイマネージャーを使用するときに使用することを知っています。しかし、最後の2つの違いは何ですか?
~/.xinitrc
は xinit
によって実行され、通常はstartx
を介して呼び出されます。このプログラムはログイン後に実行されます。最初にテキストコンソールにログインし、次にstartx
でGUIを起動します。 .xinitrc
の役割は、セッションのGUI部分を開始することです。通常、キーバインディング(xmodmap
またはxkbcomp
を使用)、Xリソース( xrdb
)などを使用して、セッションマネージャーまたはウィンドウマネージャーを起動します(デスクトップ環境の一部として)。
~/.xsession
は、グラフィカルモード( ディスプレイマネージャー )でログインし、ディスプレイマネージャーが「カスタム」セッションタイプを呼び出すと実行されます。 (履歴表示マネージャーxdmでは、.xsession
が常に実行されますが、ユーザーにセッションタイプの選択肢を提供する最新の表示マネージャーでは、通常、.xsession
を実行するために「カスタム」を選択する必要があります。)その役割は、ログイン時パラメーター(環境変数など)の設定とGUIセッションの開始の両方です。典型的な.xsession
は
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
は、Debian(およびUbuntu、Linux Mintなどの派生物)で、GUIログインのX起動スクリプトによって、すべてのセッションタイプおよび(おそらく)すべてのディスプレイマネージャーから実行されます。ユーザーが.xinitrc
を持っていない場合は、startx
からも実行されます。これは、その場合startx
が、GUIログインに使用されるのと同じセッション起動スクリプトにフォールバックするためです。リソースのロード後、キーエージェント、D-Busデーモンなどのプログラムを起動する前に、比較的早く実行されます。通常、後の起動スクリプトで使用できる変数を設定します。私が知っている公式のドキュメントはありません。何が機能するかを確認するには、ソースを掘り下げる必要があります。
.xinitrc
および.xsession
はX11ウィンドウシステムの歴史的な機能であるため、すべてのUnixシステムで使用可能であり、同様の動作をするはずです。一方、.xsessionrc
はDebianの機能であり、Debianに基づいていないディストリビューションには、同様のものが実装されていない限り、これはありません。
.xprofile
は.xsessionrc
とよく似ていますが、GDM(GNOMEディスプレイマネージャー)のセッション起動スクリプトの一部であるため、GDMでログインした場合にのみ読み取られます。
別の議論によると、startx +〜/ .xsessionであり、〜/ .xinitrcがないため、機能が低下します(xfce4、sid)
まず、
.xsessionrc
はglobal environment変数を保持するためのものです。強調は私のものです。2番目:
40x11-common_xsessionrc
の/etc/X11/Xsession.d
は、50x11-common_determine-startup
よりも前にソースされます。そのため、.xsessionrc
は.xsession
の前に読み込まれ、.xsession
のコマンドによって実行されるアプリケーションで設定された環境変数が利用可能になります。
参考文献: