Erstellen Sie eine neue Datei /user/share/xsessions/default.desktop
(der Name liegt bei Ihnen, muss aber ein .desktop
Suffix haben):
[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=
Wenn Sie nun diese Sitzung auswählen lightdm
und sich anmelden, wird Ihre ~/.xsession
Datei, falls vorhanden, ausgeführt.
Beachten Sie, dass die Datei des Benutzers, die ausgeführt wird , die in der Frage erwähnte ist ~/.xsession
und nicht ~/.xinitrc
. ( ~/.xinitrc
Wird verwendet, wenn die X-Sitzung mithilfe des startx
Skripts über eine Befehlszeile gestartet wird.)
Einige Erklärungen: Der Name
Eintrag wird lightdm
für diese Sitzung angezeigt. Der Exec
Eintrag ist das Wichtigste und sollte der Name des Programms sein, mit dem die eigentliche Sitzung gestartet wird. Wenn Sie sich anmelden, lightdm
rufen Sie das /etc/X11/Xsession
Skript auf und übergeben ihm den Wert von Exec
als Argument. Xsession
Anschließend wird dieses Programm ausgeführt (z. B. startxfce4
zum Starten einer xfce4
Sitzung). Wenn der Exec
Eintrag eine spezielle Zeichenfolge ist default
, Xsession
wird die ~/.xsession
Datei des Benutzers ausgeführt . ( Wird Xsession
auch ausgeführt, ~/.xsession
wenn es ohne Argumente aufgerufen wird.)
Tut mir leid, ich bin neu hier und kann daher die Antworten anderer nicht kommentieren, aber ich möchte die akzeptierte Antwort kommentieren, um die Dinge klarer zu machen. Nach meiner obigen Erklärung passiert mit der Methode dieser Antwort, dass Xsession
sie lightdm
mit einem Argument aufgerufen wird, das (der vollständige Pfad von) ist Xsession
. Also Xession
läuft und ruft sich dann selbst auf, diesmal ohne Argumente. Der zweite Xsession
Befehl, der ohne Argumente aufgerufen wird, führt den Benutzer aus ~/.xsession
. So wird die gewünschte Aktion schließlich ausgeführt, aber auf etwas umständliche Weise.