archlinux x11桌面 部分程序识别成Wayland

环境

bash 复制代码
                  -`                     itkey@archlinux
                 .o+`                    ---------------
                `ooo/                    OS: Arch Linux x86_64
               `+oooo:                   Host: 83K9 (XiaoXin 14c AHP10)
              `+oooooo:                  Kernel: Linux 7.0.5-zen1-1-zen
              -+oooooo+:                 Uptime: 1 hour, 42 mins
            `/:-:++oooo+:                Packages: 8 (flatpak), 1701 (pacman)
           `/++++/+++++++:               Shell: zsh 5.9
          `/++++++++++++++:              Display (HDMI-1): 3840x2160 @ 2x in 28", 60 Hz [External] *
         `/+++ooooooooooooo/`            Display (eDP-1): 1920x1200 @ 2x in 14", 60 Hz [Built-in]
        ./ooosssso++osssssso+`           WM: awesome (X11)
       .oossssso-````/ossssss+`          Cursor: Adwaita
      -osssssso.      :ssssssso.         Terminal: tmux 3.6a
     :osssssss/        osssso+++.        CPU: AMD Ryzen 7 8745HS (16) @ 4.97 GHz
    /ossssssss/        +ssssooo/-        GPU: AMD Radeon 780M Graphics [Integrated]
  `/ossssso+/:-        -:/+osssso+-      Memory: 5.58 GiB / 13.41 GiB (42%)
 `+sso+:-`                 `.-/+oso:     Swap: 200.00 KiB / 20.62 GiB (0%)
`++:.                           `-/+/    Disk (/): 179.33 GiB / 229.27 GiB (78%) - ext4
.`                                 `/    Disk (/mnt/data): 12.37 GiB / 20.10 GiB (62%) - fuseblk [Read-only]
                                         Disk (/mnt/windows): 194.85 GiB / 200.00 GiB (97%) - fuseblk [Read-only]
                                         Local IP (tun0): 172.19.0.1/30
                                         Battery (L24N3PK2): 75% [AC Connected]
                                         Locale: zh_CN.UTF-8

现象

有在awesome (X11)之中运行程序,有不少之前运行正常的程序,近期会报错。比如:edge

程序似乎想以wayland方式启动,但是启动失败了。

我日常使用awesome,但是因为一次archlinux更新后,awesome崩溃了,所以短暂的使用过gnome。然后又切回了awesome,就出来这个故障了。

后来我发现我的环境变量有问题

bash 复制代码
 echo $XDG_SESSION_TYPE
wayland

解决办法

方法来自AI实测有较

bash 复制代码
busctl call org.freedesktop.Accounts \
    /org/freedesktop/Accounts/User1000 \
    org.freedesktop.Accounts.User \
    SetSessionType s x11

重新登录或重启后再确认当前会话:

bash 复制代码
  echo "$XDG_SESSION_TYPE"
  loginctl show-session "$XDG_SESSION_ID" -p Type

原因:

之前的问题是:GDM 记录了你要进入 awesome,但没有记录它是 X11 会话,于是 logind/GDM 把当前 session 错登记成

wayland,导致 gdm-x-session -> awesome -> 终端/程序 全链路继承了 XDG_SESSION_TYPE=wayland。

相关推荐
老当益壮梁奶奶11 分钟前
Linux软件编程学习笔记(九):消息队列、共享内存与信号灯详解
linux·c语言·笔记·学习
小雪崩16 分钟前
嵌入式学习 day35:进程间通信-消息队列、共享空间及有名信号量
linux·c语言·学习
从零开始的嵌入式之旅29 分钟前
day33
linux·c语言·经验分享·笔记·嵌入式硬件
qetfw1 小时前
Debian lftp FTP 客户端使用:登录、目录切换与文件传输
linux·运维·debian
神威难绷泪1 小时前
Linux应用软件编程:线程分离属性 互斥机制 同步机制 死锁
linux·开发语言·算法·线程
2401_862880821 小时前
Linux应用层开发 --- 管道
linux·运维·c语言
NJCloud1 小时前
OpenStack(四)——进阶篇之私有网络配置与块存储服务(Cinder)部署
linux·网络·云计算·openstack
raindayinrain1 小时前
深入理解Linux内核--ext文件系统,open/write/read/close执行流程,性能优化
linux·性能优化·文件系统·文件系统调用
jing.wang_20251 小时前
制作一个带用户操作界面的精简Linux操作系统
linux·服务器
沫璃染墨2 小时前
《从零入门Linux系统篇(三十二):文件篇·五——深入理解磁盘:从物理结构到LBA寻址》
linux·运维·服务器·系统架构·硬件架构