Hyprland 0.57 让配置说上 Lua:窗口能抖、模糊可换、边框规则细到单个窗口

Hyprland 0.57 让配置说上 Lua:窗口能抖、模糊可换、边框规则细到单个窗口

前天
duguying
3 阅读
来源:GitHub

完全独立的 Wayland 合成器 Hyprland 发布 v0.57.0:Lua 配置 API 补齐、窗口抖动与可切换模糊变体上线,.conf 弃用提示之下,配置正在从改文件变成写程序。

相关标签

#GitHub#Trending#Linux#Wayland#Hyprland

Hyprland 0.57 让配置说上 Lua:窗口能抖、模糊可换、边框规则细到单个窗口

Wayland 合成器里的异类 Hyprland 发了 v0.57.0,10 月 28 日。它昨天新增 509 星,总星数 39,969,C++ 写成,BSD-3-Clause 许可。

这个项目一直自称”100% 独立”——不用 wlroots,不用 libweston,不基于 kwin 或 mutter,从渲染到输入都自己实现。代价是兼容性要自己扛,回报是它能做别人不敢做的特效和配置粒度。0.57 把这两条路都往前推了一步。

配置层正在变成一层 API

发布说明里最密集的一组条目都带 config/lua 前缀:新增 reload_config()、hl.get_devices()、minimize 事件、window.update_state,还修了一批 Lua 侧的问题——空对象构造不再得到 nil、错误打印不再崩溃、spring 动画的 damping 拼写错误(写成 dampening)得到修正、非字符串错误不再触发段错误。

配合另一条常被忽略的变更就能看懂方向:从 0.56.1 起,.conf 格式的配置开始收到弃用提示。也就是说,Hyprland 正在把”改配置文件”变成”写一段能被合成器执行的程序”,窗口状态、设备列表、最小化事件都能在配置层被订阅和处理。

配置系统本身也补了缺口:config.unload 事件可以在卸载配置时做清理;新增 layers 配置分类,把两个选项从长期被吐槽的 misc 里挪了出来。

视觉与手感:抖动、模糊、指针变换

0.57 里最显眼的新功能是 window wobble(窗口抖动)和配套的 no_wobble 窗口规则、workspace 规则——谁都能抖,但你可以精确指定哪个窗口不抖。模糊也变活了:渲染器支持可切换的模糊变体(swappable blur variants),另有 decoration:blur:proportional 让模糊半径随窗口尺寸等比缩放,不再是大窗口一片糊。

其余视觉与交互新增:场景合成(scene composition)、指针变换(pointer transforms)、active_border 与 inactive_border 两条窗口规则(终于可以按窗口而非全局配色)、no_glow 规则、no_xdg_drags 规则、groupbar 重新支持位置拖动、binds:drag_center_window、cursor:warp_on_monitor_change、input:tablet:enabled 数位板开关、吞焦点点击(swallowing focus click),以及 changeworkspaceid 进入 socket2 的 IPC。

会话管理也有一处实用改动:systemd session target 现在可以关掉,对不用 systemd 管理会话的发行版和自建启动脚本友好得多。

它还留着的老底子

如果你第一次听说这个项目,README 里的能力清单解释了它为什么能在 Linux 桌面圈常年霸榜:贝塞尔与弹簧曲线自定义动画、内置插件管理器、面向游戏的 tearing 支持、保存即生效的配置重载、全局快捷键转发、平铺/伪平铺/浮动/全屏、special workspace(scratchpad)、窗口组(tabbed)、socket IPC、原生输入法面板支持、动态工作区。

布局是它的招牌:Dwindle、Scrolling、Master、Monocle 四种内置,加上用 Lua 写的自定义布局和插件布局,且支持按工作区指定不同布局——一个屏幕上放代码用 master,另一块屏刷网页用 dwindle,这在多数合成器里做不到。

要不要升

.conf 的弃用提示和 Lua API 的快速补齐,意味着接下来几个版本会有一批配置需要改写。这不是坏消息,但如果你是那种”装好就再也不动配置”的用户,现在是把配置迁到版本控制里的好时机——0.57 的 config.unload 事件和更完整的 Lua 错误处理,比之前适合做这件事。

安装与配置文档在项目 wiki:从发行版仓库装二进制,或按官方脚本从源码构建。

仓库地址:https://github.com/hyprwm/Hyprland

返回列表

更多资讯

想看更多优质内容?

浏览所有资讯