news 2026/6/9 18:02:42

Arch Linux + Niri + Xwayland 故障排查与修复指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Arch Linux + Niri + Xwayland 故障排查与修复指南

本文档详细记录了在 Arch Linux 系统下,使用 Niri(Wayland 合成器)时遇到的 Xwayland 应用程序(如微信)无法启动及光标过大问题的完整排查与修复过程。

1. 问题描述

现象 A:X11 应用无法启动

  • 症状:尝试启动微信(或其他 X11 应用)失败。
  • 报错信息
    Authorization required, but no authorization protocol specified xhost: unable to open display ":0"
  • 环境
    • OS: Arch Linux
    • Compositor: Niri (Wayland)
    • Package:wechat(AUR) /wechat-bin

现象 B:鼠标光标异常巨大

  • 症状:应用启动后,当鼠标移动到 Xwayland 窗口内时,光标变得非常大,与系统其他部分不一致。

2. 根本原因分析

2.1 启动失败原因 (Authorization required)

原因:Niri 作为一个极简的 Wayland 合成器,其内置的 Xwayland 支持可能不如 GNOME/KDE 那样全自动处理XAuthority 认证

什么是 XAuthority 认证?

X Window System 设计了一个基于 “Cookie” 的安全机制来防止未经授权的程序连接到你的显示服务器(并监听你的键盘输入或截屏)。

  1. Magic Cookie: 当 X Server(在此场景下是 Xwayland)启动时,它会生成一个随机的 “Magic Cookie”(一串加密数据)。
  2. 存储文件: 这个 Cookie 会被写入到一个文件中(通常是~/.Xauthority/run/user/1000/gdm/Xauthority)。
  3. 连接验证: 当任何 X11 客户端(如微信)尝试连接显示服务器时,它必须读取这个文件,并将里面的 Cookie 发送给服务器进行验证。只有 Cookie 匹配,连接才会被接受。

在我们的故障中

  • Xwayland 启动了,也监听了:0端口。
  • 但由于 Niri 的环境配置问题,它没有将生成的 Cookie 文件路径通过XAUTHORITY环境变量告知给用户会话(Shell)。
  • 因此,当我们在终端运行wechat时,微信找不到 Cookie 文件,只能向服务器发送空凭证。
  • X Server 发现凭证无效,直接拒绝连接,抛出错误:Authorization required, but no authorization protocol specified

2.2 光标过大原因

原因:Wayland 和 X11 使用不同的机制来处理光标。

  • 在 Wayland 下,合成器负责绘制光标。
  • 但在 Xwayland 窗口内,X11 应用负责绘制光标。
  • 如果没有专门的设置守护进程(Settings Daemon)来同步 Wayland 的光标设置(大小、主题)到 X11,Xwayland 应用就会回退到默认设置(通常是巨大的默认光标或错误缩放)。

3. 详细排查步骤 (Troubleshooting)

步骤 1: 确认 Xwayland 基础状态

首先检查系统是否具备运行 X11 应用的基础能力。

# 1. 检查 Xwayland 二进制文件whichXwayland# 2. 检查进程是否运行psaux|grepXwayland# 3. 检查环境变量echo$DISPLAYecho$WAYLAND_DISPLAY

结果:DISPLAY=:0存在,Xwayland 进程存在,但应用依然无法连接。

步骤 2: 验证 X11 连接性

尝试使用简单的工具连接 X Server。

# 安装 xorg-xhost (如果未安装)sudopacman-Sxorg-xhost# 尝试连接xhost

结果:报错Authorization required, but no authorization protocol specified。确认为权限/认证问题。

步骤 3: 检查 Niri 配置

查看 Niri 是否开启了 Xwayland 支持。

cat~/.config/niri/config.kdl

发现:配置文件中虽然有xwayland选项,但在某些 Niri 版本或特定环境下,原生支持可能不够完善或缺乏 XAuth 管理。


4. 修复方案 (Fix Steps)

我们采用了xwayland-satellite配合xsettingsd的组合方案。这是 Niri 官方推荐的最佳实践。

  • xwayland-satellite: 一个独立的 Xwayland 管理器,能更好地处理 XAuth 和生命周期。
  • xsettingsd: 一个轻量级的 X11 设置守护进程,用于同步主题和光标大小。

4.1 修复启动问题 (部署 xwayland-satellite)

1. 安装 xwayland-satellite

由于该包在 Arch 的extra仓库或 AUR 中。

# 确保使用正确的代理(如果需要)exporthttp_proxy=http://127.0.0.1:7890exporthttps_proxy=http://127.0.0.1:7890# 安装yay-Sxwayland-satellite
2. 配置 Niri 自动启动

编辑 Niri 配置文件~/.config/niri/config.kdl,在启动部分添加:

// 启动时自动运行 satellite spawn-at-startup "xwayland-satellite"

4.2 修复光标过大问题 (部署 xsettingsd)

1. 安装 xsettingsd
yay-Sxsettingsd
2. 创建配置文件

创建~/.xsettingsd文件,强制指定光标主题和大小。
注意:Gtk/CursorThemeSize通常设为 24,如果觉得大可以设为 16。

# 编辑 ~/.xsettingsdGtk/CursorThemeName"Adwaita"Gtk/CursorThemeSize16Xft/Antialias1Xft/Hinting1Xft/HintStyle"hintfull"Xft/RGBA"rgb"
3. 配置 Niri 自动启动

同样在~/.config/niri/config.kdl中添加:

spawn-at-startup "xsettingsd"

4.3 应用更改

完成上述配置后,重启 Niri 会话(或重启系统)是应用更改最稳妥的方式。
重启后:

  1. xwayland-satellite会自动接管 X11 支持(通常监听:1)。
  2. xsettingsd会在后台广播正确的光标设置。
  3. 微信等 X11 应用即可正常启动且光标大小正常。

5. 总结

在 Niri 这种非桌面环境(DE)的独立合成器下运行 X11 应用,不能依赖 GNOME/KDE 那样的“开箱即用”魔法。我们需要显式地组装组件:

  1. 连接层:用xwayland-satellite替代/增强原生的 Xwayland 支持,解决认证问题。
  2. 配置层:用xsettingsd解决 X11 应用的主题和光标不一致问题。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:08:13

LLVM是什么?

LLVM是什么? 本文将从核心概念、组成部分、工作流程、优势和应用等多个层面来介绍LLVM。 核心定义:LLVM 不是一个单一的“东西” 首先,一个最常见的误解需要澄清:LLVM 不是一个传统的“编译器”(如 GCC)。它…

作者头像 李华
网站建设 2026/6/5 4:33:43

避免穿帮!Sonic数字人视频生成中duration设置关键要点

避免穿帮!Sonic数字人视频生成中duration设置关键要点 在虚拟主播24小时不间断带货、AI教师批量生成教学视频的今天,一个看似微不足道的技术参数——duration,却常常成为决定数字人是否“穿帮”的生死线。你有没有遇到过这样的尴尬&#xff1…

作者头像 李华
网站建设 2026/6/9 19:50:34

江苏苏州园林:评弹艺人用吴侬软语诉说江南

江苏苏州园林:评弹艺人用吴侬软语诉说江南——基于VoxCPM-1.5-TTS-WEB-UI的文本转语音技术实现 在苏州拙政园的一处回廊下,游客驻足于一块互动屏前。屏幕轻点,“各位来宾,欢迎来到拙政园……”柔婉绵长的吴侬软语缓缓响起&#x…

作者头像 李华
网站建设 2026/6/9 19:54:37

食品保质期提醒:冰箱内置VoxCPM-1.5-TTS-WEB-UI即将过期警告

食品保质期提醒:冰箱内置VoxCPM-1.5-TTS-WEB-UI即将过期警告 你有没有这样的经历?打开冰箱,翻出一瓶牛奶,刚喝一口才发现已经过期三天。更糟的是,家里老人记性不好,孩子又不懂看生产日期,食物浪…

作者头像 李华
网站建设 2026/6/9 19:44:49

MATLAB高效算法实战技术文章大纲

MATLAB高效算法实战技术文章大纲基础概念与优化原则MATLAB语言特性与性能瓶颈分析向量化操作优势、内存预分配、避免循环冗余算法复杂度理论在MATLAB中的实际体现时间与空间复杂度的测量工具(tic/toc、profile)核心优化技术向量化编程实战矩阵运算替代循…

作者头像 李华
网站建设 2026/6/5 15:44:04

字节跳动突破:混合专家模型实现高效任务分工协同

这项由字节跳动种子团队的吕昂、马晋、马艺元和乔思远完成的研究发表于2025年的arXiv预印本平台,论文编号为arXiv:2512.23447v1。有兴趣深入了解的读者可以通过该编号查询完整论文。这项研究针对混合专家模型(MoE)中存在的根本性问题&#xf…

作者头像 李华