如何将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 。 因此,最终将采取所期望的行动,但有点尴尬。