/ etc / X11 / Xsession & LightDM

8

Я бегу Lubuntu 14.10. Кажется, что LighDM запускается /etc/X11/Xsessionтолько по указанию пользователя. На самом деле нет тени этого в lightdm-sessionобертке.

  • startxкомандная строка (обертка вокруг xinit для разумных значений по умолчанию) использует, ~/.xinitrcесли существует, иначе использует /etc/X11/xinit/xinitrc.
  • /etc/X11/xinit/xinitrcисточники /etc/X11/Xsession, которые перенаправляют вывод на .xsession-errors.
  • /etc/X11/Xsessionsource, ~/.xsessionrcесли существует, то выполняется, ~/.xsessionесли исполняемый, source, если нет.

Что происходит при использовании lightdm? Если это не источник /etc/X11/Xsession, как он мог перенаправить ошибки в файл ошибок ~/.xsession-errors(я не смог найти информацию о других скриптах в /etc/X11/Xsession.d/)?

Справочная страница для документов Xsession ~/.xsessionrcи ~/.xsession. В нем говорится, что он ~/.xsessionrcпредназначен только для установки переменных, а ~/.xsessionдля выполнения команд, но он ~/.xsessionполучен только в том случае, если я создаю для него специальный *.desktopфайл /usr/share/xsessions/. Должен ли я создать собственный /etc/X11/Xsession.d/файл (например, 40x11-common_xsessionrcработает для ~/.xsessionrc), или просто использовать ~/.xsessionrcдля добавления каких-либо сценариев?

Кроме того, я хотел бы знать, как x-window-manager и x-session-manager работают через альтернативы. Я заметил, что они, кажется, работают, если нет ~/.xinitrcи ~/.xsessionсуществуют, и, видимо, они работают только при запуске startx.

Заранее спасибо за любые ответы.

Джузеппе Ди Кьяккио
источник
Кстати, у меня есть еще один вопрос. Человек из Ubuntu предлагает создать собственный файл * .desktop в / usr / share / xsessions со строкой Exec = / etc / X11 / Xsession, чтобы установить пользовательские настройки в ~ / .xsession. Это означает запуск другой оболочки после / usr / sbin / lightdm-session, которая в этом случае будет / etc / X11 / Xsession; это приведет к тому, что все в /etc/X11/Xsession.d/ будет применено дважды. Так не лучше ли было бы создать скрипт в /etc/X11/Xsession.d/ для источника ~ / .xsession? Любая помощь приветствуется.
Джузеппе Ди Кьяккио
Чтобы использовать ~ / .xsession через / usr / sbin / lightdm-session, мне было полезно создать новый скрипт в /etc/X11/Xsession.d, который я назвал 45x11-common_xsession. Поскольку все переменные четко определены в оболочке, я просто добавил следующие строки: if [-r "$ USERXSESSION"]; тогда . «$ USERXSESSION» fi Таким образом, оболочка также получит исходный файл ~ / .xsession после получения ~ / .xsessionrc. Надеюсь, это может быть полезно.
Джузеппе Ди Кьяккио
Если вы можете ответить на часть вашего вопроса, пожалуйста, создайте ответ самостоятельно, это совершенно нормально. Комментарии только временные и могут потеряться.
Фолькер Сигел

Ответы:

0

Этот баг

Ошибка № 1001035 «lightdm использует жестко заданный путь к .xsession-errors, ...»: Ошибки: пакет lightdm: Ubuntu

утверждает, что LightDM имеет путь для $HOME/.xsession-errorsжестко закодированного в своем источнике. И это действительно должно быть настраиваемым.

К сожалению, «современные» менеджеры дисплеев, похоже, больше не заботятся о /etc/X11многом и заново изобретают колесо… плохо.
Вероятно потому, что довольно сложно понять, почему все так, как есть. (Я пытался. Я до сих пор не знаю, почему существует так много файлов / сценариев и каковы их цели.)

Например, SDDM вообще не используется .xsession-errorsи регистрируется в каком-то другом странном месте, если оно вообще есть.


добавление

Второй вопрос действительно должен быть отдельным.
Из-за того, что я до сих пор не знаю всего об этом, я не могу помочь с этим.
Но я думаю, что могу сказать, что вы, вероятно, не должны создавать другой пользовательский файл сеанса.
Может быть, документация LightDM поможет вам там ...

О третьем вопросе: справочная страница для xinitи связанные с ней справочные страницы (из того же программного пакета) объясняют это. Есть список альтернатив, некоторые в $HOMEнекоторых /etc, некоторые даже в /usr/share/…подкаталогах. Но я думаю, что если их нет, то по умолчанию тоже предполагается.
Извините, это должно быть тоже отдельно. Я публикую только то, что знаю.

Evi1M4chine
источник