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.