📌 项目地址:hyprwm/Hyprland | ⭐ 36,938 颗星 | 🔧 C++ | 📜 未标注
它解决了什么问题?
绝大多数 Linux 桌面用户仍在使用 X11。Wayland 虽然逐渐普及,但成熟的平铺式混成器屈指可数,且大多基于 wlroots 库(如 Sway 或 dwl)。Hyprland 选择了另一条路:完全独立,不依附于 wlroots、libweston、KWin 等任何底层抽象。这意味着它的开发节奏不受上游限制,可以快速引入前沿特性(如 tearing 支持、自定义贝塞尔动画曲线),同时保持代码库的可读性和可扩展性。
对于追求极致自定义和视觉效果的平铺窗口管理爱好者,Hyprland 提供了“一步到位”的体验:渐变边框、模糊、动画、阴影、撕裂控制、内置插件管理……这些特性在过去往往需要多个工具拼接才能实现。
快速上手:从安装到启动
Hyprland 不提供单一的 release 二进制包,安装需要根据你的发行版选择方法。官方 wiki 给出了多发行版指南:
- Arch Linux:
sudo pacman -S hyprland - NixOS:在 configuration.nix 中启用
programs.hyprland.enable = true - 手动编译:需满足 CMake、ninja、Wayland 协议头等依赖,具体依赖列表请查阅官方安装文档。
启动方式:在登录管理器(如 SDDM)中选择 Hyprland 会话,或通过 TTY 执行 exec Hyprland(配合 .xinitrc 类似的启动器)。首次启动会进入默认配置,显示一个空桌面与控制台。
首次配置位于 ~/.config/hypr/hyprland.conf。最简单的改动是修改按键绑定,例如:
# 设置 Mod 键为 Super(即 Windows 键)
$mainMod = SUPER
# 平铺窗口切换焦点
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
# 打开终端
bind = $mainMod, Return, exec, kitty
配置文件内支持变量、条件语句,甚至自定义 Bezier 曲线来调节动画速度。修改后无需重启,保存即生效——这是 Hyprland 的实时重载特性。
它和 Sway / wlroots 混成器有什么不同?
| 维度 | Hyprland | Sway (基于 wlroots) |
|---|---|---|
| 底层依赖 | 完全独立,自行实现 Wayland 协议 | 依赖 wlroots,随 wlroots 迭代变动 |
| 视觉效果 | 原生支持渐变边框、模糊、动画、阴影 | 需通过第三方补丁或额外配置实现 |
| 插件系统 | 内置插件管理器 + 动态加载 | 无官方插件接口 |
| 撕裂控制 | 通过 misc:tearing 开启,降低游戏延迟 |
需要 wlroots 配合特定 GPU 驱动 |
| 配置热重载 | 保存文件即生效 | 执行 reload 命令 |
| 学习曲线 | 较高的可配置性但文档较新 | 较成熟的 i3 兼容配置语法 |
Hyprland 不试图做“i3 的 Wayland 替代”,它的配置语法独立(虽然部分概念类似),且推崇“开箱即美”。例如默认就带有圆角、透明度渐变,而 Sway 需要手动装饰。
有哪些值得注意的细节?
-
硬件兼容性:Hyprland 依赖现代 GPU 和 Mesa 驱动(>=23.0),不推荐使用 Nouveau 开源 NVIDIA 驱动。NVIDIA 用户需添加环境变量
env = WLR_NO_HARDWARE_CURSORS,1并启用nvidia-drm.modeset=1内核参数。AMD/Intel 集成显卡通常开箱即用。 -
插件生态:插件是独立的
.so文件,可通过hyprctl plugin load /path/to/plugin.so动态加载。常见插件包括:hyprsplit(多 Monado 布局)、hyprtrails(鼠标轨迹动画)。插件开发使用 C++,API 文档尚在完善。 -
IPC 接口:
hyprctl命令和 socket 方式允许脚本控制窗口、监视器、工作区。例如获取所有窗口信息:hyprctl clients;切换工作区:hyprctl dispatch workspace 3。这是自动化场景的核心工具。 -
稳定性:Hyprland 当前版本为 0.46.x(截至本文),仍处于活跃开发阶段,特性变动较快。配置文件格式偶有不兼容更新,但官方提供了迁移指南。生产环境使用建议关注 release 分支而非 git master。
-
性能调优:如果遇到掉帧,可检查
misc:vfr = true(可变刷新率),并限制动画帧率:animations:animation_fps = 60。游戏用户可启用misc:tearing = true配合fullscreen窗口规则。
适合谁?
- 已经熟悉 i3/sway/bspwm 等平铺管理器,但希望拥有更丰富的视觉定制(动画、模糊、渐变)而不想依赖大量第三方补丁。
- 愿意投入时间阅读文档和配置文件,接受可能遇到的临时 bug。
- 需要插件扩展功能,例如自定义布局算法、鼠标手势等。
- 对 Wayland 前沿特性(如 VRR、tearing 控制)有刚需的游戏玩家或多显示器用户。
不适合:追求最大稳定性的生产环境;仅需基础平铺功能而不关心外观的用户(Sway 更轻便);显卡驱动不满足要求的旧硬件。