银河麒麟桌面 V11 wayland 切换为 X11
现在已经确认了:你当前图形会话确实是 Wayland。
echo $XDG_SESSION_TYPE
wayland
并且你的环境是:
-
银河麒麟桌面 V11
-
UKUI
-
LightDM
-
NVIDIA 驱动已安装(截图里有
xserver-xorg-video-nvidia-570)
这类环境可以直接强制切换到 X11。
先创建 LightDM 配置:
sudo mkdir -p /etc/lightdm/lightdm.conf.d
sudo nano /etc/lightdm/lightdm.conf.d/99-force-x11.conf
写入:
[Seat:*]
type=xlocal
xserver-command=X
保存后,再创建 UKUI 会话默认配置:
sudo nano /usr/share/xsessions/ukui.desktop
检查是否存在以下内容(没有就添加):
[Desktop Entry]
Name=UKUI
Comment=UKUI Desktop Environment
Exec=ukui-session
Type=Application
DesktopNames=UKUI
然后重启 LightDM:
sudo systemctl restart lightdm
如果当前在图形界面里操作,执行上面命令会直接退出桌面,所以更稳妥的是:
sudo reboot
重启后登录,再验证:
echo $XDG_SESSION_TYPE
应变成:
x11
如果重启后仍显示 wayland,说明 UKUI V11 的 Wayland 会话被单独指定了。继续执行下面命令查看系统有哪些会话:
ls /usr/share/wayland-sessions/
ls /usr/share/xsessions/
把输出发来,我再告诉你如何把默认会话从 ukui-wayland 改成 ukui-x11。
从结果看,LightDM 配置里没有指定 user-session,所以不是这里覆盖的。现在几乎可以确定是 银河麒麟的 kylin-wlcom(Wayland 组件)在启动链里强制接管了会话。
执行下面这个定位命令:
grep -R "kylin-wlcom" /etc /usr /var 2>/dev/null
重点找类似下面内容:
user-session=kylin-wlcom
或:
Exec=kylin-wlcom
不过根据你当前环境,更快的办法是直接把默认 Wayland 会话移走,让 LightDM 只能看到 X11 会话。
先备份:
sudo mv /usr/share/wayland-sessions/kylin-wlcom.desktop \
/usr/share/wayland-sessions/kylin-wlcom.desktop.bak
然后重启:
sudo reboot
登录后验证:
echo $XDG_SESSION_TYPE
预期:
x11
如果以后要恢复 Wayland:
sudo mv /usr/share/wayland-sessions/kylin-wlcom.desktop.bak \
/usr/share/wayland-sessions/kylin-wlcom.desktop
sudo reboot
这一步的原理是:你已经确认系统里存在唯一的 X11 会话:
/usr/share/xsessions/ukui.desktop
而 Wayland 会话只有:
/usr/share/wayland-sessions/kylin-wlcom.desktop
移走 kylin-wlcom.desktop 后,登录管理器就只能启动 UKUI 的 X11 会话。
做完后把:
echo $XDG_SESSION_TYPE
的结果发一下。
No Comments