ArchLinux 双系统安装及 Niri 桌面合成器环境配置
ArchLinux 双系统安装及 Niri 桌面合成器环境配置。涵盖分区调整、GRUB 主题设置、显示管理器 SDDM 配置、显卡驱动(Nvidia/AMD)安装、基础应用包选择、QT 与 GTK 主题统一、输入法 Fcitx5 适配、Xwayland 环境变量处理以及 Niri 与 Sway 生态组件集成方案。解决了默认启动分区大小、Dolphin 主题失效、Electron 应用输入框兼容性及屏幕缩放等问题。

ArchLinux 双系统安装及 Niri 桌面合成器环境配置。涵盖分区调整、GRUB 主题设置、显示管理器 SDDM 配置、显卡驱动(Nvidia/AMD)安装、基础应用包选择、QT 与 GTK 主题统一、输入法 Fcitx5 适配、Xwayland 环境变量处理以及 Niri 与 Sway 生态组件集成方案。解决了默认启动分区大小、Dolphin 主题失效、Electron 应用输入框兼容性及屏幕缩放等问题。

本文记录了在 Windows 环境下安装 Arch Linux 双系统及配置 Niri 桌面合成器过程中遇到的问题与解决方案。
基础安装过程参考 Arch Linux 简明指南。关于 Windows 默认启动分区大小问题,若将 EFI 挂载到 /efi 路径,其他照原来的来即可,不需要扩大。需要注意的是在安装 Arch Linux 成功后,不要再使用 gdisk,否则会损坏 efi 盘里的内容,需要再用安装媒介走一下 grub-mkconfig -o /boot/grub/grub.cfg。
主要配置主题和将 GRUB 配置为默认的启动器。GRUB 作为默认启动器,需要修改 BIOS 配置,将快速启动取消,然后将 GRUB 配置为默认。单硬盘双硬盘情况略有不同。
主题配置示例:
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
GRUB_THEME="/usr/share/grub/themes/Elegant-forest-window-grub-themes/left-dark-1080p/Elegant-forest-window-left-dark/theme.txt"
默认 /etc 目录下没有配置文件,需要用 sddm --example-config > /etc/sddm.conf 来生成。主题使用的是 AUR 包里的 sddm-astronaut-theme。
[Theme]
# Current theme name
Current=sddm-astronaut-theme
如果有 Nvidia 显卡,需另行研究。AMD 显卡直接安装开源驱动。
sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon
Cursor 直接安装 AUR 包里的 bibata-extra-cursor-theme,然后更改 /usr/share/icons/default/index.theme 如下:
[Icon Theme]
Inherits=Bibata-Modern-DodgerBlue
本节是 KDE(QT)和 GTK 的主题配置和尝试统一的问题。KDE 使用 kvantum manager 配置,图形化配置就可以,使用 nwg-look 来设置 gtk 的主题。这里都设置成了 WhiteSurDark,图标也是一样的配置。
QT 需要额外设置一些环境变量:
因为标题栏始终统一不了,所以通过 niri 配置尽可能的把标题栏去掉了。
Dolphin 有两个问题:
Fuzzel 的主题直接使用了 Dracula。
安装过程参考 Arch Linux 简明指南,然后是需要配置一些环境变量,以使它可以在 xwayland 和其他一些奇怪的应用里可以使用。
ELECTRON_OZONE_PLATFORM_HINT="wayland"
GTK_IM_MODULE="fcitx"
SDL_IM_MODULE="fcitx"
XMODIFIERS="@im=fcitx"
Fcitx5 需要向 Electron 应用和 Chromium 传入额外的参数,在 ~/.config 路径下,创建 electron-flags.conf 和 chromium-flags.conf,写入以下内容。
--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime --wayland-text-input-version=3
--force-device-scale-factor=1.0 --gtk-version=4 --enable-features=WaylandPerSurfaceScale,WaylandUiScale --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime --wayland-text-input-version=3
VSCode 虽然是 Electron 应用,但开源的 code 可以正常工作,官方的 vscode 需要在它的 desktop 文件里把 Exec 改了,或者在 code-flags.conf 里添加相关内容。
在使用 xwayland-sitelite 时,遇上了 xorg 相关的问题:
xauth add :1 MIT-MAGIC-COOKIE-1 $(mcookie) 添加认证。DISPLAY ":1"
Niri 对比 Hyprland 和 Sway 生态还相当的不成熟,像壁纸、锁屏、空闲管理这种都借用了 sway 的生态。
spawn-at-startup "swayidle" "-w" "timeout" "900" "swaylock" "timeout" "1800" "niri msg action power-off-monitors" "resume" "niri msg action power-on-monitors" "before-sleep" "swayidle"
Waybar 和 Mako 参考了社区配置。退出菜单使用了 Wlogout,主题直接使用 Catppuccin 的主题。
指应用的缩放问题。主要是一些 QT 的应用,需要在 /usr/share/application/ 里修改 .desktop 文件,或其他地方的执行命令,加入 QT_SCALE_FACTOR 参数来进行手动的缩放,例如在沙盒里运行的微信。
基本没怎么动默认的配置文件,只是加了一下 output 的分辨率,修改了一下 layout 的 gap,开启了 focus-ring,取消了 prefer-no-csd 的注释,加了默认的启动项,修改了一下环境变量。总体来说功能为主,好不好看就是另一回事了。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online