如何使用 LightDM 进行用户定义的会话?

如何使用 LightDM 进行用户定义的会话?

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

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

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

答案1

创建一个新文件/usr/share/xsessions/custom.desktop

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

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

答案2

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

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

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

答案3

要使用 olvwm:

1)sudo apt-get install olvwm在控制台中输入

2)创建此会话:

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

相关内容