Erstellen Sie eine neue Datei /user/share/xsessions/default.desktop(der Name liegt bei Ihnen, muss aber ein .desktopSuffix 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 lightdmund sich anmelden, wird Ihre ~/.xsessionDatei, falls vorhanden, ausgeführt.
Beachten Sie, dass die Datei des Benutzers, die ausgeführt wird , die in der Frage erwähnte ist ~/.xsessionund nicht ~/.xinitrc. ( ~/.xinitrcWird verwendet, wenn die X-Sitzung mithilfe des startxSkripts über eine Befehlszeile gestartet wird.)
Einige Erklärungen: Der NameEintrag wird lightdmfür diese Sitzung angezeigt. Der ExecEintrag ist das Wichtigste und sollte der Name des Programms sein, mit dem die eigentliche Sitzung gestartet wird. Wenn Sie sich anmelden, lightdmrufen Sie das /etc/X11/XsessionSkript auf und übergeben ihm den Wert von Execals Argument. XsessionAnschließend wird dieses Programm ausgeführt (z. B. startxfce4zum Starten einer xfce4Sitzung). Wenn der ExecEintrag eine spezielle Zeichenfolge ist default, Xsessionwird die ~/.xsessionDatei des Benutzers ausgeführt . ( Wird Xsessionauch ausgeführt, ~/.xsessionwenn 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 Xsessionsie lightdmmit einem Argument aufgerufen wird, das (der vollständige Pfad von) ist Xsession. Also Xessionläuft und ruft sich dann selbst auf, diesmal ohne Argumente. Der zweite XsessionBefehl, 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.