Niri 平铺窗口管理器安装与配置
今天准备安装 niri 桌面。
根据官网( https://wiki.archlinuxcn.org/wiki/Niri )和其他网站教程( https://kznleaf.top/2025/09/18/niri安装与配置/ 、 https://koishi.com.cn/index.php/archives/2/ )总结出如下须安装的包:
alacritty:Niri 的默认终端swaybg:设置桌面背景图片swayidle 和 swaylock:用于在空闲时锁定屏幕xwayland-satellite:用于运行 X11 应用程序fuzzel:Niri 的默认应用启动器,用于快速搜索、启动应用mako:通知管理器waybar:Wayland 状态栏gdm:登录管理器polkit-gnome:身份认证代理。当打开任务管理器等软件需要管理员权限时,如果没有它则没启动会失效;有了它,会弹出一个框供输密码以启动。xdg-desktop-portal-gnome:XDG 桌面门户。当软件需要“打开文件”或“截图”时,会通过这个门户调用 GNOME 的文件选择框给软件用。用于实现屏幕共享功能。
udiskie:用于管理和自动挂载 USB 驱动器还可以参考: https://github.com/SHORiN-KiWATA/Shorin-ArchLinux-Guide/wiki/安装Niri
安装多个桌面环境后可以在登录界面选择桌面。
初次安装,先仅安装必要的东西。已经有 sddm 登录界面了,gdm 界面以后再安装。udiskie 不知道这个有什么用,所以先不安装。
要安装的是 niri 本体、alacritty 终端(后面在桌面使用命令行)、xwayland-satellite 支持 X11 软件(相当于补丁):
sudo pacman -Syu
sudo pacman -S niri alacritty xwayland-satellite
注销后选择 Niri 桌面登录,进入后黑屏。
切换到 tty3 后再切换到 tty1,黑屏会保留 tty3 的输出。在 tty3 以 qlz 用户执行 niri-session 会显示:
A niri session is already running.
查看日志:
journalctl -e /usr/bin/niri
也可以将输出的日志保存到文件里:
journalctl -e /usr/bin/niri > /media/sf_sharedFloder/usrBinNiri.txt
检查日志发现是没有启用 3D 加速的问题,于是关闭虚拟机,启用 3D 加速后打开 arch,切换到 tty3 执行 niri-session 打开了 niri 桌面。(以后就可以在登录界面选择 Niri 并直接登录进入了)
这一点在 Niri 官网 https://docs.akass.cn/niri/Getting-Started.html#_4 有提及:“要在虚拟机中运行 niri,请确保启用了 3D 加速。”很抱歉又没有看官网。
在同时打开 KDE 和 niri 时使用 niri 命令行终端执行 poweroff 后,VirtualBox 显示异常退出。
使用 win + T 打开 alacritty 终端后发现终端看不见字体。
为了解决字体问题,创建了 ~/.config/alacritty/ 目录并修改了 alacritty.toml 文件以改变背景颜色:
mkdir -p ~/.config/alacritty
vim ~/.config/alacritty/alacritty.toml # 不需要 sudo
小提示: fc-match monospace 命令可以检查当前系统有哪些等宽字体。
但是字体依旧不显现,于是安装了 ttf-dejavu 字体:
sudo pacman -S ttf-dejavu
fc-cache -fv # 刷新字体缓存
但是依旧没有用。
经过一番研究,在 https://blog.csdn.net/gitblog_00517/article/details/151424177 这个网页上找到了解决办法,通过对 ~/.config/alacritty/alacritty.toml 文件进行这样的配置解决了问题:
[font]
size = 12
[font.normal]
family = "DejaVu Sans Mono" # 这里使用的是刚刚下载的 ttf-dejavu 字体
style = "Regular"
[colors.primary]
background = "#1E1E2E"
foreground = "#CDD4F4"
[debug]
renderer = "gles2" # 强制使用 OpenGL ES 2.0 渲染器
其中发挥主要作用的两行是
[debug]
renderer = "gles2"
网页里的网友是这样说的:
Alacritty 采用 GPU 加速渲染,其字体渲染模块主要依赖 OpenGL ES 2.0 或更高版本的特性。当你的显卡不支持这些特性时,就会出现各种渲染问题。Alacritty 默认会尝试使用最高级别的渲染器,但老旧显卡可能无法正确支持。通过配置文件强制使用 GLES2 渲染器。
而前面的配置用于美化字体和背景,如果没有前面的字体配置,字体渲染会发生偏移、错位。
在折腾字体问题时还尝试修改了 3D 加速相关的选项,现在的显示内存为 192MB。
终于可以使用 niri 桌面进行工作了,以后就以 niri 桌面使用 arch,KDE 桌面作为备用。