Как я могу использовать LightDM для пользовательских сессий?

22

Если я правильно понимаю, LightDM заменил GDM по умолчанию. Интересно, можно ли заставить его запускать то, что я положил в свой файл .xinitrc ... мне нужна опция под «Unity» и «Unity 2D», которая гласит «Запустить пользовательский сеанс».

Это возможно? Должно быть, самое простое, но я пока не понял. В этом файле я экспортирую, определяю и запускаю множество вещей, поэтому для меня очень важно иметь контроль над этим.

Чего я НЕ хочу, так это пользовательского сеанса в / usr / some / where, я только хочу, чтобы он запускал материал из xinitrc каждого пользователя (или аналогичного).

Philipp
источник

Ответы:

21

Создайте новый файл /usr/share/xsessions/custom.desktopс:

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

Теперь у вас должна быть новая опция сеанса во время входа в систему, Xsession загрузит пользователя ~/.xinitrc.

Жоау Пинту
источник
2
Ubuntu теперь рассматривает только ~ / .xsession или, возможно, ~ / .xsessionrc и ~ / .Xsession (12.04)
guigouz,
Нужно ли перезапустить X или просто выйти из системы, чтобы это вступило в силу?
Чепанг
1

Чтобы использовать olvwm:

1) Наберите sudo apt-get install olvwmв консоли

2) Создайте эту сессию:

/usr/share/xsessions/olvwm.desktop
[Desktop Entry]
Name=Open Look
Exec=olvwm
Type=Application
Malix
источник
1

Создайте новый файл /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. Таким образом, желаемое действие будет, в конце концов, предпринято, но немного неловко.

amitr
источник