Wie kann ich LightDM für benutzerdefinierte Sitzungen verwenden?

22

Wenn ich es richtig verstehe, hat LightDM GDM standardmäßig ersetzt. Ich frage mich, ob es möglich ist, die Dinge auszuführen, die ich in meine .xinitrc-Datei geschrieben habe. Was ich brauche, ist eine Option unter "Unity" und "Unity 2D" mit der Aufschrift "Eine benutzerdefinierte Sitzung ausführen".

Ist das möglich? Sollte die einfachste Sache sein, aber ich habe bisher keine Ahnung bekommen. Ich exportiere und definiere viele Dinge und führe sie aus. Daher ist es für mich ziemlich wichtig, die Kontrolle darüber zu haben.

Was ich NICHT möchte, ist eine benutzerdefinierte Sitzung in / usr / some / where. Ich möchte nur, dass das Zeug von xinitrc (oder ähnlichem) jedes Benutzers ausgeführt wird.

Philipp
quelle

Antworten:

21

Erstelle eine neue Datei /usr/share/xsessions/custom.desktopmit:

[Desktop Entry]
Name=Xsession
Exec=/etc/X11/Xsession

Sie sollten jetzt eine neue Sitzungsoption während der Anmeldung haben, Xsession lädt den Benutzer ~/.xinitrc.

João Pinto
quelle
2
Ubuntu berücksichtigt nur ~ / .xsession oder vielleicht ~ / .xsessionrc und ~ / .Xsession jetzt (12.04)
guigouz
Muss man X neu starten oder sich einfach abmelden, damit dies wirksam wird?
Tshepang
1

So verwenden Sie olvwm:

1) Geben Sie sudo apt-get install olvwmeine Konsole ein

2) Erstellen Sie diese Sitzung:

/usr/share/xsessions/olvwm.desktop
[Desktop Entry]
Name=Open Look
Exec=olvwm
Type=Application
Malix
quelle
1

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.

amitr
quelle