web-dev-qa-db-ja.com

〜/ .xinitrcが実行されていません

コンピューターにログインするときに~/.xinitrc~/.xsession)スクリプトを実行できません。 Xubuntu 12.10をログインマネージャーとしてVanilla lightgmと共に使用しています。これらのファイルは両方とも適切な権限(実行可能)を持っています。私の~/.xinitrcには、次のものが含まれています。

#!/usr/bin/env bash 

# read ~/.Xmodmap if it exists
if [[ -f "${HOME}/.Xmodmap" ]]; then
    xmodmap "${HOME}/.Xmodmap"
fi

# read ~/.Xresources if it exists
if [[ -f "${HOME}/.Xresources" ]]; then
    xrdb -load "${HOME}/.Xresources"
fi

# use gnome-keyring-daemon to manage keys
/usr/bin/gnome-keyring-daemon --start --components=gpg
/usr/bin/gnome-keyring-daemon --start --components=ssh

他のコマンド(date >> "$HOME/did_start"など)も実行されていません。

どうやら、~/.xinitrcファイルと~/.xsessionファイルを削除しても、xmodmap~/.Xmodmapを読み取っているようで、~/.Xresourcesも部分的に読み取られています。 /etc/X11/Xsessionをチェックインして、これらの2つのファイルを読み取らせるコマンドがあるかどうかを確認しましたが、何も見つかりませんでした。何が起こっているのでしょうか?

編集: Gillesが尋ねたので、lightdm(/usr/share/xsessions/custom.desktop)からログインしているときにカスタムセッションを使用しています。

[Desktop Entry]
Name=Xsession
Exec=/etc/X11/Xsession

ただし、startxfce4にない場合でも、これは~/.xinitrcを介してXFCEを開始するようです。

Ulrich Dangelが指摘したように、/usr/xdg/xfce4/xinitrcには~/.Xmodmapおよび~/.Xresourcesを読み取る行があり、このスクリプトはstartxfce4によって実行されます。その「謎」は今解決されます。ただし、繰り返しになりますが、~/.xinitrcの色(xtermurxvtなど)はまだ読み込まれていません。

14
metwarp

最初の質問の場合、それは通常セッションに依存します。つまり、例のファイルは、WM/DEを開始しないため、必ずしも十分ではありません。通常、~/.xsessionまたは~/.xinitrcは、環境全体を起動し、一部のプログラムを自動的に起動するためだけに使用されます。つまり、exec x-window-managerのような行を含む必要がありますが、グローバルxsessionはファイルを入手します。

あなたの他の質問については、Debian(そしておそらくUbuntu)には/etc/X11/Xsession.dがあり、これは例えば~/.Xresourcesをロードします。これらのファイルは、デフォルトのウィンドウマネージャーの読み込みと検索も行います。

問題をデバッグするには、~/.xsession-errorsを確認するか、コンソールからxserverを起動してエラーメッセージを直接表示する必要があります。つまり、startx -- /etc/X11/Xsession

6
Ulrich Dangel