web-dev-qa-db-ja.com

.xinitrc、.xsession、.xsessionrcの違い

3つの構成ファイルが見つかりました。

  1. .xinitrc
  2. .xsession
  3. .xsessionrc

1つ目はstartxを使用するためのもので、2つ目と3つ目はディスプレイマネージャーを使用するときに使用することを知っています。しかし、最後の2つの違いは何ですか?

59
lockdoc

~/.xinitrcxinit によって実行され、通常は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)

まず、.xsessionrcglobal environment変数を保持するためのものです。強調は私のものです。

2番目:40x11-common_xsessionrc/etc/X11/Xsession.dは、50x11-common_determine-startupよりも前にソースされます。そのため、.xsessionrc.xsessionの前に読み込まれ、.xsessionのコマンドによって実行されるアプリケーションで設定された環境変数が利用可能になります。

参考文献:

6
Thomas Dickey