安装 Niri 与 Noctalia
本文教你从零搭建 Niri(滚动平铺 Wayland 合成器)+ Noctalia(桌面 shell)环境:字体、dotfiles 同步、核心软件、多显示器配置、fcitx5 中文输入法。全部命令在 Arch Linux 下验证。
安装字体
sudo pacman -S \
ttf-jetbrains-mono-nerd \
noto-fonts \
noto-fonts-cjk \
noto-fonts-emoji \
ttf-nerd-fonts-symbols-mono
ttf-jetbrains-mono-nerd— 终端等宽字体(含 Nerd Fonts 图标)noto-fonts/noto-fonts-cjk/noto-fonts-emoji— 外文、中日韩、emoji 字体
同步 dotfiles
先安装 GNU Stow(dotfiles 符号链接管理工具):
sudo pacman -S stow
克隆 dotfiles 仓库并应用:
git clone https://github.com/heihei0299/dotfiles.git ~/dotfiles
cd ~/dotfiles
rm README.md
stow *
stow *会把仓库里每个包目录分别符号链接到$HOME对应位置。rm README.md是因为 README 不在任何包目录里,stow 会报错。
安装 Niri、Noctalia 与核心软件
sudo pacman -Syu niri xwayland-satellite xdg-desktop-portal-gnome \
xdg-desktop-portal-gtk matugen cava qt6-multimedia-ffmpeg nautilus
sudo pacman -S noctalia-git noctalia-greeter-git kitty nvim
niri是滚动平铺 Wayland 合成器;noctalia-git(AUR)是基于 quickshell 的桌面 shell;kitty终端、nvim编辑器。
Zsh 依赖软件
根据 ~/.zshrc,zsh 配置依赖以下包。按需选择安装方式——zinit 可从 GitHub Releases 自动安装部分工具(无需 pacman),但系统级安装更稳定:
# 核心依赖(zsh + zinit 运行所需)
sudo pacman -S --needed zsh git curl unzip
# 系统命令(别名/函数引用,必须系统安装)
sudo pacman -S --needed \
zoxide kitty neovim trash-cli tldr unar \
bpytop procps-ng gnome-text-editor
# 可选:也可通过 zinit 自动安装(二选一即可)
sudo pacman -S --needed \
fzf eza bat ripgrep fd fastfetch duf
zsh— Shell 本体git— 克隆 zinit 插件管理器(.zshrc自动安装 zinit)curl/unzip— zinit 下载和解压工具zoxide— 智能目录跳转(zoxide init zsh --cmd cd)kitty— 终端模拟器(别名k)neovim— 编辑器(别名nv)trash-cli— 安全删除(别名rm)tldr— 简版 man 手册(别名man)unar— 解压工具(别名x)bpytop— 资源监视器(别名top)procps-ng— 提供ps/watch命令gnome-text-editor— GUI 编辑器(别名gedit)fzf— 模糊搜索(fzf-tab、Ctrl+R 依赖)eza—ls替代(别名ls/ll/la/tree)bat—cat替代(别名cat)ripgrep— 递归内容搜索fd—find替代fastfetch— 系统信息(别名ff)duf— 磁盘使用率(别名df)
显示器配置
参考 niri wiki: Configuration: Outputs。
获取显示器信息
可选:用 wdisplays 临时调整显示设置:
sudo pacman -S wdisplays
运行命令获取显示器信息:
niri msg outputs
Output "BOE NE156QHM-NY1 Unknown" (eDP-1)
Current mode: 2560x1440 @ 165.000 Hz (preferred)
...
Output "Shenzhen KTC Technology Group H27T22C 0x00000001" (DP-2)
Current mode: 2560x1440 @ 180.000 Hz
...
记住 eDP-1、DP-2 这类名称,在 Available modes 里找到需要的模式,格式为 分辨率@刷新率。
编写 output 配置
在 niri 配置文件中搜索 output,在示例配置下新增:
output "eDP-1"{
//分辨率和刷新率
mode "2560x1440@165"
//缩放倍率
scale 1.33
//位置,x=0 y=0 代表最左上角
position x=0 y=0
//启动时聚焦此显示器
focus-at-startup
//取消下面这行的注释设置可变刷新率
//variable-refresh-rate
//取消下面这行的注释可以设置旋转,参数有:90, 180, 270, flipped(水平翻转), flipped-90(水平翻转后旋转), flipped-180 and flipped-270
//transform "90"
}
多显示器布局计算
每个显示器都要一个 output{},用名称指定生效的显示器。
位置关系需要计算:把最左上角的显示器设为 position x=0 y=0,以此为原点推算其他显示器。
例如 eDP-1 在最左上角(2560x1440,1.33 缩放),横向像素为 2560/1.33 ≈ 1925。把 DP-2 放在它右边:
output "DP-2"{
mode "2560x1440@180"
scale 1
position x=1925 y=0
}
想放下面改 y 轴;设置旋转时横竖值也要对应旋转。
安装中文输入法 fcitx5
安装基础框架
sudo pacman -S fcitx5-im
fcitx5-im包含 fcitx5 的基本包。
安装输入方案
可以自己选择输入方案。全拼推荐 RIME + 雾凇拼音:
中文输入合集
fcitx5-chinese-addons:包含所有常用方案(拼音、五笔、双拼等),安装简单但输入效果一般,不推荐。sudo pacman -S fcitx5-chinese-addonsRIME 中州韵引擎 + 雾凇拼音(推荐全拼用户):两大主流方案中,雾凇全拼分词效果好,万象适合双拼。
sudo pacman -S fcitx5-rime rime-ice-gitfcitx5-rime是输入法引擎;rime-ice-git雾凇输入方案,需要从 AUR 或 archlinuxcn 安装。 其他方案:rime-wanxiang-pinyin万象拼音、rime-wanxiang-flypy万象小鹤双拼(archlinuxcn 源)、fcitx5-mozc日语、rime-wubi五笔。
添加 RIME 到输入法列表
打开 fcitx5-configtool,把 rime(中州韵) 添加到输入法列表。重启输入法后,Ctrl+空格 切换到 RIME 会自动初始化。默认方案是繁体的 明月拼音,按 F4 可打开设置菜单临时调整为简体。
配置默认方案为雾凇拼音
编辑 RIME 用户配置(rime-ice 的 schema id 为 rime_ice):
mkdir -p ~/.config/fcitx5/rime
vim ~/.config/fcitx5/rime/default.custom.yaml
写入:
patch:
schema_list:
- schema: rime_ice
重新部署(右键托盘 RIME 图标 → 重新部署,或重启输入法)后,默认方案即为雾凇拼音。参考 rime-ice 仓库。
验证输入法
# 确认 fcitx5 进程运行
pgrep -a fcitx5
# 任意输入框按 Ctrl+空格 切换输入法
# 输入 "shurufa" 应出现 "输入法" 候选
验证与自查
niri msg outputs输出的分辨率/缩放与配置文件一致- 两个显示器位置关系正确(鼠标可跨屏移动)
Ctrl+空格可切换中英文输入,候选词正常fastfetch正常显示系统信息(dotfiles 生效)