最近研究桌面环境是怎样加载的,在网上查找相关资料并作相关实验,总结如下:
在lightdm界面,用户有选择进入哪个桌面环境的选项,这些选项由lightdm读取/usr/share/xsessions/目录下的.desktop配置获取,如我们可以在/usr/share/xsessions/下创建ubuntukylin.desktop文件
[Desktop Entry]
Name=UbuntuKylin
Comment=UbuntuKylin Desktop Environment
Exec=/usr/bin/gnome-session --session=ubuntukylin
TryExec=/usr/bin/gnome-session
Type=Application
完成后重启lightdm,sudo restart lightdm你就可以在lightdm登录框看到ubuntukylin项,当然如果你选择登录的话,桌面上是没有加载任何东西的,因为
Exec=/usr/bin/gnome-session --session=ubuntukylin
这行中的–session=ubuntukylin我们并没有,下一步创建session=ubuntukylin,在/usr/share/gnome-session/session/下创建ubuntukylin.session文件
[GNOME Session]
Name=UbuntuKylin
RequiredComponents=gnome-settings-daemon;compiz;firefox
DesktopName=GNOME
然后重启lightdm,选择UbuntuKylin进入,登录成功后,你会发现桌面没有了其他任何面板,只默认开启了firefox
通过这个流程我们基本明白了桌面环境的加载方式,对于session文件中,DesktopName这个key,gnome桌面环境指定为DesktopName=GNOME,ubuntu指定为DesktopName=Unity
下一步研究DesktopName是怎样实现并被系统识别,希望对此有研究的朋友可以提供指导