2026 年的 Wayland 生态有优秀的窗口管理器,但「shell」层是碎片化的。你先挑 Hyprland 或 Niri 当 compositor;然后你需要状态栏(Waybar / AGS / Ironbar / end-4 自定义 / Quickshell 配置)、启动器(wofi / fuzzel / bemenu / walker)、通知守护(Swaync / Mako / fnott)、壁纸工具(swaybg / swww / wlgreet)、锁屏(swaylock / gtklock)、还有一个 session 菜单(wlogout 或者手搓)。每个都有自己的配置文件和 IPC 假设。最终你拼出一个能跑的桌面要花一个周末,调试要花一辈子。Noctalia 是统一的 shell 层,负责所有这些 surface,让你专心挑你自己的 compositor,不用管它们之间的胶水。
这个项目在 v4(基于 Quickshell / QML)和 v5(重写了渲染层、丢掉了 Qt)之间做了一次大重构。截至本文,v5 处于早期 alpha——能用,但版本间会有 breaking 改动。本文以 v5 为主。
Noctalia 一句话定义
一个 Wayland desktop shell(状态栏 / dock / 启动器 / 通知 / 控制中心 / 壁纸选择 / 锁屏 / OSD / 托盘 / widgets / 剪贴板历史),适配 8+ 种 Wayland compositor,用 TOML 配,热重载。
如果你已经装好 Hyprland / Niri / Sway,就想要一个漂亮统一的 shell 盖在上面——Noctalia 就是要找的那个。如果你打算靠 dotfiles 学 5 种不同的 Wayland 配置格式,搞清 layer-shell 协议细节——它不是答案。
v5 改了哪些(以及为什么 v4 不能当首选)
v4 基于 Quickshell(QtQuick + QML)。能跑但有常规 Qt-over-shell 的代价:binary 大、启动慢、多一层依赖要学。v5 是主要架构重写,主要动作:
- 完全丢掉 Qt。 v5 渲染是手写 C++ on OpenGL ES。GitHub 仓库描述现在是「built directly on Wayland and OpenGL ES with no Qt or GTK dependency」。
- 配置从 QML 换成 TOML。 v4 用 JSON,v5 用 TOML,热重载,GUI-managed override 层。
- 重整 IPC 模型。 v4 社区配置作者手搓的那堆东西,v5 直接原生化。
- 加正经的 compositor-backend 架构。 v5 对 Niri / Hyprland / Sway / Scroll / Mango / Labwc / Triad / dwl 都有一手集成——能专门 backend 的走专门 backend,其他用
ext-workspace-v1。
v4 → v5 没有原地升级路径。文档说 v4 和 v5 能共存,因为配置格式不同、包名不冲突。但 compositor 那边调起 Noctalia 组件的快捷键得自己重配一遍。
Shell 里都有啥
v5-alpha 组件清单(按项目 README):
Bar 类 surface(多显示器)
- 顶部 bar 配 widgets:taskbar / workspaces / tray / 媒体 / 网络 / 电量 / 亮度 / 天气 / 时钟 / 剪贴板 / 自定义脚本 widget
- Dock(独立 surface;可自动隐藏)
- 启动器 + 模糊搜索(替代 wofi / fuzzel)
服务 surface
- 通知 toast + 历史(替代 Swaync / Mako)
- 控制中心——Wi-Fi / Bluetooth / 音量 / 麦克风静音 / 夜间模式 / 深浅色 / 主题切换器 / 强调色(替代自搓的 quickshell 面板)
- 壁纸选择器,接 Wallhaven,加「基于壁纸生成配色」模式
- 音量 / 亮度 / 麦克风 OSD
- 锁屏
- Session 面板——关机 / 重启 / 锁屏 / 挂起 / 休眠 / 注销
- 剪贴板历史(替代 clipman / cliphist / copyq)
- 托盘集成(StatusNotifierItem)
- 桌面 widgets——时钟 / 天气 / 媒体播放器,加 plugin 加的
配置
- TOML,热重载(保存就生效)
- GUI 管理的 override 层,常规自己手写脚本的设置都能 GUI 改
- Theme / palette 系统,预定义配色方案
- Template application(应用别人整理好的 bar 配置 paste)
这就是替换 Waybar + Swaync + wofi + swaybg + swaylock 那一堆东西的整体。一个项目、一个配置格式、一个渲染线程。

先看看实际效果
在讲安装和配置之前,先看 Noctalia 实际跑起来什么样。所有截图都来自官方 v5 showcase(项目 MIT 协议)。
深色主题,启动器打开 + 通知面板展开 —— 顶上「Search entries… or use > for commands」是启动器;右上角小面板是通知历史拉出来查看。

浅色主题,同样启动器状态 —— 跟随系统深浅色信号自动切主题(README 说:「automatic color generation from your wallpaper」)。

控制中心展开 —— 右侧面板有天气(lysec / Tokyo)、5 天预报、硬件监控(CPU / 内存 / 65°C CPU 温度)、媒体控制、快捷开关。这是替换每个 rice 都要手搓的 Quickshell 面板的现成实现。

壁纸选择器 + 壁纸生色 —— Noctalia v5 壁纸 UI 把整套主题色板跟你设的图绑在一起,换壁纸自动更新所有强调色。

浅色主题,通知 + 锁屏设置 —— 同一套主题系统,不同状态。

深色主题,空闲态 —— 平时看到的样子。bar 带 workspaces + 媒体 + 系统托盘。

不做什么(先设好的边界)
项目自己的 scope 声明已经写明:
Noctalia 是 desktop shell,不是完整 desktop environment。窗口管理 / 平铺 / 文件管理 / 可移动设备挂载 / 屏幕镜像 / 投屏——都是 compositor / 独立桌面应用 / 系统服务的活。Display/login greeter 在单独的 Noctalia Greeter 项目里。
实际含义:
- 没有窗口管理器。 装 Hyprland / Niri / Sway 之类的配它用。
- 没有文件管理器。 用 Nautilus / Dolphin / Thunar。
- 没有 greeter / 登录管理器。
noctalia-greeter是兄弟仓库,独立装。 - 不配显示服务。 Wayland session 已经是一套东西了。
- 不做合成。 compositor 做这个。Noctalia 把 UI 放在 compositor 提供的 layer-shell surface 上。
如果你想找一个装一次能替代 Hyprland + 你的 bar + 你的启动器 + 你的 greeter 的——它只替你那一层。你还是得装个 Hyprland(或其他),挑个独立的 greeter。
安装——主路
Arch Linux / Manjaro / EndeavourOS / CachyOS
paru -S noctalia-gitAUR 是 Arch 唯一「官方认可」的打包路径。-git 后缀跟 main 分支;想要稳定节奏也有 noctalia 稳定包。
Fedora 44+
sudo dnf install noctaliaFedora 44(2025)起进官方仓库。旧版 Fedora 用 Hyprland Community Project (COPR):
sudo dnf copr enable lionheartp/Hyprland
sudo dnf install noctalia-gitDebian 13 (Trixie) / Ubuntu 26.04
wget https://pkg.noctalia.dev/deb/nickh-archive-keyring.deb && sudo dpkg -i nickh-archive-keyring.deb
sudo wget -O /etc/apt/sources.list.d/noctalia-trixie.sources https://pkg.noctalia.dev/deb/noctalia-trixie.sources
sudo apt update && sudo apt install noctalia文档只列 amd64 包给 Debian / Ubuntu 路径。ARM 包在 AUR 有但不在这个 apt repo 里;查 v5 release notes 拿最新状态。
NixOS
Noctalia 发 flake。输入加进 inputs 然后 overlay 到 nixpkgs:
inputs.noctalia.url = "github:noctalia-dev/noctalia";GNU Guix 也有 channel,openSUSE Tumbleweed + Slowroll 走 OBS(Leap 16 编不了 v5,因为 sdbus-c++ 还在 v1.6.0,v5 要 ≥ v2.x)。
手动装(任意 Linux)
可以装在任何有官方依赖列表的发行版上。依赖不少——meson / gcc / just / wayland / wayland-protocols / libglvnd / freetype2 / fontconfig / cairo / pango / libxkbcommon / glib2 / sdbus-cpp ≥ 2.0 / libpipewire / wireplumber / polkit / pam / curl / libwebp / librsvg / libqalculate / libxml2 / md4c / tomlplusplus / nlohmann-json / stb,外加可选 jemalloc。有些库(Wuffs / nanosvg / Luau / dr_wav / fzy / stb_image_resize2 / Material Color Utilities)vendored 了,不必再装。
非列表里的发行版走手动;列表里的发行版走发行版包(拿到安全更新)。
第一次跑的配置
Noctalia 带 setup wizard,第一次启动跑。问你:用的是哪个 compositor、键位喜好(Hyprland 风格 vs QWERTY 位 vs 自定义)、显示器布局、配色偏好、强调色。生成的配置是真 TOML,存在 ~/.config/noctalia/config.toml,可以编辑。
# ~/.config/noctalia/config.toml
[general]
compositor = "hyprland"
hotkey_open_launcher = "<super> space"
hotkey_open_control_center = "<super> c"
hotkey_open_wifi_panel = "<super> w"
[bar]
position = "top"
height = 38
background_opacity = 0.85
left_widgets = ["workspaces", "active_window"]
center_widgets = ["media"]
right_widgets = ["clock", "tray", "battery", "network", "volume"]
[theme]
mode = "auto" # light / dark / auto
accent = "lavender"
palette = "noctalia-lavender"
[notifications]
do_not_disturb = false
max_history = 25
position = "top-right"热重载在保存瞬间生效。不用 kill; restart 循环。
插件层
Noctalia v5 自带 9 个官方插件 + 第三方插件规范。v4 社区有 132 个插件——大都没迁移但迁移路径有文档,很多维护者在 v5-alpha 头几个月就 port 了。
插件能做什么(按项目自己的 scope 说明):
- 加 bar widget(
ram-info/cpu-temp等) - 加启动器 provider(网页搜索 / 计算器集成)
- 桌面 widget(多种时钟面 / 系统监控)
- 快捷键面板(快速调用脚本)
- 后台服务(Pomodoro 计时器 / 天气轮询替代)
- 特定 compositor 增强(Niri workspace 规则、Hyprland dispatcher)
- 特定硬件控制(RGB / 风扇曲线 / 自定义键盘)
- 第三方服务集成(Mastodon / IMAP / 自定义 API)
插件系统是 Noctalia 跟 Waybar 类方案比最不一样的一点。你想加新 widget 不用 fork Waybar 也别改一半的配置——装个插件就行。
对照表(老实版)
| 场景 | 先试这个 | 为啥 |
|---|---|---|
| Hyprland / Niri / Sway 上一层 shell、全功能、native 支持 | Noctalia | 原生集成、热重载、插件生态 |
| 想极端可控,愿意学 QML + shell 脚本 | 直接用 Quickshell(比如 end-4/dots-hyprland dotfiles) |
knob 多、改动慢 |
| 极简 bar,Niri 专用 | 自定义 Waybar | surface 小、认知负担小 |
| Sway 上只要 bar + 启动器 | waybar + wofi + swaync |
多数发行版自带 |
| 美学优先 rice | caelestia-dots 或 DankMaterialShell | 默认配置更花哨 |
你的目标是「不用 400 行 hyprland.conf 加 800 行 waybar/style.css 加 200 行 ${WAYLAND_FOO} 启动脚本就配出一个像样的 Wayland 桌面」——这个表里只有 Noctalia 用一个配置文件满足。
当前状态(2026 年 7 月——装前看)
- v5 是早期 alpha。 alpha 之间还会有 breaking 改动。你不想追 breaking 改动 release notes 就等几个月,或者钉一个特定 release tag。
- v4 还能装能用,想要稳定的就是它。v4 有 132 插件生态,v5 暂时还没。但 v4 是老支线往前看——v5 重写才是后续开发的落脚点。
- 「no Qt」的声明对渲染路径成立——但 Quickshell 工具集 + 功能对想自定义 shell 的硬核用户仍然有用。没有 Noctalia 那种 polishing,但可定制性无界。
- 多数 compositor 问题在协议层。 Niri 的
ext-workspace-v1已成熟;Hyprland 的 hyprland-ipc backend 处理 workspaces;Sway 的 zwlr-layer-shell 扎实。小众 compositor(Triad、dwl)的「workspace 集成打折」风险主要是手工配置的工作,不是 bug。
我会跳过的点
- 别拿 Noctalia 当 greeter。
noctalia-greeter兄弟仓库独立装。用正经 greeter(greetd系 / sddm / 发行版默认)。 - Debian 上别只靠发行版包——这个 APT repo 现在只有 AMD64。Arch 用户永远用
paru是更稳的路。 - 别指望 v4 配置能直接搬 v5。 v4 JSON 形状,v5 TOML 形状。文档有迁移 cheatsheet,但准备好重新调一遍。
下一篇
如果你已经决定 Noctalia,下一篇有用的是对照评测另外两个面向同样受众的 QML/C++ shell——Noctalia / DankMaterialShell / caelestia-dots,给「想要 caelestia-dots 那种视觉抛光但 Noctalia 的更轻量配置,愿意付点 Quickshell 代价」的人看。评论区告诉我。
参考资料(2026 年 7 月核对):github.com/noctalia-dev/noctalia(8.5k★ / 605 forks / 4348 commits,MIT,每周更新)、noctalia.dev 首页、docs.noctalia.dev/v5/getting-started/installation/(各发行版安装命令、Debian AMD64-only 注意)、quickshell.org Quickshell 0.3.0 发布日期(2026-05-04)、github.com/topics/quickshell 对照 caelestia-dots(10.5k★)和 DankMaterialShell(7.2k★)的定位。
评论