当前位置: 首页>>技术教程>>正文


如何将 LightDM 用于用户定义的会话?

问题描述

如果我理解正确的话,LightDM 已经默认替换了 GDM。我想知道是否有可能让它运行我放在我的 .xinitrc 文件中的东西……我需要的是 “Unity” 和“Unity 2D”下面的一个选项,上面写着“运行用户定义的会话”。

那可能吗?应该是最简单的事情,但到目前为止我没有得到任何线索。我在这个文件中导出、定义和运行了很多东西,所以对我来说控制它是非常重要的。

我不想要的是 /usr/some/where 中的自定义会话,我只希望它运行来自每个用户的 xinitrc(或类似的)的东西。

最佳方法

使用以下命令创建一个新文件 /usr/share/xsessions/custom.desktop

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

您现在应该在登录期间有一个新的会话选项,Xsession 将加载用户的 ~/.xinitrc

次佳方法

创建一个新文件 /usr/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 。 (从命令行使用 startx 脚本启动 X 会话时使用 ~/.xinitrc。)

一些解释: Name 条目是 lightdm 将为此会话显示的内容。 Exec 条目很重要,它应该是启动实际会话的程序的名称。当您登录时,lightdm 调用 /etc/X11/Xsession 脚本,将 Exec 的值作为参数传递给它,Xsession 最终将执行该程序(例如,它可能是 startxfce4 用于启动 xfce4 会话)。如果 Exec 条目是特殊字符串 default ,则 Xsession 将执行用户的 ~/.xsession 文件。 (如果 Xsession 在没有参数的情况下被调用,它也会执行 ~/.xsession。)

抱歉,我是新来的,因此无法评论其他人的答案,但我想评论已接受的答案,以使事情更清楚。根据我上面的解释,该答案的方法会发生什么是 Xsession 将由 lightdm 调用,参数是(的完整路径) Xsession 。所以 Xession 将运行,然后调用自己,这次没有参数。第二个 Xsession 不带参数调用,将执行用户的 ~/.xsession 。因此,最终会采取所需的行动,但方式有点尴尬。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12251.html,未经允许,请勿转载。