Wofür ist ".xsession"?

62

Was ist der Zweck der .xsessionDatei im Home-Ordner? Was soll da reingesteckt werden? Die Desktop-Umgebungen verwenden diese Datei nicht und für den X-Start ab dem tty gibt es .xinitrc.

Mirzhan Irkegulov
quelle

Antworten:

58

Wenn Sie sich im Textmodus anmelden und eine GUI-Sitzung mit xinit oder dem Wrapper-Skript starten startx, gehen Sie xinitwie folgt vor:

  • Starten Sie einen X-Server (normalerweise über das Skript /etc/X11/xinit/xserverrc).
  • Führen Sie in der /etc/X11Regel einige Skripte aus (normalerweise /etc/X11/xinit/xinitrc), je nachdem, wie sie eingerichtet sind.
  • Führen Sie aus ~/.xinitrc, falls vorhanden. Wenn dies nicht der Fall ist, führen Sie (traditionell xterm) einen Standard-Client aus .
  • Sobald ~/.xinitrcbeendet, töte den X-Server.

Wenn Sie im grafischen Modus auf einem log in X - Display - Manager (xdm, gdm, kdm wdm, lightdm, ...), traditionell, was ausgeführt wird , nachdem Sie sich anmelden ist einige Skripte in /etc/X11dann ~/.xsession.

~/.xsessionhat die Rolle von ~/.profileund ~/.xinitrckombiniert: Es soll den ersten Start Ihrer Sitzung durchführen (z. B. Umgebungsvariablen definieren) und dann Programme starten, die für die GUI spezifisch sind (in der Regel mindestens Window Manager).

Heutzutage können Sie bei den meisten X-Display-Managern zwischen verschiedenen Sitzungen wählen. Wenn Sie eine bestimmte Sitzung auswählen, wird eine bestimmte Desktop-Umgebung (Sitzungsmanager, Fenstermanager) gestartet. Was dann ausgeführt wird, ist nur das DE / SM / WM und die Programme, die es basierend auf den zu lesenden Konfigurationsdateien startet. Viele Umgebungen bieten eine "benutzerdefinierte Sitzung", die das Traditionelle liest ~/.xsession.

Gilles 'SO - hör auf böse zu sein'
quelle
3
Ich weiß nicht, was das für "viele Umgebungen" sind, aber zumindest ignoriert kdm die "~ / .xsession" -Datei.
Hi-Angel
1
@ Hi-Angel Die .xsessionDatei wird nur gelesen, wenn Sie einen bestimmten Sitzungstyp auswählen. Ich weiß, dass Gdm von den Entwicklern nicht .xsessionstandardmäßig ausgeführt werden soll und es jeder Distribution überlassen bleibt, und viele Distributionen kümmern sich nicht um die Notwendigkeit oder erkennen sie nicht. Ich weiß nicht, wie die KDM-Situation ist.
Gilles 'SO- hör auf böse zu sein'
Nun, weißt du, ich habe in man kdm festgestellt, dass kdm eine eigene Datei hat /etc/kde4/kdm/Xsession, die direkt nach dem Login als Benutzer ausgeführt werden kann. Sie sind Lügen - die Datei (die übrigens vorhanden ist) wurde von kdm nie berührt, ich habe sie sogar überhaupt entfernt, und das hat nichts geändert.
Hi-Angel
1
@ Hi-Angel Gilles bedeutet, dass Sie auf Ihrem grafischen Anmeldebildschirm häufig ein Dropdown-Menü mit verschiedenen Umgebungen finden. Wenn Sie "KDE" wählen, wird das gestartet und ignoriert .xsession, wie Sie beschrieben haben. Wenn Sie jedoch anstelle von "KDE" "Benutzerdefinierte Sitzung" auswählen, .xsessionwird anstelle von KDE ausgeführt. Ich benutze dies zum Beispiel, weil ich gerade xfce4-panelFVWM 2 als meinen "Desktop" ausführe ; Wenn KDE auf einem System installiert wäre, das ich gerade verwende, würde es vollständig ignoriert.
Curt J. Sampson
15

Der Start einer X-Sitzung kann heutzutage kompliziert sein. Ein guter Anfang ist das Skript, um /etc/X11/Xsessionzu sehen, wie die Dinge ausgeführt werden.

Auf meinen Debian / Ubuntu-Systemen setzt das Skript /etc/X11/Xsessiondie Variable USERXSESSION=$HOME/.xsession. Später /etc/X11/Xsession.d/50x11-common_determine-startupsucht das Skript nach diesem Skript und verwendet es als primäre Sitzung, sofern dies gemäß der Systemrichtlinie zulässig /etc/X11/Xsession.optionsist und der Anzeigemanager keine andere Sitzung angefordert hat.

Jim Paris
quelle
8

Ich empfehle Ihnen dringend, einen Blick in das Buch X Window Systemadministratorhandbuch zu werfen : für X Version 11 . Kapitel 2 erläutert den Zweck .xsessionund den gesamten Konfigurationsprozess für eine Beispielkonfiguration. Außerdem ist es eine schöne Auffrischung für die gesamte x-window-bezogene Terminologie (und ich hoffe, Sie werden nicht erschreckt :)). Sie können das Buch von bekommen

http://archive.org/details/xwindowsystemadm08muimiss

Obwohl es ziemlich veraltet ist, finden Sie viele Informationen zu den zugrunde liegenden Konzepten, die sich bis heute nicht geändert haben, und es ist sehr gut lesbar. Darüber hinaus ist es wirklich lustig, einen Blick auf das zu werfen, was damals erstklassig war.

user1146332
quelle
7

.xsession ist das traditionelle Startscript für die X11-Umgebung. Heutzutage ist es mit Sessionmanagern wie kdm nicht mehr so ​​nützlich, sondern auf einem traditionell eingerichteten System. Dies wird ausgeführt, nachdem X11 mit startx gestartet wurde.

Nikodemus RIP
quelle