Utwórz nowy plik /user/share/xsessions/default.desktop
(nazwa należy do Ciebie, ale musi mieć .desktop
sufiks):
[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=
Teraz, gdy wybierzesz tę sesję lightdm
i zaloguj się, ~/.xsession
plik, jeśli istnieje, zostanie wykonany.
Zauważ, że plik użytkownika, który jest wykonywany, jest ~/.xsession
, a nie taki ~/.xinitrc
, co wspomniano w pytaniu. ( ~/.xinitrc
jest używany, gdy sesja X jest uruchamiana za pomocą startx
skryptu z wiersza poleceń).
Kilka wyjaśnień: Name
Wpis jest lightdm
wyświetlany dla tej sesji. Exec
Wpis jest ważne i powinno to być nazwa programu, który rozpoczyna rzeczywisty sesji. Po zalogowaniu lightdm
wywołuje /etc/X11/Xsession
skrypt, przekazując mu wartość Exec
argumentu i Xsession
ostatecznie uruchomi ten program (na przykład może to być startxfce4
rozpoczęcie xfce4
sesji). Jeśli Exec
wpis jest ciągiem specjalnym default
, plik Xsession
użytkownika zostanie wykonany ~/.xsession
. ( Xsession
wykona się również, ~/.xsession
jeś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 Xsession
spowoduje wywołanie lightdm
jej argumentem (pełna ścieżka) Xsession
. Więc Xession
uruchomi 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.