Niri桌面在ArchLinux上的使用
(封面图源Niri@Github)
TL;DR
在用了KDE和Gnome后,感觉有点索然无味了。KDE确实好看,但太重了;Gnome的平铺动态多工作区模式确实效率高,但果味十足可自定义性没KDE强。那怎么办呢,不如来看看niri吧!这是一个用RUST写的桌面合成器,我配好桌面+附加组建后开机空载就只吃1.3G内存!老机狂喜!
当然,它只是个桌面合成器而已,仅此而已,所以你还需要自己安装状态栏、锁屏界面、通知栏等一系列工具。
安装基础软件包
这是niri桌面和依赖的一些组建。
1 | |
alacritty: 终端命令行。fuzzel: 相当于krunner,是个应用程序启动器。swaylock: 锁屏界面。swayidle: 负责处理超时自动休眠。waybar: 系统顶部的状态栏。swaybg: 壁纸组件。xwayland-satellite: 用于兼容运行旧式X11软件。swaync: 通知栏组件。
安装字体
1 | |
添加swaybg作为服务运行
1 | |
添加配置文件
将我的仓库克隆下来,运行deploy.sh即可。
⚠️注
如您使用的是我的配置文件,均包含后文所述修改和问题的解决方案,并且自动化部署脚本deploy.sh都会帮你去做好,您只需手动安装对应的软件包即可。
鼠标指针
修改deploy.sh中THEME_CURSOR和THEME_CURSOR_SIZE两个变量的值,第一个设置成你的主题名,第二个设置成大小(默认是24),改完运行deploy.sh可动态应用指针修改。如果有些软件(如vscode)没能更改过来,把软件关了重启即可。
主题名可在~/.icons里找到,这里面每个文件夹名都是主题名。主题可以在KDE设置里直接下载,或者用浏览器下载好了解压进去。
状态栏
我采用的是waybar,配置文件见dotconfig/waybar/config.jsonc和dotconfig/waybar/style.css。我是基于woioeow/hyprland-dotfiles GitHub仓库二改的,所以和他的样子大差不差,但也有些不同。做了修改后记得运行deploy.sh更新配置。
详细配置教程可看官方文档。
配置文件结构
前面三个节点"modules-left"、"modules-center"、"modules-right"用于声明左中右三个方位的内容,后面就是对每个节点的详细配置。
状态栏天气
你需要添加dotconfig/waybar/weather.sh这个脚本,保证脚本最后返回值是你的天气内容。比如广州 晴 11.4-5.14°C,它会显示在屏幕右上角通知和时间图标的中间。默认触发查询间隔是1小时,你可以修改dotconfig/waybar/config.jsonc进行修改,位于"custom/weather"节点。
蓝牙控制
我采用的是bluetoothctl进行命令管理操作,使用blueman作为界面前端,你需要保证安装了这两个包。
1 | |
ZRAMSWAP监控
我的电脑配置了ZRAMSWAP,想要在状态栏监视其用量状态。
在dotconfig/waybar/config.jsonc里添加节点"custom/zramswap"即可。
系统壁纸和锁屏配置
系统壁纸
分为桌面壁纸和锁屏壁纸,默认壁纸位置是:
桌面壁纸(或者修改我的配置文件仓库里dotfiles/systemd/user/swaybg.service,然后重新运行deploy.sh即可刷新):
1 | |
锁屏壁纸(或者修改我的配置文件仓库里dotconfig/swaylock/config,然后重新运行deploy.sh即可刷新):
1 | |
锁屏配置
锁屏界面采用的是swaylock,详细可看官方文档。
修改我的配置文件仓库里
dotconfig/swaylock/config,然后重新运行deploy.sh即可刷新
通知栏
采用的是swaync,可高度自定义主题界面。我的配置文件位于dotconfig/swaync/config.json和dotconfig/swaync/style.css。
其实你可以去下载大家分享的主题,详见swaync的这个issues。
Dolphin相关问题
没法选择文件打开方式怎么办?
安装archlinux-xdg-menu然后在终端运行
1 | |
即可。
没法弹出挂载授权认证界面怎么办?
在config.kdl中添加如下语句:
1 | |
剪贴板历史记录怎么办
我使用的vicinae来解决这个问题,并绑定了Super+X这个快捷键(不像KDE和Windows绑Super+V是因为这个键默认绑到了切换浮窗上,虽然你可以去配置文件里改绑,但我不太想动这些默认的习惯设置)。
安装vicinae:
1 | |
添加到~/.config/niri/config.kdl:
1 | |
如果你坚持修改默认的习惯设置,在~/.config/niri/config.kdl里找到这行,然后修改即可。将大括号里的像上面的一样换成spawn-sh "vicinae toggle";即可:
1 | |
微信右键消息没法弹出菜单、表情等小弹窗乱飞怎么办
用gamescope,具体可参考这个WiKi。它需要你安装好了mesa驱动组建,具体可以看这个WiKi。
总的来说,你只需要安装这三个包就行(对于像我一样的Intel核显机器):
1 | |
然后用gamescope运行你的应用程序your_progrom即可。就像这样:
1 | |
如果你的软件和wayland有兼容性问题,给gamescope添加这个参数:
1 | |
这时,你只需要去修改微信的启动脚本,在前面添加gamescope即可
引用的文档和页面
kznleaf - 无限平铺窗口管理器——niri在 ArchLinux 上的安装与配置
woioeow/hyprland-dotfiles GitHub仓库
Archlinux Forums - How to set up Polkit to allow Dolphin to mount different Partitions?
ArchWiki - polkit
ArchWiki - XDG MIME Applications
Swaylock GitHub 仓库
Swaylock 参数解释 GitHub 仓库
