Jak używać LightDM do sesji zdefiniowanych przez użytkownika?

22

Jeśli nie zrozumiem go poprawnie, LightDM domyślnie zastąpił GDM. Zastanawiam się, czy można sprawić, by uruchamiał to, co umieściłem w pliku .xinitrc ... potrzebuję opcji poniżej „Unity” i „Unity 2D”, która mówi „Uruchom sesję zdefiniowaną przez użytkownika”.

Czy to jest możliwe? Powinno to być najłatwiejsze, ale jak dotąd nie znalazłem pojęcia. Eksportuję, definiuję i uruchamiam wiele rzeczy w tym pliku, więc jest dla mnie bardzo ważne, aby mieć nad tym kontrolę.

To, czego NIE chcę, to sesja niestandardowa w / usr / some / where, chcę tylko, aby uruchamiała rzeczy z każdego użytkownika xinitrc (lub podobnego).

Philipp
źródło

Odpowiedzi:

21

Utwórz nowy plik za /usr/share/xsessions/custom.desktoppomocą:

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

Powinieneś teraz mieć nową opcję sesji podczas logowania, Xsession załaduje użytkownika ~/.xinitrc.

João Pinto
źródło
2
Ubuntu rozważa tylko ~ / .xsession, a może ~ / .xsessionrc i ~ / .Xsession teraz (12.04)
guigouz
Czy trzeba zrestartować X, czy po prostu wylogować się, aby to zadziałało?
tshepang
1

Aby użyć olvwm:

1) Wpisz sudo apt-get install olvwmkonsolę

2) Utwórz tę sesję:

/usr/share/xsessions/olvwm.desktop
[Desktop Entry]
Name=Open Look
Exec=olvwm
Type=Application
Malix
źródło
1

Utwórz nowy plik /user/share/xsessions/default.desktop(nazwa należy do Ciebie, ale musi mieć .desktopsufiks):

[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=

Teraz, gdy wybierzesz tę sesję lightdmi zaloguj się, ~/.xsessionplik, jeśli istnieje, zostanie wykonany.

Zauważ, że plik użytkownika, który jest wykonywany, jest ~/.xsession, a nie taki ~/.xinitrc, co wspomniano w pytaniu. ( ~/.xinitrcjest używany, gdy sesja X jest uruchamiana za pomocą startxskryptu z wiersza poleceń).

Kilka wyjaśnień: NameWpis jest lightdmwyświetlany dla tej sesji. ExecWpis jest ważne i powinno to być nazwa programu, który rozpoczyna rzeczywisty sesji. Po zalogowaniu lightdmwywołuje /etc/X11/Xsessionskrypt, przekazując mu wartość Execargumentu i Xsessionostatecznie uruchomi ten program (na przykład może to być startxfce4rozpoczęcie xfce4sesji). Jeśli Execwpis jest ciągiem specjalnym default, plik Xsessionużytkownika zostanie wykonany ~/.xsession. ( Xsessionwykona się również, ~/.xsessionjeśli zostanie wywołany bez argumentów).

Przepraszam, jestem tu nowy i dlatego nie mogę komentować odpowiedzi innych osób, ale chciałbym skomentować zaakceptowaną odpowiedź, aby wszystko było bardziej zrozumiałe. Zgodnie z powyższym wyjaśnieniem metoda tej odpowiedzi Xsessionspowoduje wywołanie lightdmjej argumentem (pełna ścieżka) Xsession. Więc Xessionuruchomi się, a potem zadzwoni, tym razem bez argumentów. Drugi Xsession, wywołany bez argumentów, wykona użytkownika ~/.xsession. Tak więc pożądane działanie zostanie ostatecznie podjęte, ale w nieco niezręczny sposób.

amitr
źródło