Як я можу використовувати LightDM для визначених користувачем сесій?


22

Якщо я правильно це зрозумію, LightDM замінив GDM за замовчуванням. Цікаво, чи можна змусити його запускати речі, які я вкладаю у свій .xinitrc файл ... мені потрібні параметри нижче "Unity" та "Unity 2D", де написано "Запустити визначений користувачем сеанс".

Це можливо? Повинна бути найпростіша річ, але я поки що не отримав підказки. Я експортую та визначаю та запускаю багато речей у цьому файлі, тому для мене досить важливо мати контроль над цим.

Я НЕ хочу, щоб це спеціальний сеанс в / usr / some / де, я лише хочу, щоб він запускав речі з xinitrc кожного користувача (або подібного).

Відповіді:


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 або просто вийти з системи, щоб це вступило в силу?
thepang

1

Щоб використовувати olvwm:

1) Введіть sudo apt-get install olvwmконсоль

2) Створіть цей сеанс:

/usr/share/xsessions/olvwm.desktop
[Desktop Entry]
Name=Open Look
Exec=olvwm
Type=Application

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якщо він називається без аргументів.)

Вибачте, я тут новий, і тому не можу коментувати відповіді інших людей, але я хотів би прокоментувати прийняту відповідь, щоб зробити ясніше все. Згідно з моїм поясненням вище, що відбудеться з методом цієї відповіді, це Xsessionбуде викликано lightdmаргументом, який є (повний шлях) Xsession. Тож Xessionпобіжить, а потім зателефонуй собі, цього разу без аргументів. Другий Xsession, викликаний без аргументів, виконає користувача ~/.xsession. Тож бажані дії, врешті-решт, будуть вжиті, але трохи незручно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.