在ubuntu中,我安装gnome-seesion并切换到原生gnome。日常使用wayland协议。
在一次系统盘因为日志爆满,然后清理,之后,出现一个奇怪的问题:在输入密码的界面切换桌面环境的协议时,有时候显示“gnome/gnome on xorg”有时候则是”gnome/gnome on wayland”。
使用后者的gnome on wayland时功耗正常,但是前者的”gnome”(系统中显示是wayland)功耗不正常,离电情况下大概是后者2x。
解决方案:重启,直到登录界面变为后一种情况,再选择gnome on wayland进行登录。
网上没有找到类似的记录。在思考可能的原因时,学习了一些Linux desktop的知识。
GDM = GNOME Display Manager,负责从开机后进入图形界面登录页,到你输入密码并进入桌面环境的这一段过程。会根据你选择的会话启动对应桌面会话。GDM 它自己也需要图形环境。它的环境不同可能导致了上面的显示不同。
会话?
GNOME
GNOME on Wayland
GNOME on Xorg
Ubuntu
Ubuntu on Xorg
每一个选项本质上都是一种 desktop session,也就是“桌面会话”。
登录
↓
启动桌面环境
↓
打开窗口、设置环境变量、启动后台服务
↓
使用电脑
↓
注销
这一整段就叫一个 session。
上面这个问题可能的原因是:gnome+wayland,但是有两个session入口。
下次遇到的时候排查:
echo "XDG_SESSION_TYPE=$XDG_SESSION_TYPE"
echo "DESKTOP_SESSION=$DESKTOP_SESSION"
echo "XDG_SESSION_DESKTOP=$XDG_SESSION_DESKTOP"
echo "GNOME_SHELL_SESSION_MODE=$GNOME_SHELL_SESSION_MODE"
for f in /usr/share/wayland-sessions/*.desktop /usr/share/xsessions/*.desktop; do
echo
echo "### $f"
grep -E '^(Name|Exec|TryExec|DesktopNames|X-GDM-Session-Type)=' "$f"
done