Answers:
使用以下命令创建一个新文件/usr/share/xsessions/custom.desktop:
[Desktop Entry]
Name=Xsession
Exec=/etc/X11/Xsession
现在,您应该在登录期间拥有一个新的会话选项,Xsession将加载用户的~/.xinitrc。
创建一个新文件/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问题中提到的。(在从命令行~/.xinitrc使用startx脚本启动X会话时使用。)
一些解释:该Name条目lightdm将在此会话中显示。该Exec条目很重要,它应该是启动实际会话的程序的名称。登录时,lightdm调用/etc/X11/Xsession脚本,将其值Exec作为参数传递给脚本,Xsession最终将执行该程序(例如,可能startxfce4用于启动xfce4会话)。如果Exec条目是特殊字符串default,Xsession则将执行用户的~/.xsession文件。(如果调用不带参数,Xsession也将执行~/.xsession。)
抱歉,我是新来的,因此无法评论其他人的答案,但我想对已接受的答案发表评论,以使事情更加清楚。根据我上面的解释,该答案的方法将发生的情况是使用参数(的完整路径)Xsession进行调用。因此将运行,然后调用自身,这次不带任何参数。第二个不带参数的调用将执行用户的。因此,最终将采取所需的措施,但会有些尴尬。lightdmXsessionXessionXsession~/.xsession