写的匆忙,稍后再完善


安装环境

这里假设你已经安装了 Arch,并且有至少一个 AUR Helper(如 paru,yay)。
这里笔者使用 yay,所以如果你不使用 yay 请自行替换命令,相信对于 Arch 用户应该不难。

安装前准备

请先更新系统再进行后续操作

1
yay -Syu

需下载如下软件包

1
2
sudo pacman -S niri xdg-desktop-portal-gtk xdg-desktop-portal-gnome alacritty swaybg swayidle hyprlock xwayland-satellite dolphin sddm brightnessctl wireplumber grim flameshot breeze wshowkeys-git fcitx5 fcitx5-qt fcitx5-chinese-addons blueman noto-fonts libnotify pipewire pipewire-pulse
yay -S noctalia-shell vicinae ttf-jetbrains-mono misans

Noctalia Shell 是一个使用 Material Design 的用户界面。它可以接管系统通知,声音和显示亮度调节,并且我们的状态栏是它提供的,不使用 waybar。

Vicinae 是启动应用用的,类似于 Hyprland 里单独按下 Super 键的功能

配置 systemd

如果你之前没有使用 sddm 作为登录管理器,请启用它,如果你什么都不知道,那你大概率已经启用了

1
sudo systemctl enable sddm.service

然后写一个 swayidle 的 service

1
vim ~/.config/systemd/user/swayidle.service 

在里面粘贴

1
2
3
4
5
6
7
8
[Unit]
PartOf=graphical-session.target
After=graphical-session.target
Requisite=graphical-session.target

[Service]
ExecStart=/usr/bin/swayidle -w timeout 601 'niri msg action power-off-monitors' timeout 600 'hyprlock' before-sleep 'hyprlock'
Restart=on-failure

意思是无操作 600 秒则 hyprlock 锁屏,601 秒关闭显示操作器,更多操作见 swaylock 官方文档。

接下来编辑 niri 的 wants,类似于依赖项

1
systemctl --user add-wants niri.service swayidle.service

这可以让 swayidle 自动接管锁屏、睡眠等操作

注意:不要按照很多教程启用 waybar 和 mako,我们不用它!

接下来创建 niri 配置文件

1
vim ~/.config/niri/config.kdl

然后写入如下内容,注意不要全抄,看注释修改要改的地方

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
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
// 键盘鼠标触摸板等输入设备相关配置
input {
keyboard {
xkb {
layout "us"
}

// 在启动上启用numlock,省略此设置会禁用它。
numlock
}

touchpad {
tap
natural-scroll
scroll-method "two-finger"
}

mouse {
// 设置鼠标移动速度,-1到1之间由慢到快
accel-speed 1
}

// niri默认接管电源按钮的功能是sleep,这里禁用以使用关机功能
disable-power-key-handling
// 切换mod键:正常使用alt,嵌套窗口内使用Super。
mod-key "Super"
mod-key-nested "Alt"
}

// 可以在niri实例中运行`niri msg outputs`找到显示器名称。
output "HDMI" {
// 取消注释以禁用此显示器。
off

// 默认聚焦在这个显示器
focus-at-startup

// 格式为"<width>x<height>" 或者 "<width>x<height>@<refresh rate>".
// 如果省略了刷新率,niri将为分辨率选择最高的刷新率。
mode "3840x2160@60.000"

// 您可以使用整数或分数量表,例如,比例为150%。
scale 2

// transform允许逆时针旋转显示,有效值为:
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
transform "normal"

// 输出在所有显示器坐标空间中的位置。未明确配置位置的显示器将放置在所有已放置的显示器右侧。
// position x=1280 y=0
}

// 如果 eDP-2 没有连接,将会默认聚焦在这个显示器
output "eDP-2" {
// off
focus-at-startup
mode "2560x1600@300.000"
transform "normal"
position x=0 y=0
}

// 可以使用wev来查询特定的按键对应的XKB名称
binds {
Alt+Tab { spawn "niri-switch"; }
// Mod-Shift-/显示重要的热键列表(通常与 Mod-? 相同)。
Mod+Shift+Slash { show-hotkey-overlay; }
Mod+D hotkey-overlay-title="Open the File Manager" { spawn "/usr/bin/dolphin"; }
// Mod+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn "/usr/bin/swaylock" "-f" "-i" "$HOME/.dotfiles/sway/.config/sway/lock.png"; }
Mod+L hotkey-overlay-title="Lock the Screen: hyprlock" { spawn "/usr/bin/hyprlock"; }
Mod+Return hotkey-overlay-title="Open a Terminal" { spawn "/usr/bin/kitty"; }
// Mod+A hotkey-overlay-title="Run an Application" { spawn "/usr/bin/fuzzel"; }
Mod+A hotkey-overlay-title="Run an Application" { spawn "/usr/bin/vicinae" "toggle"; }
Mod+X hotkey-overlay-title="Open a browser: zen" { spawn "/usr/bin/google-chrome-stable"; }
// Mod+D hotkey-overlay-title="同步切换obs和mpv状态" { spawn "/usr/bin/touch" "/tmp/obs_mpv_toggle_pause"; }
Mod+K hotkey-overlay-title="打开screenkey" { spawn "/usr/bin/wshowkeys" "-a" "right" "-a" "bottom" "-F" "ComicShannsMono Nerd Font 30"; }
Mod+Shift+K hotkey-overlay-title="关闭screenkey" { spawn "/usr/bin/killall" "wshowkeys"; }
// Mod+Shift+C hotkey-overlay-title="重启waybar" { spawn-sh "pkill waybar && waybar"; }

// 音量控制 allow-when-locked=true 在锁屏时的按键也会生效。这里的wpctl是wireplumber包中附带的
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }

// 亮度控制。brightnessctl 有独立的包
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "set" "+10%"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "set" "10%-"; }

// 开关overview
Mod+Tab repeat=false { toggle-overview; }
// 关闭窗口
Mod+Q repeat=false { close-window; }

// 窗口焦点切换,位置移动
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+N { focus-column-left; }
Mod+i { focus-column-right; }
Mod+Alt+Left { consume-or-expel-window-left; }
Mod+Alt+Right {consume-or-expel-window-right; }
// Mod+N { spawn-sh "niri msg action focus-column-left && niri msg action center-column"; }
// Mod+i { spawn-sh "niri msg action focus-column-right && niri msg action center-column"; }
Mod+Shift+Left { move-column-left; }
Mod+Shift+Down { move-window-down; }
Mod+Shift+Up { move-window-up; }
Mod+Shift+Right { move-column-right; }
Mod+Shift+N { move-column-left; }
Mod+Shift+I { move-column-right; }

Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Shift+Home { move-column-to-first; }
Mod+Shift+End { move-column-to-last; }

// workspace焦点切换,窗口在workspace之间移动
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
// 上下移动整个workspace
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }

// 上下方向共用的窗口、工作空间的焦点切换和位置移动
Mod+E { focus-window-or-workspace-down; }
Mod+U { focus-window-or-workspace-up; }
Mod+Shift+E { move-window-down-or-to-workspace-down; }
Mod+Shift+U { move-window-up-or-to-workspace-up; }

// 显示器焦点切换
Mod+Ctrl+Left { focus-monitor-left; }
Mod+Ctrl+Down { focus-monitor-down; }
Mod+Ctrl+Up { focus-monitor-up; }
Mod+Ctrl+Right { focus-monitor-right; }
Mod+Ctrl+N { focus-monitor-left; }
Mod+Ctrl+E { focus-monitor-down; }
Mod+Ctrl+U { focus-monitor-up; }
Mod+Ctrl+I { focus-monitor-right; }

// 跨显示器移动窗口
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+N { move-column-to-monitor-left; }
Mod+Shift+Ctrl+E { move-column-to-monitor-down; }
Mod+Shift+Ctrl+U { move-column-to-monitor-up; }
Mod+Shift+Ctrl+I { move-column-to-monitor-right; }

// 鼠标相关快捷键
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }

Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }

Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }

Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }

Mod+1 { focus-workspace 1; }
Mod+2 { focus-workspace 2; }
Mod+3 { focus-workspace 3; }
Mod+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
Mod+0 { focus-workspace 10; }
Mod+Shift+1 { move-column-to-workspace 1; }
Mod+Shift+2 { move-column-to-workspace 2; }
Mod+Shift+3 { move-column-to-workspace 3; }
Mod+Shift+4 { move-column-to-workspace 4; }
Mod+Shift+5 { move-column-to-workspace 5; }
Mod+Shift+6 { move-column-to-workspace 6; }
Mod+Shift+7 { move-column-to-workspace 7; }
Mod+Shift+8 { move-column-to-workspace 8; }
Mod+Shift+9 { move-column-to-workspace 9; }
Mod+Shift+0 { move-column-to-workspace 10; }

// 最大化和全屏
Mod+W { toggle-windowed-fullscreen; }
Mod+F { expand-column-to-available-width; }
Mod+Shift+F { fullscreen-window; }

// 未最大化的窗口居中
Mod+C { center-column; }
Mod+Ctrl+C { center-visible-columns; }

// 在layout中预设的宽度和高度之间切换
Mod+R { switch-preset-column-width; }
Mod+Shift+R { switch-preset-window-height; }
// 改变宽度单位可以有pixels、百分比
Mod+Minus { set-column-width "-10%"; }
Mod+Equal { set-column-width "+10%"; }

// 改变高度
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }

// 切换悬浮窗,改变平铺和悬浮窗焦点
Mod+Shift+Space { toggle-window-floating; }
Mod+Space { switch-focus-between-floating-and-tiling; }

// 截图
Alt+J { spawn-sh "grim -g \"$(slurp)\" - | satty --filename - --output-filename ~/$(date '+%Y%m%d-%H:%M:%S').png"; }
Alt+Shift+J { spawn "flameshot" "gui"; }
Print { screenshot show-pointer=false; }
Ctrl+Print { screenshot-screen write-to-disk=true; }
Alt+Print { screenshot-window write-to-disk=true; }

// 针对虚拟机软件可能需要键盘控制权。allow-inhibiting=false 忽略当前快捷键本身
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }

// 退出niri将显示一个确认对话框,以避免意外退出。
Mod+Shift+Q { quit; }

// 关闭显示器。移动鼠标或按下任意按键恢复
Mod+Shift+P { power-off-monitors; }
}

// 影响窗口的位置和尺寸的设置。
layout {
// 在逻辑像素中设置Windows周围的缝隙。
gaps 10
background-color "transparent"
// 存在多个窗口时,未最大化的窗口不自动居中,方便分屏
center-focused-column "never"
// 只有一个窗口时自动居中显示
always-center-single-column

// mod+r在预设之间切换的宽度。
preset-column-widths {
proportion 0.5
proportion 0.2444
proportion 0.7556
// 固定设置逻辑像素的宽度精确设置。(受scale影响)
// fixed 1920
}

preset-window-heights {
proportion 0.5
proportion 0.8
proportion 1.0
}
// 关闭聚焦框
focus-ring {
// off
}

// 关闭边框
border {
off
}
}

// 覆盖由niri启动的进程的环境变量
environment {
QT_QPA_PLATFORMTHEME "qt5ct"
ALL_PROXY "http://127.0.0.1:7890"
LANG "zh_CN.UTF-8"
LC_CTYPE "zh_CN.UTF-8"
LC_NUMERIC "zh_CN.UTF-8"
LC_TIME "zh_CN.UTF-8"
LC_COLLATE "zh_CN.UTF-8"
LC_MONETARY "zh_CN.UTF-8"
LC_MESSAGES "zh_CN.UTF-8"
LC_PAPER "zh_CN.UTF-8"
LC_NAME "zh_CN.UTF-8"
LC_ADDRESS "zh_CN.UTF-8"
LC_TELEPHONE "zh_CN.UTF-8"
LC_MEASUREMENT "zh_CN.UTF-8"
LC_IDENTIFICATION "zh_CN.UTF-8"
LC_ALL null
// XDG_DATA_DIRS "$HOME/.local/share" "$XDG_DATA_DIRS"
// GTK_IM_MODULE "fcitx"
QT_IM_MODULE "fcitx"
// https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#Sway
XMODIFIERS "@im=fcitx"
QT_IM_MODULES "wayland;fcitx"
GTK_IM_MODULE null
SDL_IM_MODULE null
GLFW_IM_MODULE null
}
spawn-at-startup "niri-switch-daemon"

// 启动niri时自动启动的软件
spawn-at-startup "/usr/bin/fcitx5"
// spawn-at-startup "/usr/bin/v2rayn"
// spawn-at-startup "/usr/bin/waybar"
spawn-at-startup "/usr/bin/vicinae" "server"
spawn-at-startup "~/.cargo/bin/soteria"
spawn-at-startup "~/Desktop/tools/update_repositories.sh"
spawn-at-startup "qs" "-c" "noctalia-shell"
spawn-at-startup "/usr/bin/hyprlock"
// 要运行shell命令(带有变量,管道等),请使用spawn-sh-at-at-startup:
spawn-sh-at-startup "swaybg -i /home/Qaaxaap/Pictures/wallpaper.png -m fill"

hotkey-overlay {
// 跳过“重要的热键”弹出窗口。
skip-at-startup
}

// 设置截图保存的路径,null将会禁止保存到磁盘
screenshot-path "~/Pictures/ScreenShot/%Y-%m-%d %H-%M-%S.png"

// 忽略软件自带的装饰(例如标题栏)
prefer-no-csd

// 指定光标的主题和大小,打字时隐藏光标
cursor {
// xcursor-theme "Dracula-cursors"
xcursor-theme "breeze"
xcursor-size 24
hide-when-typing
}

// 使用`niri msg windows`查看Title和App ID等信息
window-rule {
open-on-output "eDP-2"
// default-window-height { proportion 0.9; }
// default-floating-position x=100 y=200 relative-to="bottom-left"
// default-column-width { proportion 0.7556; }
geometry-corner-radius 20
clip-to-geometry true
border {
// off
on
width 4
active-gradient from="#bd93f9" to="#94b9fa" angle=135
inactive-color "#505050"
urgent-color "#9b0000"
// active-gradient from="#80c8ff" to="#bbddff" angle=45
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
// urgent-gradient from="#800" to="#a33" angle=45
}

focus-ring{
off
}
// opacity 0.75
}
window-rule {
open-on-output "eDP-2"
match app-id="scrcpy"
default-column-width { proportion 0.2444; }
}
window-rule {
open-on-output "eDP-2"
match app-id=r#"chrome"#
default-column-width { proportion 0.8; }
// border {
// on
// width 4
// active-color "#61AFEF"
// }
// open-focused false
}
window-rule {
match app-id="com.gabm.satty" title="satty"
border {
on
width 2
active-color "#61AFEF"
}
}

// `niri msg layers`显示有namespace可以在这里配置waybar透明度
layer-rule {
match namespace="^quickshell-overview$"
place-within-backdrop true
// opacity 0.75
}

// Put swaybg inside the overview backdrop.
layer-rule {
match namespace="^wallpaper$"
place-within-backdrop true
}

debug {
honor-xdg-activation-with-invalid-serial
}
// 禁用鼠标左上角热脚
gestures {
hot-corners {
// off
}
}

animations {
// Uncomment to turn off all animations.
// You can also put "off" into each individual animation to disable it.
// off

// Slow down all animations by this factor. Values below 1 speed them up instead.
// slowdown 3.0

// Individual animations.

workspace-switch {
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
}

window-open {
duration-ms 150
curve "ease-out-expo"
}

window-close {
duration-ms 150
curve "ease-out-quad"
}

horizontal-view-movement {
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
}

window-movement {
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
}

window-resize {
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
}

config-notification-open-close {
spring damping-ratio=0.6 stiffness=1000 epsilon=0.001
}

exit-confirmation-open-close {
spring damping-ratio=0.6 stiffness=500 epsilon=0.01
}

screenshot-ui-open {
duration-ms 200
curve "ease-out-quad"
}

overview-open-close {
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
}
}

快捷键很多,自行查看,有空再补。

这里我们使用 Hyprlock 锁屏

1
2
3
4
~/.config/hypr
├── hyprlock.conf
└── mocha
└── mocha.conf

建造这样的目录结构

然后备份你原来的 ~/.config/hypr/hyprlock.conf ,并填成如下配置

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
source = $HOME/.config/hypr/mocha/mocha.conf

$accent = $mauve
$accentAlpha = $mauveAlpha
$font = JetBrains Mono

# GENERAL
general {
hide_cursor = true
}

# BACKGROUND
background {
monitor =
path = /path/to/your/lock/screen/wallpaper.png
blur_passes = 2
color = $base
}

# LAYOUT
label {
monitor =
text = 键盘布局: $LAYOUT
color = $text
font_size = 25
font_family = $font
position = 30, -30
halign = left
valign = top
}

# TIME
label {
monitor =
text = $TIME
color = $text
font_size = 90
font_family = $font
position = -30, 0
halign = right
valign = top
}

# DATE
label {
monitor =
text = cmd[update:43200000] date +"%Y年 %m月 %d日, %A"
color = $text
font_size = 25
font_family = $font
position = -30, -150
halign = right
valign = top
}

# FINGERPRINT
{
monitor = "";
text = "$FPRINTPROMPT";
color = "$text";
font_size = 14;
font_family = $font;
position = "0, -107";
halign = "center";
valign = "center";
}

# USER AVATAR
image {
monitor =
path = $HOME/.face
# size = 100
size = 200
border_color = $accent
position = 0, 90
# position = 0, 75
halign = center
valign = center
}

# INPUT FIELD
input-field {
monitor =
size = 300, 60
outline_thickness = 4
dots_size = 0.2
dots_spacing = 0.2
dots_center = true
outer_color = $accent
inner_color = $surface0
font_color = $text
fade_on_empty = false
# placeholder_text = <span foreground="##$textAlpha"><i>󰌾 Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
placeholder_text = <span foreground="##$textAlpha">󰌾 <span foreground="##$accentAlpha">$USER</span> 已登录 </span>
hide_input = false
check_color = $accent
fail_color = $red
fail_text = <i> 已失败 <b>($ATTEMPTS)</b> 次 </i>
capslock_color = $yellow
# position = 0, -47
position = 0, -80
halign = center
valign = center

并请复制一份你的头像到 ~/.face。(注意:是创建一个.face文件,而不是在 .face 文件夹里面放上自己的头像图片!)
同理操作~/.config/hypr/mocha/mocha.conf,填入以下配置

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
$rosewater = rgb(f5e0dc)
$rosewaterAlpha = f5e0dc

$flamingo = rgb(f2cdcd)
$flamingoAlpha = f2cdcd

$pink = rgb(f5c2e7)
$pinkAlpha = f5c2e7

$mauve = rgb(cba6f7)
$mauveAlpha = cba6f7

$red = rgb(f38ba8)
$redAlpha = f38ba8

$maroon = rgb(eba0ac)
$maroonAlpha = eba0ac

$peach = rgb(fab387)
$peachAlpha = fab387

$yellow = rgb(f9e2af)
$yellowAlpha = f9e2af

$green = rgb(a6e3a1)
$greenAlpha = a6e3a1

$teal = rgb(94e2d5)
$tealAlpha = 94e2d5

$sky = rgb(89dceb)
$skyAlpha = 89dceb

$sapphire = rgb(74c7ec)
$sapphireAlpha = 74c7ec

$blue = rgb(89b4fa)
$blueAlpha = 89b4fa

$lavender = rgb(b4befe)
$lavenderAlpha = b4befe

$text = rgb(cdd6f4)
#$text = rgb(6c8cf5)
#$textAlpha = 6c8cf5
$textAlpha = cdd6f4

$subtext1 = rgb(bac2de)
$subtext1Alpha = bac2de

$subtext0 = rgb(a6adc8)
$subtext0Alpha = a6adc8

$overlay2 = rgb(9399b2)
$overlay2Alpha = 9399b2

$overlay1 = rgb(7f849c)
$overlay1Alpha = 7f849c

$overlay0 = rgb(6c7086)
$overlay0Alpha = 6c7086

$surface2 = rgb(585b70)
$surface2Alpha = 585b70

$surface1 = rgb(45475a)
$surface1Alpha = 45475a

$surface0 = rgb(313244)
$surface0Alpha = 313244

$base = rgb(1e1e2e)
$baseAlpha = 1e1e2e

$mantle = rgb(181825)
$mantleAlpha = 181825

$crust = rgb(11111b)
$crustAlpha = 11111b

颜色可以自己改

如果你尝试,你会发现你登录的时候要输入两次密码,这不妙,所以我们设置自动登录,这样就只用一次密码

操作/etc/sddm.conf.d/autologin.conf

1
2
3
[Autologin]
User=#your_username
Session=niri

好了,可以重启进入 Niri 了,自行探索吧