-
Notifications
You must be signed in to change notification settings - Fork 0
niri guide usage
Niri 是可滚动平铺的 Wayland 合成器。窗口沿水平方向组成无限条带,每一列可以放一个或多个窗口;新窗口不会强制缩小已有窗口,而是扩展到右侧,通过水平移动浏览
本文记录当前 dotfiles 的真实使用方式。Mod 表示 Super,也就是 Windows 键
| 快捷键 | 功能 |
|---|---|
Mod-t |
打开 Kitty |
Mod-d |
打开 fuzzel 应用启动器 |
Mod-e |
打开 Dolphin |
Mod-Tab |
打开或关闭 Overview |
Alt-Tab / Alt-Shift-Tab
|
切换当前工作区的最近窗口 |
Mod-q |
关闭窗口 |
Mod-Alt-l |
锁屏 |
Alt-v |
打开剪贴板历史 |
登录时配置会自动启动 Ghostty 和 Firefox;Mod-t 启动的是 Kitty,两者不是同一个默认终端概念
| 快捷键 | 功能 |
|---|---|
Mod-h/j/k/l |
向左、下、上、右移动焦点 |
Mod-Ctrl-h/j/k/l |
向对应方向移动列或窗口 |
Mod-Home / Mod-End
|
聚焦第一列或最后一列 |
Mod-Ctrl-Home / Mod-Ctrl-End
|
把当前列移动到最前或最后 |
Niri 的水平单位是“列”,垂直单位是列中的“窗口”。因此 h/l 操作列,j/k 操作同列窗口或相邻工作区
| 快捷键 | 功能 |
|---|---|
Mod-Left/Right |
列宽减少或增加 10% |
Mod-Up/Down |
窗高增加或减少 10% |
Mod-r / Mod-Shift-r
|
正向或反向切换列宽预设 |
Mod-Ctrl-Shift-r |
切换窗口高度预设 |
Mod-Ctrl-r |
重置窗口高度 |
Mod-f |
最大化当前列 |
Mod-Shift-f |
当前窗口全屏 |
Mod-m |
窗口扩展到屏幕边缘 |
Mod-Ctrl-f |
当前列扩展到可用宽度 |
Mod-c |
居中当前列 |
Mod-Ctrl-c |
居中所有可见列 |
Mod-v |
切换窗口浮动状态 |
Mod-Shift-v |
在浮动层和平铺层之间切换焦点 |
当前默认列宽为屏幕的 1/2,预设为 1/3、1/2、2/3。窗口间距为 0,使用 2px 边框、圆角和阴影
| 快捷键 | 功能 |
|---|---|
Mod-[ |
向左侧列吸入或移出窗口,处于最左列时自动反向 |
Mod-] |
向右侧操作;多窗口列时优先把窗口移出 |
这两个快捷键调用本地脚本并依赖 niri msg -j 与 jq。脚本当前写死 /home/dev/.config/niri,复制配置到其他用户名时需要修改路径
| 快捷键 | 功能 |
|---|---|
Mod-u/i |
切换到下一个或上一个工作区 |
Mod-Ctrl-u/i |
把当前列移动到下一个或上一个工作区 |
Mod-Shift-u/i |
向下或向上重排当前工作区 |
Mod-滚轮上下 |
切换工作区 |
Mod-Ctrl-滚轮上下 |
把当前列移动到相邻工作区 |
Mod-Shift-滚轮上下 |
水平切换列 |
Page Up/Page Down 也提供对应操作
| 快捷键 | 功能 |
|---|---|
Mod-Shift-h/j/k/l |
聚焦对应方向的显示器 |
Mod-Ctrl-Shift-h/j/k/l |
把当前列移动到对应显示器 |
单显示器无需写 output 配置。查看真实输出名称和参数:
niri msg outputs~/.config/niri/output.kdl 当前只有被禁用的示例,不能将其中的分辨率视为实际配置
| 快捷键 | 功能 |
|---|---|
F1 |
打开 mark-shot 截图与标注 |
Ctrl-Print |
截取整个屏幕 |
Alt-Print |
截取当前窗口 |
Waybar 的截图按钮会打开 Niri 内置区域截图。Niri 内置截图保存到 ~/Pictures/Screenshots/
mark-shot 的标注界面中可按 F3 贴图;OCR 需要额外安装 rapidocr 和 onnxruntime
键盘的音量、麦克风、播放、上一首、下一首和亮度键均已配置,并允许在锁屏状态下使用。音量与亮度优先通过 swayosd 显示 OSD,失败时回退到 wpctl 或 brightnessctl
- 网络左键:打开 fuzzel 网络菜单,可开关 Wi-Fi、扫描、连接已保存或新网络
- 网络右键:直接切换 Wi-Fi
- 电源左键:打开锁屏、退出、重启和关机菜单
- 截图按钮:打开区域截图
网络和电源菜单目前没有 Niri 键盘快捷键,它们是 Waybar 入口
登录后会启动主桌面和 Overview 两个 awww daemon。壁纸脚本默认从 ~/Pictures 中随机选择图片,每 600 秒切换一次,并调用 matugen 生成 Niri、Waybar、Mako、fcitx5 和 fuzzel 等组件的配色
colors.kdl 是生成文件,不应手工维护。Overview 背景由 ImageMagick 生成模糊、压暗缓存
- 登录后立即启动 hyprlock
- 空闲 15 分钟自动锁屏
- 空闲 17 分钟强制关闭显示器
- 已经锁屏时,再空闲 2 分钟关闭显示器
- 休眠前锁屏
- 解锁后重置 swayidle 计时器
注意“2 分钟关屏”只在已经锁屏时生效,并不是正常使用时 2 分钟就黑屏
Niri 只是合成器,不是完整桌面环境:
| 组件 | 职责 |
|---|---|
| Waybar | 状态栏、托盘和桌面菜单入口 |
| Mako | 通知守护进程 |
| fuzzel | 应用、网络和电源菜单 |
| awww | 壁纸与过渡动画 |
| hyprlock | 锁屏界面 |
| swayidle | 空闲、锁屏和关屏策略 |
| wl-clipboard + cliphist | Wayland 剪贴板与历史 |
| Quickshell | 剪贴板历史 UI |
| xwayland-satellite | X11 应用兼容 |
| swayosd | 音量和亮度 OSD |
配置入口为 ~/.config/niri/config.kdl,并拆分加载:
layout.kdl
blur.kdl
rules.kdl
animations.kdl
binds.kdl
output.kdl # 可选
colors.kdl # 可选、由 matugen 生成
nvidia.kdl # 可选、由检测脚本生成
保存配置后 Niri 会热重载。修改前后可检查语法:
niri validate常用 IPC:
niri msg windows
niri msg workspaces
niri msg outputs
niri msg action focus-column-left常见问题:
- 中文显示方块:用
fc-match -s 'sans-serif:lang=zh'检查 CJK fallback,再运行fc-cache -fv - 应用集体退出或无法启动但 Niri 仍存活:优先检查 systemd user session 与 D-Bus
- 输入法候选窗被平铺:确认 fcitx window rule 仍匹配
- 修改显示器参数无效:确认
output.kdl中目标节点没有被/-禁用 - consume 快捷键失效:检查脚本路径和
jq
完整 Arch 安装、Niri 生态原理、字体和故障记录保存在:
~/Documents/note/StudyNote/Linux/Arch/
~/Documents/note/StudyNote/Linux/Arch/Niri/