startx
läuft, xinit
wodurch ein X-Server und eine Client-Sitzung gestartet werden. Die Clientsitzung ist ~/.xinitrc
vorhanden und ansonsten /etc/X11/xinit/xinitrc
(der Speicherort kann zwischen den Verteilungen variieren). Was dieses Skript tut, variiert zwischen den Distributionen. Läuft unter Debian (einschließlich Derivaten wie Raspbian), /etc/X11/xinit/xinitrc
in /etc/X11/Xsession
dem wiederum Skripte ausgeführt werden /etc/X11/Xsession.d
. Der Debian - Skripte sucht nach einer Benutzersitzung in anderen Dateien ( ~/.xsession
, ~/.xsessionrc
, ~/.Xsession
) und, falls keine Benutzereinstellung anwendbar ist, läuft x-session-manager
(fallen zurück , x-window-manager
wenn kein [Session - Manager] installiert ist, zurück zu fallen , x-terminal-emulator
in dem unwahrscheinlichen Fall , dass kein Fenstermanager ist Eingerichtet).
Wenn Sie steuern möchten, was ausgeführt wird, können Sie entweder ~/.xsession
oder eine der Benutzerdateien erstellen ~/.xinitrc
. Die Datei ~/.xsession
wird auch verwendet, wenn Sie sich in einem Anzeigemanager anmelden (dh wenn Sie Ihr Kennwort in einem GUI-Fenster eingeben). Die Datei ~/.xinitrc
ist spezifisch für xinit
und startx
. Mit ~/.xsession
gehen Sie durch /etc/X11/Xsession
, um Dinge wie Eingabemethoden, Ressourcen, Passwortagenten usw. einzurichten. Wenn Sie verwenden .xinitrc
, müssen Sie all diese manuell ausführen. Noch einmal, ich beschreibe Debian hier, andere Unix-Varianten könnten die Dinge anders einrichten. Die Verwendung von, ~/.xinitrc
um anzugeben, was ausgeführt wird, wenn Sie ausgeführt werden, startx
oder xinit
universell.
Unabhängig davon, ob Sie ~/.xinitrc
oder verwenden ~/.xsession
, muss diese Datei (normalerweise ein Shell-Skript, aber nicht, wenn Sie wirklich etwas anderes verwenden möchten) alles vorbereiten, was vorbereitet werden muss (z. B. Tastatureinstellungen, Ressourcen, nicht gestartete Applets) durch den Fenstermanager usw.) und führen Sie am Ende das Programm aus, das die Sitzung verwaltet. Wenn das Skript endet, wird die Sitzung beendet. Normalerweise verwenden Sie exec
am Ende des Skripts, um das Skript durch den Sitzungs- oder Fenstermanager zu ersetzen.
Ihr System verfügt vermutlich über /usr/bin/startlxde
den systemweiten Standardsitzungsmanager. Unter Debian und Derivaten können Sie die verfügbaren Sitzungsmanager mit überprüfen
update-alternatives --list x-session-manager
Oder Sie erhalten eine ausführlichere Beschreibung, aus der hervorgeht, mit welcher Version Sie aktuell sind
update-alternatives --display x-session-manager
Wenn LXDE nicht die systemweite Standardeinstellung war und Sie es als Standardeinstellung für Ihr Konto festlegen wollten, können Sie die folgende ~/.xsession
Datei verwenden:
#!/bin/sh
exec startlxde
Bei einigen Unix-Varianten würde dies nur für grafische Anmeldungen und nicht für Anmeldungen ausgeführt startx
, sodass Sie auch eine identische erstellen müssten ~/.xinitrc
. (Oder nicht identisch: In ~/.xsession
möchten Sie möglicherweise andere Aktionen ausführen, da dies die erste Datei ist, die in einer grafischen Sitzung ausgeführt wird. Beispielsweise können Sie sie ganz . ~/.profile
oben platzieren, um einige Umgebungsvariablen festzulegen.)
Wenn Sie andere Umgebungen einmal ausprobieren möchten, können Sie ein anderes Programm angeben, das in der Befehlszeile von startx
selbst ausgeführt werden soll. Das startx
Programm hat eine Besonderheit: Sie müssen den vollständigen Pfad zum Programm verwenden.
startx /usr/bin/startkde
Mit dem startx
Befehl können Sie auch Argumente angeben, die an den Server übergeben werden sollen. Wenn Sie beispielsweise mehrere GUI-Sitzungen gleichzeitig ausführen möchten, können Sie jedes Mal eine andere Anzeigenummer übergeben. Übergeben Sie die Serverargumente nach --
in der Befehlszeile von startx
.
startx /usr/bin/startkde -- :1
startx
Wenn ich angemeldet bin, wird die Standard-Xfce4-Sitzung gestartet. Vom Benutzer-Login meiner Frau auf tty1 oder tty2. Ihrstartx
Befehl lautet Cinnamon (angegeben in~/.xsession
). Für den zweiten X-Server muss ich nicht angeben,$DISPLAY
wie im letzten Teil Ihrer Antwort vermerkt. Obwohl das sicherlich funktioniert. Es macht es automatisch zum zweiten$DISPLAY
usw. Das Setup ist jedoch großartig. Es gibt kein An- und Abmelden bei einer grafischen Sitzung, nur eine Tastenkombination zum Wechseln von Benutzerprofilen. Danke für diese hilfreiche Antwort!Nein:
startx
ist konfigurierbar. Laut Handbuchseite :startx
ist nicht die einzige Möglichkeit, X zu starten (wie Sie sehenstartlxde
). Diestartx
Manualpage hilft wieder:Auf der anderen Seite, wenn Sie eine GUI (LXDE, KDE, usw.), dann wählen mögen
xdm
und MTW-ähnliche Fahrzeuge wiekdm
,gdm
oderLightDM
sind für die Auswahl verschiedene Desktop - Typen verwendet. Unter Debian verwende ich im Allgemeinenkdm
, weil das verschiedene Desktoptypen erlaubt. Die Packagergdm
verbieten die meisten Desktoptypen, was es für meine Anforderungen ungeeignet macht.xdm
verwendet einen anderen Satz von Skripten, um z. B. Ihr~/.xsession
Skript zusammen mit Systemskripten zu starten . Die Doppelgänger ignorieren dies möglicherweise und verwenden ihre eigenen Skripte. Aber es ist ein Ausgangspunkt.quelle
.xinitrc
ist ein Skript, das es konfigurierbar macht. Es könnte LXDE direkt ausführen, wenn dies codiert wird.startlxde
ist kein Frontend für xinit, sondern ein Startprogramm für den LXDE-Sitzungsmanager. Es ist kein Ersatz fürstartx
, es ist etwas, was Sie ausführen können~/.xinitrc
.