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 仓库