在长达半年的Hyprland使用中,我逐渐发现我的需求Hyprland无法完全满足,碰巧前段时间看到了Niri的相关推荐视频,索性抱着尝试的态度转去Niri看看。
这一篇博客主要记录我第一次安装折腾Niri的过程。

安装

由于我使用的是ArchLinux,所以安装只需要通过包管理pacman -S niri即可,安装过程中,pacman有打印推荐的相关软件包

1
2
3
4
5
6
7
8
9
10
11
12
Optional dependencies for niri
alacritty: a suggested GPU-accelerated terminal emulator
bash: for niri-session script [installed]
fuzzel: a suggested Wayland application launcher
mako: a suggested Wayland notification daemon [installed]
org.freedesktop.secrets: for apps to rely on secrets portal [installed]
swaybg: a suggested Wayland wallpaper tool [installed]
swaylock: a suggested Wayland screen locker
waybar: a suggested Wayland customizable desktop bar [installed]
xwayland-satellite: for running X11 apps in XWayland
xdg-desktop-portal-gtk: a suggested XDG desktop portal
xdg-desktop-portal-gnome: a XDG desktop portal required for screencasting

由于我是初体验+只是想修改好基础设置,所以暂时没有理会这个。

快捷键

使用平铺窗口管理器最重要的就是快捷键的绑定,由于我用过几年的dwm,然后再转到Hyprland,最后到Niri,所以我对于这些快捷键有一套自己的习惯。
Niri的配置文件位于~/.config/niri/config.kdl,这里就按照我的习惯和顺序对快捷键进行修改和注释。

基础操作

1
2
3
4
Super+Return        hotkey-overlay-title="Open a Terminal: kitty" { spawn "kitty"; }
// Super + Enter 打开终端(Kitty)
Super+Q repeat=false { close-window; }
// Super + Q 关闭当前窗口(不重复)

有这两个快捷键基本上就可以直接使用了(bushi
其中我使用的终端是kitty,使用Super + Enter打开
而关闭窗口就是默认的Super + Q,这里的Q其实是小写的,应为Niri快捷键绑定中,如需需要使用大写字母,需要单独把Shift加入进去,比如Super+Shift+Q就是Super + 大写Q
这里的不重复需要标注出来,使用repeat=false,参考Niri官方文档:

Since: 0.1.8 Binds will repeat by default (i.e. holding down a bind will make it trigger repeatedly). You can disable that for specific binds with repeat=false

所以这里需要单独设置repeat=false
紧接着是工作区的设置

工作区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Super+1             { focus-workspace 1; }
Super+2 { focus-workspace 2; }
Super+3 { focus-workspace 3; }
Super+4 { focus-workspace 4; }
Super+5 { focus-workspace 5; }
Super+6 { focus-workspace 6; }
Super+7 { focus-workspace 7; }
Super+8 { focus-workspace 8; }
Super+9 { focus-workspace 9; }
// Super + {1, ..., 9} 移动到{1, .., 9}工作区
Super+Ctrl+1 { move-column-to-workspace 1; }
Super+Ctrl+2 { move-column-to-workspace 2; }
Super+Ctrl+3 { move-column-to-workspace 3; }
Super+Ctrl+4 { move-column-to-workspace 4; }
Super+Ctrl+5 { move-column-to-workspace 5; }
Super+Ctrl+6 { move-column-to-workspace 6; }
Super+Ctrl+7 { move-column-to-workspace 7; }
Super+Ctrl+8 { move-column-to-workspace 8; }
Super+Ctrl+9 { move-column-to-workspace 9; }
// Super + Ctrl + {1, ..., 9} 移动列到{1, .., 9}工作区
Super+Shift+1 { move-window-to-workspace 1; }
Super+Shift+2 { move-window-to-workspace 2; }
Super+Shift+3 { move-window-to-workspace 3; }
Super+Shift+4 { move-window-to-workspace 4; }
Super+Shift+5 { move-window-to-workspace 5; }
Super+Shift+6 { move-window-to-workspace 6; }
Super+Shift+7 { move-window-to-workspace 7; }
Super+Shift+8 { move-window-to-workspace 8; }
Super+Shift+9 { move-window-to-workspace 9; }
// Super + Shift + {1, ..., 9} 移动单个窗口到{1, ..., 9}工作区

很常见的想法,通过Super + {1, ..., 9}移动到指定工作区
通过Super + Shift + {1, ..., 9}将窗口移动到指定工作区
在我以前使用dwmHyprland的时候也采取相同的操作逻辑
通过Super + Ctrl + {1, ..., 9}将列移动到指定工作区
这里的列指的是在同一个工作区中,竖直平铺的窗口,这里可能需要简要画一个图

1
2
3
4
5
6
7
8
+-------------+----------+
| A | C |
| | |
+-------------+ |
| B | |
| | |
+-------------+----------+

这里的A, B, C都是单独的窗口,都处于同一个工作区,这个时候
A, B是一个列,C也是一个列

1
2
Super+O             repeat=false { toggle-overview; }
// Super + 0 打开工作区概览

Super + 0 打开工作区概览,我觉得这个功能是一个很实用的东西
同时,可以移动鼠标到左上角,也可以打开这个预览,四指滑动触摸板也是
以前使用dwm的时候似乎可以通过补丁达到类似的效果,在Hyprland中我没有研究这个
但是对于多窗口之类的操作,有这样的概率可以大大提升效率

1
2
Super+Tab           { focus-workspace-previous; }
// Super + Tab 快速在两个工作区间切换

Super + Tab 快速在这个和前一个工作区间切换,类似于在Windows中的操作

窗口操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Super+H             { focus-column-left; }
Super+J { focus-window-down; }
Super+K { focus-window-up; }
Super+L { focus-column-right; }
// Super + {H, J, K, L} 在窗口间移动聚焦点
Super+Left { focus-column-left; }
Super+Down { focus-window-down; }
Super+Up { focus-window-up; }
Super+Right { focus-column-right; }
// Super + {Left, Down, Up, Right} 在窗口间移动聚焦点
Super+Shift+H { move-column-left; }
Super+Shift+J { move-window-down; }
Super+Shift+K { move-window-up; }
Super+Shift+L { move-column-right; }
// Super + Shift + {H, J, K, L} 移动窗口
Super+Shift+Left { move-column-left; }
Super+Shift+Down { move-window-down; }
Super+Shift+Up { move-window-up; }
Super+Shift+Right { move-column-right; }
// Super + Shift + {Left, Down, Up, Right} 移动窗口

很有Vim味道的设计
Super + {H, J, K, L}用于移动焦点
Super + Shift + {H, J, K, L}用于移动窗口
但是这里我更倾向于对于上下操作的时候可以附带上工作区的调整
也就是如果我要上下移动超出这个工作区的时候,他可以跳转到指定方向的下一个工作区
所以这一段配置应该修改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Super+H             { focus-column-left; }
Super+J { focus-window-or-workspace-down; }
Super+K { focus-window-or-workspace-up; }
Super+L { focus-column-right; }
// Super + {H, J, K, L} 在窗口间移动聚焦点
Super+Left { focus-column-left; }
Super+Down { focus-window-or-workspace-down; }
Super+Up { focus-window-or-workspace-up; }
Super+Right { focus-column-right; }
// Super + {Left, Down, Up, Right} 在窗口间移动聚焦点
Super+Shift+H { move-column-left; }
Super+Shift+J { move-window-down-or-to-workspace-down; }
Super+Shift+K { move-window-up-or-to-workspace-up; }
Super+Shift+L { move-column-right; }
// Super + Shift + {H, J, K, L} 移动窗口
Super+Shift+Left { move-column-left; }
Super+Shift+Down { move-window-down-or-to-workspace-down; }
Super+Shift+Up { move-window-up-or-to-workspace-up; }
Super+Shift+Right { move-column-right; }
// Super + Shift + {Left, Down, Up, Right} 移动窗口

然后是快速切换到第一列和最后一列的设置,我的键盘配列比较小,其实并无单独的HomeEnd

1
2
3
4
5
6
Super+Home          { focus-column-first; }
Super+End { focus-column-last; }
// Super + {Home, End} 聚焦到{第一个, 最后一个}列
Super+Shift+Home { move-column-to-first; }
Super+Shift+End { move-column-to-last; }
// Super + Shift + {Home, End} 移动当前列到{第一个, 最后一个}列

但是设置自一下也无妨就是了

多显示器

我将Super + Alt作为多显示器调节的快捷键前缀,绝大部分操作逻辑和工作区以及窗口一样
{H, J, K, L}{Left, Down, Up, Right}

1
2
3
4
5
6
7
8
9
10
Super+Alt+H         { focus-monitor-left; }
Super+Alt+J { focus-monitor-down; }
Super+Alt+K { focus-monitor-up; }
Super+Alt+L { focus-monitor-right; }
// Super + Alt + {H, J, K, L} 在显示器间移动焦点
Super+Alt+Left { focus-monitor-left; }
Super+Alt+Down { focus-monitor-down; }
Super+Alt+Up { focus-monitor-up; }
Super+Alt+Right { focus-monitor-right; }
// Super + Alt + {Left, Down, Up, Right} 在显示器间移动焦点

Super + Alt + {H, J, K, L} 在显示器间移动焦点

1
2
3
4
5
6
7
8
9
10
Super+Alt+Shift+H     { move-window-to-monitor-left; }
Super+Alt+Shift+J { move-window-to-monitor-down; }
Super+Alt+Shift+K { move-window-to-monitor-up; }
Super+Alt+Shift+L { move-window-to-monitor-right; }
// Super + Alt + Shift + {H, J, K, L} 移动单个窗口去指定显示器
Super+Alt+Shift+Left { move-window-to-monitor-left; }
Super+Alt+Shift+Down { move-window-to-monitor-down; }
Super+Alt+Shift+Up { move-window-to-monitor-up; }
Super+Alt+Shift+Right { move-window-to-monitor-right; }
// Super + Alt + Shift + {Left, Down, Up, Right} 移动单个窗口去指定显示器

Super + Alt + Shift + {H, J, K, L} 移动单个窗口去指定显示器

1
2
3
4
5
6
7
8
9
10
Super+Alt+Ctrl+H     { move-column-to-monitor-left; }
Super+Alt+Ctrl+J { move-column-to-monitor-down; }
Super+Alt+Ctrl+K { move-column-to-monitor-up; }
Super+Alt+Ctrl+L { move-column-to-monitor-right; }
// Super + Alt + Ctrl + {H, J, K, L} 移动列去指定显示器
Super+Alt+Ctrl+Left { move-column-to-monitor-left; }
Super+Alt+Ctrl+Down { move-column-to-monitor-down; }
Super+Alt+Ctrl+Up { move-column-to-monitor-up; }
Super+Alt+Ctrl+Right { move-column-to-monitor-right; }
// Super + Alt + Ctrl + {Left, Down, Up, Right} 移动列去指定显示器

Super + Alt + Ctrl + {H, J, K, L} 移动列去指定显示器

1
2
3
4
5
6
7
8
9
10
Super+Alt+Shift+Ctrl+H     { move-workspace-to-monitor-left; }
Super+Alt+Shift+Ctrl+J { move-workspace-to-monitor-down; }
Super+Alt+Shift+Ctrl+K { move-workspace-to-monitor-up; }
Super+Alt+Shift+Ctrl+L { move-workspace-to-monitor-right; }
// Super + Alt + Shift + Ctrl + {H, J, K, L} 移动工作区去指定显示器
Super+Alt+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
Super+Alt+Shift+Ctrl+Down { move-workspace-to-monitor-down; }
Super+Alt+Shift+Ctrl+Up { move-workspace-to-monitor-up; }
Super+Alt+Shift+Ctrl+Right { move-workspace-to-monitor-right; }
// Super + Alt + Shift + Ctrl + {Left, Down, Up, Right} 移动工作区去指定显示器

Super + Alt + Shift + Ctrl + {H, J, K, L} 移动工作区去指定显示器
这里我给工作区的移动设置的如此复杂是因为我自己的操作习惯很少会直接移动一整个工作区

鼠标滚轮

1
2
3
Super+WheelScrollDown      cooldown-ms=150 { focus-workspace-down; }
Super+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
// Super + WheelScroll{Down, Up} 切换工作区

Super + WheelScroll{Down, Up} 切换工作区

1
2
3
Super+Shift+WheelScrollDown cooldown-ms=150 { move-window-to-workspace-down; }
Super+Shift+WheelScrollUp cooldown-ms=150 { move-window-to-workspace-up; }
// Super + Shift + WheelScroll{Down, Up} 移动单个窗口去工作区

Super + Shift + WheelScroll{Down, Up} 移动单个窗口去工作区

1
2
3
Super+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Super+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
// Super + Ctrl + WheelScroll{Down, Up} 移动列去工作区

Super + Ctrl + WheelScroll{Down, Up} 移动列去工作区

窗口布局

1
2
3
4
5
6
Super+BracketLeft     { consume-or-expel-window-left; }
Super+BracketRight { consume-or-expel-window-right; }
// Super + {[, ]} 调整窗口布局
Super+Comma { consume-window-into-column; }
Super+Period { expel-window-from-column; }
// Super + {,, .} 调整窗口布局

Super + {[, ]} 以及 Super + {,, .} 调整窗口布局,这个不太好描述
建议直接上手试试,就能理解含义和区别了

1
2
3
4
Super+C               { center-column; }
// Super + C 居中
Super+Ctrl+C { center-visible-columns; }
// Super + Ctrl + C 居中全部可见列

Super + C 居中显示当前聚焦的列

1
2
3
4
5
6
Super+V               { switch-focus-between-floating-and-tiling; }
// Super + V 在浮动和堆叠模式中切换焦点
Super+Shift+V { toggle-window-floating; }
// Super + Shift + V 浮动模式
Super+Ctrl+V { toggle-column-tabbed-display; }
// Super + Ctrl + V 将列变成堆叠模式

Super + V 在浮动和堆叠模式中切换焦点
Super + Shift + V 浮动模式
Super + Ctrl + V 将列变成堆叠模式

1
2
3
4
5
6
Super+R               { switch-preset-column-width; }
// Super + R 调整列大小
Super+Ctrl+R { switch-preset-window-height; }
// Super + Ctrl + R 调整窗口高度
Super+Shift+R { reset-window-height; }
// Super + Shift + R 重置窗口大小

Super + R 调整列大小
Super + Ctrl + R 调整窗口高度
Super + Shift + R 重置窗口大小

1
2
3
4
Super+F               { maximize-column; }
// Super + F 最大化窗口
Super+Shift+F { fullscreen-window; }
// Super + Shift + F 全屏

Super + F 最大化窗口,并非全屏,只是占满除了状态栏的屏幕
Super + Shift + F 全屏,这个是真正意义上的全屏

1
2
3
4
5
6
Super+Minus           { set-column-width "-10%"; }
Super+Equal { set-column-width "+10%"; }
// Super + {-, =} 调整列大小
Super+Shift+Minus { set-window-height "-10%"; }
Super+Shift+Equal { set-window-height "+10%"; }
// Super + Shift + {-, =} 调整窗口高度

Super + {-, =} 调整列大小
Super + Shift + {-, =} 调整窗口高度

其他设置

做完了最重要的快捷键的设置,后续的只剩下缝缝补补,比如增添状态栏,启动器,美化之类的

键盘/触摸板/鼠标

键盘我暂时没有什么映射的需求,因为在使用Hyprland期间就已经通过其他软件完成映射了
触摸板根据官方文档,我注意到以下内容:

dwt: disable-when-typing.

这个功能挺有用的,可以避免笔记本使用的时候误触
剩下的两个全局参数挺有用的
warp-mouse-to-focus鼠标聚焦到新的窗口
focus-follows-mouse聚焦鼠标悬停的窗口

显示器

目前我只有一个显示屏,所以多屏的部分暂时用不上,也没有配置

布局/美化

默认的动画效果我其实挺满意的,唯一可能要做修改的就是边框样式一类的
我感觉默认的窗口间间隙太大,缩小一些
perfer-no-csd我觉得是必要的,不然还保留窗口标题框会很丑
添加圆角

1
2
3
4
window-rule {
geometry-corner-radius 12
clip-to-geometry true
}

完成

Niri的基础配置就到这做完了,但是相关的软件,比如壁纸,自启动,启动器一类的还没有配置,先附上我的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
input {
keyboard {
xkb {
}
numlock
}

touchpad {
tap
dwt
natural-scroll
}

warp-mouse-to-focus
// 鼠标聚焦到新的窗口
focus-follows-mouse
// 聚焦鼠标悬停的窗口
}

layout {
gaps 5
center-focused-column "never"
preset-column-widths {
proportion 0.33333
proportion 0.5
proportion 0.66667
}
default-column-width { proportion 0.5; }
focus-ring {
off
}
border {
width 2
active-color "#7fc8ff"
inactive-color "#505050"
urgent-color "#9b0000"
}
shadow {
on
softness 30
spread 5
offset x=0 y=5
color "#0007"
}
struts {
}
}

spawn-at-startup "waybar"

hotkey-overlay {
}

prefer-no-csd
// 取消窗口标题栏
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"

animations {
}

window-rule {
match app-id=r#"^org\.wezfurlong\.wezterm$"#
default-column-width {}
}

window-rule {
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
open-floating true
}

window-rule {
geometry-corner-radius 12
clip-to-geometry true
}
// 窗口边框圆角

binds {
// === 基础设置 ===
Super+Return hotkey-overlay-title="Open a Terminal: kitty" { spawn "kitty"; }
// Super + Enter 打开终端(Kitty)
Super+Q repeat=false { close-window; }
// Super + Q 关闭当前窗口(不重复)

// === 工作区 ===
Super+1 { focus-workspace 1; }
Super+2 { focus-workspace 2; }
Super+3 { focus-workspace 3; }
Super+4 { focus-workspace 4; }
Super+5 { focus-workspace 5; }
Super+6 { focus-workspace 6; }
Super+7 { focus-workspace 7; }
Super+8 { focus-workspace 8; }
Super+9 { focus-workspace 9; }
// Super + {1, ..., 9} 移动到{1, .., 9}工作区
Super+Ctrl+1 { move-column-to-workspace 1; }
Super+Ctrl+2 { move-column-to-workspace 2; }
Super+Ctrl+3 { move-column-to-workspace 3; }
Super+Ctrl+4 { move-column-to-workspace 4; }
Super+Ctrl+5 { move-column-to-workspace 5; }
Super+Ctrl+6 { move-column-to-workspace 6; }
Super+Ctrl+7 { move-column-to-workspace 7; }
Super+Ctrl+8 { move-column-to-workspace 8; }
Super+Ctrl+9 { move-column-to-workspace 9; }
// Super + Ctrl + {1, ..., 9} 移动列到{1, .., 9}工作区
Super+Shift+1 { move-window-to-workspace 1; }
Super+Shift+2 { move-window-to-workspace 2; }
Super+Shift+3 { move-window-to-workspace 3; }
Super+Shift+4 { move-window-to-workspace 4; }
Super+Shift+5 { move-window-to-workspace 5; }
Super+Shift+6 { move-window-to-workspace 6; }
Super+Shift+7 { move-window-to-workspace 7; }
Super+Shift+8 { move-window-to-workspace 8; }
Super+Shift+9 { move-window-to-workspace 9; }
// Super + Shift + {1, ..., 9} 移动单个窗口到{1, ..., 9}工作区
Super+O repeat=false { toggle-overview; }
// Super + 0 打开工作区概览
Super+Tab { focus-workspace-previous; }
// Super + Tab 快速在两个工作区间切换

// === 窗口操作 ===
Super+H { focus-column-left; }
Super+J { focus-window-or-workspace-down; }
Super+K { focus-window-or-workspace-up; }
Super+L { focus-column-right; }
// Super + {H, J, K, L} 在窗口间移动聚焦点
Super+Left { focus-column-left; }
Super+Down { focus-window-or-workspace-down; }
Super+Up { focus-window-or-workspace-up; }
Super+Right { focus-column-right; }
// Super + {Left, Down, Up, Right} 在窗口间移动聚焦点
Super+Shift+H { move-column-left; }
Super+Shift+J { move-window-down-or-to-workspace-down; }
Super+Shift+K { move-window-up-or-to-workspace-up; }
Super+Shift+L { move-column-right; }
// Super + Shift + {H, J, K, L} 移动窗口
Super+Shift+Left { move-column-left; }
Super+Shift+Down { move-window-down-or-to-workspace-down; }
Super+Shift+Up { move-window-up-or-to-workspace-up; }
Super+Shift+Right { move-column-right; }
// Super + Shift + {Left, Down, Up, Right} 移动窗口
Super+Home { focus-column-first; }
Super+End { focus-column-last; }
// Super + {Home, End} 聚焦到{第一个, 最后一个}列
Super+Shift+Home { move-column-to-first; }
Super+Shift+End { move-column-to-last; }
// Super + Shift + {Home, End} 移动当前列到{第一个, 最后一个}列

// === 多显示器 ===
Super+Alt+H { focus-monitor-left; }
Super+Alt+J { focus-monitor-down; }
Super+Alt+K { focus-monitor-up; }
Super+Alt+L { focus-monitor-right; }
// Super + Alt + {H, J, K, L} 在显示器间移动焦点
Super+Alt+Left { focus-monitor-left; }
Super+Alt+Down { focus-monitor-down; }
Super+Alt+Up { focus-monitor-up; }
Super+Alt+Right { focus-monitor-right; }
// Super + Alt + {Left, Down, Up, Right} 在显示器间移动焦点
Super+Alt+Shift+H { move-window-to-monitor-left; }
Super+Alt+Shift+J { move-window-to-monitor-down; }
Super+Alt+Shift+K { move-window-to-monitor-up; }
Super+Alt+Shift+L { move-window-to-monitor-right; }
// Super + Alt + Shift + {H, J, K, L} 移动单个窗口去指定显示器
Super+Alt+Shift+Left { move-window-to-monitor-left; }
Super+Alt+Shift+Down { move-window-to-monitor-down; }
Super+Alt+Shift+Up { move-window-to-monitor-up; }
Super+Alt+Shift+Right { move-window-to-monitor-right; }
// Super + Alt + Shift + {Left, Down, Up, Right} 移动单个窗口去指定显示器
Super+Alt+Ctrl+H { move-column-to-monitor-left; }
Super+Alt+Ctrl+J { move-column-to-monitor-down; }
Super+Alt+Ctrl+K { move-column-to-monitor-up; }
Super+Alt+Ctrl+L { move-column-to-monitor-right; }
// Super + Alt + Ctrl + {H, J, K, L} 移动列去指定显示器
Super+Alt+Ctrl+Left { move-column-to-monitor-left; }
Super+Alt+Ctrl+Down { move-column-to-monitor-down; }
Super+Alt+Ctrl+Up { move-column-to-monitor-up; }
Super+Alt+Ctrl+Right { move-column-to-monitor-right; }
// Super + Alt + Ctrl + {Left, Down, Up, Right} 移动列去指定显示器
Super+Alt+Shift+Ctrl+H { move-workspace-to-monitor-left; }
Super+Alt+Shift+Ctrl+J { move-workspace-to-monitor-down; }
Super+Alt+Shift+Ctrl+K { move-workspace-to-monitor-up; }
Super+Alt+Shift+Ctrl+L { move-workspace-to-monitor-right; }
// Super + Alt + Shift + Ctrl + {H, J, K, L} 移动工作区去指定显示器
Super+Alt+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
Super+Alt+Shift+Ctrl+Down { move-workspace-to-monitor-down; }
Super+Alt+Shift+Ctrl+Up { move-workspace-to-monitor-up; }
Super+Alt+Shift+Ctrl+Right { move-workspace-to-monitor-right; }
// Super + Alt + Shift + Ctrl + {Left, Down, Up, Right} 移动工作区去指定显示器

// === 鼠标滚轮 ===
Super+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Super+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
// Super + WheelScroll{Down, Up} 切换工作区
Super+Shift+WheelScrollDown cooldown-ms=150 { move-window-to-workspace-down; }
Super+Shift+WheelScrollUp cooldown-ms=150 { move-window-to-workspace-up; }
// Super + Shift + WheelScroll{Down, Up} 移动单个窗口去工作区
Super+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Super+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
// Super + Ctrl + WheelScroll{Down, Up} 移动列去工作区


// === 窗口布局 ===
Super+BracketLeft { consume-or-expel-window-left; }
Super+BracketRight { consume-or-expel-window-right; }
// Super + {[, ]} 调整窗口布局
Super+Comma { consume-window-into-column; }
Super+Period { expel-window-from-column; }
// Super + {,, .} 调整窗口布局
Super+C { center-column; }
// Super + C 居中
Super+Ctrl+C { center-visible-columns; }
// Super + Ctrl + C 居中全部可见列
Super+V { switch-focus-between-floating-and-tiling; }
// Super + V 在浮动和堆叠模式中切换焦点
Super+Shift+V { toggle-window-floating; }
// Super + Shift + V 浮动模式
Super+Ctrl+V { toggle-column-tabbed-display; }
// Super + Ctrl + V 将列变成堆叠模式
Super+R { switch-preset-column-width; }
// Super + R 调整列大小
Super+Ctrl+R { switch-preset-window-height; }
// Super + Ctrl + R 调整窗口高度
Super+Shift+R { reset-window-height; }
// Super + Shift + R 重置窗口大小
Super+F { maximize-column; }
// Super + F 最大化窗口
Super+Shift+F { fullscreen-window; }
// Super + Shift + F 全屏
Super+Minus { set-column-width "-10%"; }
Super+Equal { set-column-width "+10%"; }
// Super + {-, =} 调整列大小
Super+Shift+Minus { set-window-height "-10%"; }
Super+Shift+Equal { set-window-height "+10%"; }
// Super + Shift + {-, =} 调整窗口高度
}

关于其他东西的配置,可能要等到下次有时间了。