夏日幽灵 サマーゴースト (2021)
681 字
3 分钟
Hello Arch + Niri
这是一份我在 Arch Linux 上搭建 niri 桌面环境的完整记录。内容包含:系统与引导器、核心软件、常用快捷键、坑位与修复方案(例如飞书共享屏幕),并尽量做到“可复现”。
0. 环境概览
- 系统:Arch Linux(UEFI)
- 桌面:niri(Wayland)
- 登录管理器:SDDM(自定义主题)
- 引导器:systemd-boot
1. 引导器:从 GRUB 迁移到 systemd-boot
loader.conf
# /boot/loader/loader.conf
default arch.conf
timeout 0
console-mode max启动项
# /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options root=UUID=ee47c9bd-01d0-425e-83f5-1627a27c7a78 rw quiet splash rd.systemd.show_status=false rd.udev.log_level=32. Shell 与终端
- Shell:zsh
- Oh My Zsh + powerlevel10k
- 即时提示设置为 quiet,避免 zsh 启动警告
# ~/.zshrc
typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet
ZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)终端:Ghostty
# ~/.config/ghostty/config
font-family = Maple Mono NF CN
font-size = 143. niri 核心配置
配置文件:
~/.config/niri/config.kdl~/.config/niri/binds.kdl~/.config/niri/output.kdl
3.1 显示器
只固定外接屏刷新率,其他保持自动:
# ~/.config/niri/output.kdl
output "HDMI-A-1" {
mode "1920x1080@100.000"
}3.2 桌面 Shell / Bar
# ~/.config/niri/config.kdl
spawn-sh-at-startup "qs -c noctalia-shell"Noctalia 性能优化(内存占用下降)
我在 noctalia-shell 上关闭了动画与阴影后,内存占用明显下降,体验更稳定。
// ~/.config/noctalia/settings.json
"general": {
"animationDisabled": true,
"enableShadows": false
}3.3 锁屏
手动锁屏走 noctalia:
# ~/.config/niri/binds.kdl
Mod+Alt+L { spawn "qs" "-c" "noctalia-shell" "ipc" "call" "lockScreen" "lock"; }自动锁屏仍用 swayidle 触发:
# ~/.config/niri/scripts/swayidle.sh
exec swayidle -w \
timeout 300 'qs -c noctalia-shell ipc call lockScreen lock' \
timeout 600 'niri msg action power-off-monitors' \
resume 'niri msg action power-on-monitors' \
timeout 1200 'systemctl suspend'4. 常用快捷键(节选)
启动器与工具
Super+T:GhosttySuper+Z:noctalia launcherSuper+Alt+L:锁屏(noctalia)Super+Alt+V:剪贴板
音量/亮度
XF86Audio*:音量/静音/媒体XF86MonBrightness*:亮度
截图(grim + slurp + satty)
Print:全屏截图并编辑Shift+Print / Sys_Req:区域截图并编辑Ctrl+Print:窗口截图并编辑Super+Shift+A:区域截图并编辑
5. 输入法与主题
Fcitx5
# ~/.config/fcitx5/conf/classicui.conf
Theme=Matugen
DarkTheme=Matugen
Vertical Candidate List=False系统深色模式
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'6. 浏览器与触控板
Chrome 触控板前进/后退
# ~/.config/chrome-flags.conf
--enable-features=TouchpadOverscrollHistoryNavigation触控板滚动灵敏度
# ~/.config/niri/config.kdl
scroll-factor horizontal=0.3 vertical=0.37. 飞书相关问题与解决
7.1 Dock 出现灰色 + 问号双图标
原因:Wayland 下飞书窗口 app_id 为空,dock 无法正确匹配。
解决:强制 Feishu 走 XWayland:
# ~/.config/feishu-flags.conf
--ozone-platform=x11然后在 noctalia 的固定项里用一致的 app_id:
// ~/.config/noctalia/settings.json
"pinnedApps": [
"...",
"Feishu"
]7.2 飞书屏幕共享(niri)
GNOME portal 在 niri 下无法正确获取窗口列表,导致屏幕共享失败。
最终方案:
- 默认 portal 走 gnome/gtk
- 屏幕共享走 hyprland portal
# ~/.config/xdg-desktop-portal/portals.conf
[preferred]
default=gnome;gtk;
org.freedesktop.impl.portal.Access=gtk;
org.freedesktop.impl.portal.Notification=gtk;
org.freedesktop.impl.portal.Secret=gnome-keyring;
org.freedesktop.impl.portal.ScreenCast=hyprland;
org.freedesktop.impl.portal.RemoteDesktop=hyprland;niri 启动时拉起 hyprland portal:
# ~/.config/niri/config.kdl
spawn-sh-at-startup "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=niri & /usr/lib/xdg-desktop-portal-hyprland"结果:
- 屏幕共享可用
- 窗口级共享在 niri 下仍可能不可用(portal 限制)
8. 小结
这套配置的目标是:
- 保留 niri 的轻量与灵活
- 让日常工具稳定可用(飞书/浏览器/输入法)
- 关键操作有明确快捷键
如果将来要迁移或复现,只需要同步这些配置文件即可。


