~/.xinitrc
wird ausgeführt von xinit
, was normalerweise über aufgerufen wird startx
. Dieses Programm wird nach dem Einloggen ausgeführt: Sie melden sich zuerst an einer Textkonsole an, dann starten Sie die GUI mit startx
. Die Aufgabe von .xinitrc
besteht darin, den GUI-Teil der Sitzung zu starten, in der Regel durch Festlegen einiger GUI-bezogener Einstellungen wie Tastenzuordnungen (mit xmodmap
oder xkbcomp
), X-Ressourcen (mit xrdb
) usw., und einen Sitzungsmanager oder einen Fenstermanager zu starten ( möglicherweise als Teil einer Desktop-Umgebung).
~/.xsession
wird ausgeführt, wenn Sie sich im Grafikmodus (auf einem Display Manager ) anmelden und der Display Manager den Sitzungstyp "Benutzerdefiniert" aufruft. (Mit dem historischen Display Manager xdm .xsession
wird immer ausgeführt. Bei modernen Display Managern, bei denen der Benutzer den Sitzungstyp auswählen kann, müssen Sie normalerweise "Benutzerdefiniert" auswählen, um ausgeführt .xsession
zu werden.) Beide Funktionen sind das Festlegen von Anmeldezeitparametern (z. B. Umgebungsvariablen) und zum Starten der GUI-Sitzung. Ein typisches .xsession
ist
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
wird unter Debian (und Derivaten wie Ubuntu, Linux Mint usw.) von den X-Startskripten in einem GUI-Login für alle Sitzungstypen und (glaube ich) von allen Display-Managern ausgeführt. Sie wird auch ausgeführt, startx
wenn der Benutzer keine hat .xinitrc
, da in diesem Fall startx
auf dieselben Sitzungsstartskripten zurückgegriffen wird, die für die GUI-Anmeldung verwendet werden. Es wird relativ früh ausgeführt, nachdem Ressourcen geladen wurden, aber bevor ein Programm wie ein Schlüsselagent, ein D-Bus-Daemon usw. gestartet wird. In der Regel werden Variablen festgelegt, die von späteren Startskripten verwendet werden können. Es gibt keine offizielle Dokumentation, die mir bekannt ist. Sie müssen sich in die Quelle vertiefen, um zu sehen, was funktioniert.
.xinitrc
Da .xsession
es sich um historische Funktionen des X11 Window-Systems handelt, sollten sie auf allen Unix-Systemen verfügbar sein und ein ähnliches Verhalten aufweisen. Andererseits .xsessionrc
ist es ein Debian-Feature, und Distributionen, die nicht auf Debian basieren, haben es nicht, es sei denn, sie haben etwas Ähnliches implementiert.
.xprofile
ist sehr ähnlich, .xsessionrc
ist aber Teil des Sitzungsstartskripts von GDM (dem GNOME-Anzeigemanager), wird also nur gelesen, wenn Sie sich mit GDM anmelden.