如何将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
。
要使用olvwm:
1)在控制台中输入sudo apt-get install olvwm
2)创建此会话:
/usr/share/xsessions/olvwm.desktop [Desktop Entry] Name=Open Look Exec=olvwm Type=Application
创建一个新文件/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
。 (使用命令行中的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
。 因此,最终将采取所期望的行动,但有点尴尬。