startxläuft, xinitwodurch ein X-Server und eine Client-Sitzung gestartet werden. Die Clientsitzung ist ~/.xinitrcvorhanden 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/xinitrcin /etc/X11/Xsessiondem 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-managerwenn kein [Session - Manager] installiert ist, zurück zu fallen , x-terminal-emulatorin dem unwahrscheinlichen Fall , dass kein Fenstermanager ist Eingerichtet).
Wenn Sie steuern möchten, was ausgeführt wird, können Sie entweder ~/.xsessionoder eine der Benutzerdateien erstellen ~/.xinitrc. Die Datei ~/.xsessionwird auch verwendet, wenn Sie sich in einem Anzeigemanager anmelden (dh wenn Sie Ihr Kennwort in einem GUI-Fenster eingeben). Die Datei ~/.xinitrcist spezifisch für xinitund startx. Mit ~/.xsessiongehen 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, ~/.xinitrcum anzugeben, was ausgeführt wird, wenn Sie ausgeführt werden, startxoder xinituniversell.
Unabhängig davon, ob Sie ~/.xinitrcoder 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 execam Ende des Skripts, um das Skript durch den Sitzungs- oder Fenstermanager zu ersetzen.
Ihr System verfügt vermutlich über /usr/bin/startlxdeden 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 ~/.xsessionDatei 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 ~/.xsessionmö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 . ~/.profileoben 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 startxselbst ausgeführt werden soll. Das startxProgramm hat eine Besonderheit: Sie müssen den vollständigen Pfad zum Programm verwenden.
startx /usr/bin/startkde
Mit dem startxBefehl 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
startxWenn ich angemeldet bin, wird die Standard-Xfce4-Sitzung gestartet. Vom Benutzer-Login meiner Frau auf tty1 oder tty2. IhrstartxBefehl lautet Cinnamon (angegeben in~/.xsession). Für den zweiten X-Server muss ich nicht angeben,$DISPLAYwie im letzten Teil Ihrer Antwort vermerkt. Obwohl das sicherlich funktioniert. Es macht es automatisch zum zweiten$DISPLAYusw. 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!