Do czego służy „.xsession”?

62

Do czego służy .xsessionplik w folderze domowym? Co tam należy umieścić? Środowiska pulpitu nie używają tego pliku, a do uruchamiania X z tty jest .xinitrc.

Mirzhan Irkegulov
źródło

Odpowiedzi:

58

Jeśli zalogujesz się w trybie tekstowym, rozpocznij sesję GUI za pomocą xinit lub skryptu opakowującego startx, a następnie xinitwykonaj następujące czynności:

  • Uruchom serwer X (zazwyczaj poprzez skrypt /etc/X11/xinit/xserverrc).
  • Zwykle uruchamiaj niektóre skrypty w /etc/X11(zwykle /etc/X11/xinit/xinitrc), w zależności od konfiguracji.
  • Uruchom ~/.xinitrc, jeśli istnieje. Jeśli nie istnieje, uruchom domyślnego klienta (tradycyjnie xterm).
  • Po ~/.xinitrczakończeniu zabij serwer X.

Jeśli logujesz się w trybie graficznym na X display manager (xdm, gdm, kdm, WDM, lightdm, ...), tradycyjnie, co jest wykonywane po zalogowaniu się niektóre skrypty w /etc/X11czym ~/.xsession.

~/.xsessionpełni rolę ~/.profilei ~/.xinitrckombinowany: to ma wykonać Pierwsze uruchomienie sesji (np definiować zmienne środowiskowe), a następnie uruchomić programy specyficzne dla GUI (zazwyczaj co najmniej menedżer okien).

Obecnie większość menedżerów ekranów X daje wybór sesji. Wybór konkretnej sesji uruchomił określone środowisko pulpitu, menedżera sesji, menedżera okien. Wykonywane jest tylko to, że DE / SM / WM i wszystkie programy, które zdecydują się uruchomić na podstawie plików konfiguracyjnych, które zdecydują się odczytać. Wiele środowisk zapewnia „sesję niestandardową”, która odczytuje tradycyjny ~/.xsession.

Gilles
źródło
3
Nie wiem, co to za „wiele środowisk”, ale przynajmniej kdm cicho ignoruje plik «~ / .xsession».
Cześć Angel
1
@ Hi-Angel .xsessionPlik zostanie odczytany tylko wtedy, gdy wybierzesz określony typ sesji. Wiem, że w przypadku Gdm programiści wyższego szczebla nie chcą uwzględniać takiego, który działa .xsessiondomyślnie, i pozostawiają to każdej dystrybucji, a wiele dystrybucji nie zawraca sobie głowy lub nie zdaje sobie sprawy z potrzeby. Nie wiem, jaka jest sytuacja KDM.
Gilles
Cóż, wiesz, znalazłem w man kdm, że kdm ma własny plik /etc/kde4/kdm/Xsessiondo uruchomienia jako użytkownik zaraz po zalogowaniu. Są kłamstwem - plik (który jest obecny przy okazji) nigdy nie został dotknięty przez kdm, nawet go usunąłem i to nic nie zmieniło.
Cześć Anioł,
1
@ Hi-Angel Co oznacza Gilles, to że na graficznym ekranie logowania często znajduje się menu rozwijane z listą różnych środowisk. Jeśli wybierzesz „KDE”, uruchomi się i zignoruje .xsession, jak opisano. Ale jeśli zamiast „KDE” wybierzesz „Sesja niestandardowa” .xsession, zamiast KDE zostanie uruchomiona . Używam tego, na przykład, ponieważ uruchamiam xfce4-paneli FVWM 2 jako „pulpit”; gdyby KDE zostało zainstalowane w systemie, którego używałem, byłoby to całkowicie zignorowane.
Curt J. Sampson
15

Uruchomienie sesji X może być obecnie skomplikowane. Dobrym miejscem do rozpoczęcia jest skrypt, /etc/X11/Xsessionaby zobaczyć, jak wszystko zostanie wykonane.

W moich systemach Debian / Ubuntu skrypt /etc/X11/Xsessionustawia zmienną USERXSESSION=$HOME/.xsession. Później skrypt /etc/X11/Xsession.d/50x11-common_determine-startupszuka tego skryptu i używa go jako sesji podstawowej, jeśli zezwala na to zasada systemowa /etc/X11/Xsession.optionsi jeśli menedżer wyświetlania nie zażądał innej sesji.

Jim Paris
źródło
8

Zdecydowanie polecam zajrzeć do książki Przewodnik administratora systemu X Window: dla wersji X 11 . Rozdział 2 wyjaśnia cel .xsessioni cały proces konfiguracji przykładowej konfiguracji. Jest to również miłe odświeżenie dla całej terminologii związanej z X-Window (i mam nadzieję, że się nie boisz :)). Możesz pobrać książkę z

http://archive.org/details/xwindowsystemadm08muimiss

Chociaż jest dość przestarzały, można znaleźć wiele informacji na temat podstawowych koncepcji, które nie zmieniły się do dziś i są bardzo czytelne. Co więcej, naprawdę zabawnie jest spojrzeć na to, co było wtedy na najwyższym poziomie.

użytkownik1146332
źródło
7

.xsession to tradycyjny skrypt startowy dla środowiska X11. Obecnie w przypadku menedżerów sesji, takich jak kdm, nie jest to już tak przydatne, ale w tradycyjnie konfigurowanym systemie. To jest uruchamiane po uruchomieniu X11 za pomocą startx.

Nikodemus RIP
źródło