web-dev-qa-db-ja.com

ログイン時にxinitrcは実行されますか?

私は~/.xinitrc次の内容で

xrdb -merge $HOME/.Xdefaults

このxinitrcは、ユーザーがログインしたときに読み込まれないため、基本的には役に立ちません。同じコマンドがbashで機能するため、間違ったことをしているとは思いません。私の質問は次のとおりです。 xinitrcは環境変数を認識しますか?

5
user2384250

~/.xinitrcは、X11をstartx(またはxinitを呼び出すもの)で開始した場合にのみ読み取られます。グラフィックモードでログインすると、表示マネージャは開始するセッションを選択します。各セッションマネージャまたはデスクトップ環境には、存在する場合、独自の起動スクリプトがあります。

ほとんどのシステムは、デフォルトのX11起動スクリプトの一部として~/.Xresourcesからリソースを自動的にロードします。リソースファイルの名前を~/.Xresourcesに変更してみてください。

.xinitrcは、明示的にxinitを実行して(startxは最終的にxinitを呼び出します)Xサーバーを起動すると実行されます。現在のLinuxはデスクトップマネージャーを使用しているため、ほとんどの場合、これは発生しません。デスクトップマネージャーは、X-Serverを直接起動してから、/etc/X11/Xsession <desktopenvironment>を実行します。ここで、<desktopenvironment>は、次のファイルのExec=行の値です。 /usr/share/xsessions、例えば

Exec=startxfce4

セッションタイプとしてXFCEを選択した場合。

少なくともDebianベースのシステムでは、/etc/X11/Xsession.d/のスクリプトは順番に供給されます(!)。ほとんどすべてのこれらのスクリプトは、変数STARTUPを設定および/または変更します。これは、最終的に行で使用されます。

exec $STARTUP

したがって、技術的には、/usr/share/xsession/xinitrc.desktopを実行するセッションを選択できる~/.xinitrcファイルを作成できます。

2
Bananguin