本文汇总了运行或测试 Koma 时最常见的座席权限、DRM 渲染、Lua 配置重载、中文输入法(IME)与 XWayland 排障方法。
1. koma --tty 无法打开座席或获取 DRM Master
常见现象:libseat 启动失败或 DRM 报 Permission denied / Not master。
- 检查座席守护进程:在不使用
systemd-logind的环境(如极简系统、VM 或 FreeBSD)中,确认seatd已启动,且当前用户属于seat/video/input用户组(执行id -nG检查)。 - 勿在现有图形桌面终端内直接执行
--tty:已有合成器占用 DRM Master 时会导致抢占冲突。请切换到空闲 TTY(如Ctrl+Alt+F3)执行koma --tty,或在当前桌面内使用koma --winit。 - QEMU/KVM 虚拟机:使用
-device virtio-vga配合seatd与 Mesallvmpipe可稳定完成无头/串口验证。
2. 软件渲染(llvmpipe)与硬件 GPU 区分
- 当虚拟机
virtio-vga无硬件 3D 加速时,Koma 会自动回退到 Mesallvmpipe软件 EGL。 - 启动时附加
RUST_LOG=info koma --winit可观察实际加载的GL Renderer与显示模式。 - 在软件渲染或低功耗设备上,可关闭多通道模糊与阴影以降低 CPU 开销:
koma.appearance({ blur = { enabled = false }, shadow = { enabled = false } })
3. 从异常的 init.lua 配置恢复
- 每次修改配置后先执行离线沙箱校验:
komactl validate ~/.config/koma/init.lua - 由于
komactl reload先在 Phodopus 影子沙箱中求值,语法错误、正则错误或死循环都会被燃料配额拦截,线上状态不会被破坏,可通过komactl config-status查看具体报错行。 - 若开机配置损坏导致无法启动,可临时运行
koma -c /dev/null使用内置默认快捷键启动桌面再修复配置文件。
4. komactl 提示找不到 koma-admin.sock
- 确认
$XDG_RUNTIME_DIR指向当前用户的0700运行时目录(例如/run/user/1000)。 - 查看活跃实例套接字:
ls -la "$XDG_RUNTIME_DIR/koma/" - 当同时运行多个嵌套实例时,导出
export KOMA_INSTANCE_SIGNATURE=<目录名>指定目标实例。
5. Fcitx5 / IBus 在 Chromium / Electron 中无法呼出候选框
- Koma 原生提供
text-input-v3、input-method-v2与virtual-keyboard-v1。 - 请为 Chromium / Electron 应用附加 Wayland IME 参数:
chromium --ozone-platform=wayland --enable-wayland-ime - 确认
fcitx5 -d在同一个WAYLAND_DISPLAY会话中启动。
6. 传统 X11 应用无法启动(xwayland-satellite)
- 检查
$PATH中是否已安装xwayland-satellite(或在init.lua中显式配置koma.xwayland({ enabled = true, path = "..." }))。 - 当启用
isolate_agent_workspaces = true时,X11 应用将被刻意禁止进入智能体无头工作区。