Znalazłem trzy pliki konfiguracyjne.
.xinitrc
.xsession
.xsessionrc
Wiem, że pierwszy służy do używania, startx
a drugi i trzeci są używane podczas korzystania z menedżera wyświetlania. Ale jaka jest różnica między dwoma ostatnimi?
~/.xinitrc
jest wykonywany przez xinit
, który jest zwykle wywoływany przez startx
. Ten program jest uruchamiany po zalogowaniu: najpierw logujesz się na konsoli tekstowej, a następnie uruchamiasz GUI startx
. Rola .xinitrc
polega na uruchomieniu części GUI sesji, zwykle poprzez ustawienie niektórych ustawień związanych z GUI, takich jak powiązania klawiszy (z xmodmap
lub xkbcomp
), zasoby X (z xrdb
) itp., Oraz uruchomienie menedżera sesji lub menedżera okien ( ewentualnie jako część środowiska pulpitu).
~/.xsession
jest wykonywany, gdy logujesz się w trybie graficznym (w menedżerze wyświetlania ), a menedżer wyświetlania wywołuje „sesję niestandardową”. (Przy historycznym menedżerze wyświetlania xdm .xsession
jest zawsze wykonywany, ale przy nowoczesnych menedżerach wyświetlania, które dają użytkownikowi wybór rodzaju sesji, zazwyczaj trzeba wybrać „niestandardowy”, .xsession
aby uruchomić.) Jego rolą jest zarówno ustawienie parametrów czasu logowania (takich jak zmienne środowiskowe) i rozpoczęcie sesji GUI. Typowe .xsession
jest
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
jest wykonywany na Debianie (i jego pochodnych, takich jak Ubuntu, Linux Mint itp.) przez skrypty startowe X na login GUI, dla wszystkich typów sesji i (jak sądzę) ze wszystkich menedżerów wyświetlania. Jest również wykonywany, startx
jeśli użytkownik nie ma .xinitrc
, ponieważ w takim przypadku startx
opiera się na tych samych skryptach uruchamiania sesji, które są używane do logowania GUI. Jest wykonywany stosunkowo wcześnie, po załadowaniu zasobów, ale przed uruchomieniem dowolnego programu, takiego jak kluczowy agent, demon D-Bus itp. Zazwyczaj ustawia zmienne, które mogą być używane przez późniejsze skrypty startowe. Nie ma żadnej oficjalnej dokumentacji, którą znam, musisz przekopać się do źródła, aby zobaczyć, co działa.
.xinitrc
i .xsession
są historycznymi cechami systemu X11 Window, więc powinny być dostępne i mieć podobne zachowanie na wszystkich systemach uniksowych. Z drugiej strony, .xsessionrc
jest funkcją Debiana, a dystrybucje, które nie są oparte na Debianie, nie mają jej, chyba że zaimplementują coś podobnego.
.xprofile
jest bardzo podobny do .xsessionrc
, ale jest częścią skryptu uruchamiania sesji GDM (menedżera wyświetlania GNOME), więc jest czytany tylko wtedy, gdy logujesz się za pomocą GDM.
Według innej dyskusji, startx + ~ / .xsession i no ~ / .xinitrc, powoduje obniżoną funkcjonalność (xfce4, sid)
Po pierwsze:
.xsessionrc
służy do przechowywania globalnych zmiennych środowiskowych . Nacisk jest mój.Po drugie:
40x11-common_xsessionrc
in/etc/X11/Xsession.d
jest pozyskiwany wcześniej50x11-common_determine-startup
. Tak.xsessionrc
jest czytane wcześniej,.xsession
a wszelkie ustawione zmienne środowiskowe będą dostępne dla aplikacji uruchamianych przez polecenia w.xsession
.
Dalsza lektura: