如果我理解正确的话,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
条目是特殊字符串default
,Xsession
则将执行用户的~/.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