~ / .xinitrc nie jest uruchamiany

14

Nie mogę uruchomić moich ~/.xinitrc( ~/.xsession) skryptów podczas logowania do mojego komputera. Używam Xubuntu 12.10 z waniliowym lightgm jako menedżerem logowania. Oba te pliki mają odpowiednie uprawnienia (wykonywalne). Mam w swoim ~/.xinitrc, co następuje:

#!/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

Żadne inne polecenie (jak date >> "$HOME/did_start") również nie jest wykonywane.

Teraz najwyraźniej nawet jeśli usunę moje pliki ~/.xinitrci ~/.xsessionpliki, xmodmapwydaje się czytać ~/.Xmodmap, a ~/.Xresourcestakże częściowo czytane. Zameldowałem się, /etc/X11/Xsessionaby sprawdzić, czy są jakieś polecenia, które zmuszają go do odczytania tych dwóch plików, i nie znalazłem żadnego. Co może się dziać?

EDYCJA: Ponieważ Gilles zapytał, używam sesji niestandardowej podczas logowania przez lightdm ( /usr/share/xsessions/custom.desktop):

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

Ale najwyraźniej nadal uruchamia XFCE poprzez, startxfce4chociaż nie mam go w sobie ~/.xinitrc.

I jak zauważył Ulrich Dangel, istnieje wiersz, w /usr/xdg/xfce4/xinitrcktórym czyta się ~/.Xmodmapi ~/.Xresources, a ten skrypt jest wykonywany przez startxfce4. Aby ta „tajemnica” została rozwiązana. Ale znowu, kolory (do xterm, urxvtitd.) Z ~/.xinitrcwciąż nie jest załadowany.

metwarp
źródło
Jak idzie proces logowania? Jakie sesje są dostępne (jeśli w ogóle)?
tijagi 24.12.12
Jaki typ sesji wybierasz w lightdm?
Gilles „SO- przestań być zły”
@Gilles Korzystam z sesji niestandardowej. Zaktualizowałem moje pytanie o więcej informacji na ten temat.
metwarp

Odpowiedzi:

6

W przypadku pierwszego pytania zazwyczaj zależy to od sesji, tzn. Plik w twoim przykładzie niekoniecznie jest wystarczający, ponieważ nie uruchamia WM / DE. Normalnie ~/.xsessionlub ~/.xinitrcuruchomienia całego środowiska i nie są wykorzystywane wyłącznie w celu automatycznego uruchamiania niektórych programów, czyli powinny one zawierać wiersz podobny exec x-window-managerale globalna xsessionmoże tylko źródło pliku.

Jeśli chodzi o twoje inne pytanie, Debian (i prawdopodobnie Ubuntu) mają, /etc/X11/Xsession.dktóre na przykład ładuje ~/.Xresources. Pliki te są również odpowiedzialne za ładowanie i znajdowanie domyślnego menedżera okien.

Aby debugować swoje problemy, powinieneś zajrzeć ~/.xsession-errorslub uruchomić xserver z konsoli i zobaczyć bezpośrednio tam komunikaty o błędach, tj.startx -- /etc/X11/Xsession

Ulrich Dangel
źródło
W pierwszej części, mimo że nie mam exec startxfce4linii ~/.xinitrc, zaczyna się XFCE (to dziwne, coś innego musi się dziać). Jeśli chodzi o drugą część, tak, to, co powiedziałeś, wydaje się mieć miejsce. /etc/xdg/xfce4/xinitrcSkrypt spowodował dwa pliki do odczytu.
metwarp
@metwarp ok zaktualizował komentarz
Ulrich Dangel