Создайте новый файл /user/share/xsessions/default.desktop
(имя зависит от вас, но он должен иметь .desktop
суффикс):
[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=
Теперь, когда вы выберете этот сеанс lightdm
и войдете в систему, ваш ~/.xsession
файл, если он существует, будет выполнен.
Обратите внимание, что исполняемый файл пользователя есть ~/.xsession
, а не тот ~/.xinitrc
, который был упомянут в вопросе. ( ~/.xinitrc
используется, когда сеанс X запускается с использованием startx
сценария из командной строки.)
Некоторые объяснения: Name
Запись - это то, что lightdm
будет отображаться для этого сеанса. Exec
Запись является важным, и это должно быть имя программы , которая начинается фактическое сессии. Когда вы входите в систему, lightdm
вызываете /etc/X11/Xsession
скрипт, передавая ему значение Exec
в качестве аргумента, и Xsession
, в конце концов, запустите эту программу (например, это может быть startxfce4
для запуска xfce4
сеанса). Если Exec
запись является специальной строкой default
, то Xsession
будет выполняться ~/.xsession
файл пользователя . ( Xsession
также выполняется, ~/.xsession
если он вызывается без aruments.)
Извините, я новичок здесь и поэтому не могу комментировать ответы других людей, но я бы хотел прокомментировать принятый ответ, чтобы прояснить ситуацию. Согласно моему объяснению выше, то, что произойдет с методом этого ответа, Xsession
будет вызываться lightdm
с аргументом (полный путь) Xsession
. Так что Xession
будет работать, а затем позвонить сам, на этот раз без аргументов. Второй Xsession
, вызываемый без аргументов, будет выполнять пользователя ~/.xsession
. Таким образом, желаемое действие будет, в конце концов, предпринято, но немного неловко.