Unterschied zwischen .xinitrc, .xsession und .xsessionrc

55

Ich habe drei Konfigurationsdateien gefunden.

  1. .xinitrc
  2. .xsession
  3. .xsessionrc

Ich weiß, dass der erste für die Verwendung startxund der zweite und dritte für die Verwendung eines Display-Managers verwendet werden. Aber was ist der Unterschied zwischen den letzten beiden?

lockdoc
quelle

Antworten:

64

~/.xinitrcwird 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 .xinitrcbesteht darin, den GUI-Teil der Sitzung zu starten, in der Regel durch Festlegen einiger GUI-bezogener Einstellungen wie Tastenzuordnungen (mit xmodmapoder xkbcomp), X-Ressourcen (mit xrdb) usw., und einen Sitzungsmanager oder einen Fenstermanager zu starten ( möglicherweise als Teil einer Desktop-Umgebung).

~/.xsessionwird 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 .xsessionwird 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 .xsessionzu werden.) Beide Funktionen sind das Festlegen von Anmeldezeitparametern (z. B. Umgebungsvariablen) und zum Starten der GUI-Sitzung. Ein typisches .xsessionist

#!/bin/sh
. ~/.profile
. ~/.xinitrc

~/.xsessionrcwird 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, startxwenn der Benutzer keine hat .xinitrc, da in diesem Fall startxauf 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.

.xinitrcDa .xsessiones sich um historische Funktionen des X11 Window-Systems handelt, sollten sie auf allen Unix-Systemen verfügbar sein und ein ähnliches Verhalten aufweisen. Andererseits .xsessionrcist es ein Debian-Feature, und Distributionen, die nicht auf Debian basieren, haben es nicht, es sei denn, sie haben etwas Ähnliches implementiert.

.xprofileist sehr ähnlich, .xsessionrcist aber Teil des Sitzungsstartskripts von GDM (dem GNOME-Anzeigemanager), wird also nur gelesen, wenn Sie sich mit GDM anmelden.

Gilles 'SO - hör auf böse zu sein'
quelle
5

Gemäß einer anderen Diskussion führen startx + ~ / .xsession und no ~ / .xinitrc zu einer reduzierten Funktionalität (xfce4, sid)

Erstens: .xsessionrcdient zum Speichern globaler Umgebungsvariablen . Der Schwerpunkt liegt bei mir.

Zweitens: 40x11-common_xsessionrcIn /etc/X11/Xsession.dwird vorher beschafft 50x11-common_determine-startup. So .xsessionrcliest , bevor wird .xsessionund alle Umgebungsvariablen gesetzt werden , um Anwendungen , die von den Befehlen laufen verfügbar werden .xsession.

Weitere Lektüre:

Thomas Dickey
quelle