【免费下载链接】hyprmod
Native GTK4/libadwaita settings app for Hyprland.
如果你在使用 Hyprland 动态平铺窗口管理器,一定知道手动编辑hyprland.conf来写windowrule、layerrule和workspace有多繁琐。HyprMod是一款为 Hyprland 打造的 native GTK4/libadwaita 图形设置应用,内置窗口规则、层级规则与工作区规则三大编辑器:可视化选择匹配条件、勾选常见效果、实时预览配置文件行,并支持一键推送到运行中的 Hyprland 即时生效——从此告别逐字敲正则。
一、为什么需要可视化规则编辑器?
在 Hyprland 中,规则(Rules)是定制体验的核心:
- 窗口规则(windowrule):让特定窗口浮动、置顶、调节透明度、指定打开到某工作区;
- 层级规则(layerrule):美化状态栏、通知、启动器、锁屏等 layer-shell 表面,加背景模糊、调渲染顺序;
- 工作区规则(workspace):把工作区绑定到特定显示器、设置默认工作区、独立调整边距和装饰。
手写这些规则时,正则写错一个字符、参数顺序弄反,就可能导致整份配置加载失败。HyprMod 的规则编辑器通过三个设计解决了这个问题:
- 引导式下拉——常见的匹配键和效果都已编目,直接选择即可;
- 实时预览——对话框底部始终显示即将写入的完整配置行(如
windowrule = match:class ^(firefox)$, float on); - Live 应用——点击 Apply 后规则立即推送到运行中的 Hyprland,无需重启或 reload 就能看到效果。
二、三类规则速览对比
| 维度 | 窗口规则 | 层级规则 | 工作区规则 |
|---|---|---|---|
| 配置关键字 | windowrule | layerrule | workspace |
| 匹配对象 | 窗口(class / title / XWayland / 焦点等) | Layer 表面(按 namespace 正则) | 工作区(数字 / 命名 / 范围 / 特殊) |
| 典型效果 | 浮动、透明度、圆角、禁模糊、指定工作区 | 背景模糊、调暗周围、渲染顺序、动画 | 绑定显示器、持久化、边距、边框、默认名称 |
| 页面源码 | hyprmod/pages/window_rules.py | hyprmod/pages/layer_rules.py | hyprmod/pages/workspaces.py |
三、窗口规则编辑器:给应用发"特殊通行证"
窗口规则回答的问题是:"某个应用打开时,Hyprland 应该怎么特殊对待它?"
3.1 匹配条件(Matchers)
打开添加规则对话框(hyprmod/ui/window_rule_dialog.py),先填写"匹配哪些窗口"。每个匹配行由「键 + 值」组成,常用键包括:
| 键 | 说明 | 示例 |
|---|---|---|
class | 应用类名(正则) | ^(firefox)$ |
title | 窗口标题(正则) | ^(.*Mozilla Firefox)$ |
xwayland | 是否为 XWayland 窗口 | 布尔 |
float/fullscreen/pin/focus | 动态状态,运行时持续重评估 | 布尔 |
workspace/tag | 所在工作区 / 标签 | 文本 |
💡小技巧:对话框里的"Pick from Open Window"按钮会弹出窗口选择器(hyprmod/ui/window_picker.py),点一下正在运行的应用,class 正则就会自动填好——完全不用自己查类名。
3.2 效果(Actions)
下半部分是动作列表,常见预设涵盖:浮动窗口、强制平铺、全工作区置顶、居中、全屏、最大化、指定工作区/显示器、设置尺寸与位置、调节透明度、修改圆角、禁用模糊/阴影/动画、抑制空载等,另有"Custom action"入口可以手写任意 Hyprland 效果(含插件效果)。
规则的数据模型(WindowRule、Matcher、Effect及预设编目)定义在 hyprmod/core/window_rules/_model.py。
四、层级规则编辑器:状态栏与启动器的美容室
层级规则作用于 layer-shell 表面——状态栏(waybar)、通知守护(dunst/mako)、启动器(rofi/wofi)、壁纸、锁屏。匹配条件只有一个:namespace 正则(默认模式),例如^(rofi|wofi)$同时匹配两个启动器。
常见效果编目(hyprmod/core/layer_rules.py):
- Blur background——为该表面开启背景模糊;
- Dim everything else——打开启动器时调暗桌面,视觉聚焦;
- Render order——同一层级内控制谁在上层(数值越大越靠上);
- Animation style——覆盖开关动画(slide / popin / fade / none);
- Show above lockscreen——让自定义时钟等表面显示在锁屏之上。
层级规则有个天然优势:Hyprland 每帧都会重新解析动态规则(blur、dim、xray 等),所以 Apply 之后已有的表面会立即更新,无需手动干预。
五、工作区规则编辑器:让每个工作区各就各位
工作区规则把工作区选择器绑定到具体属性上,选择器支持五种形式(数字、命名、范围、按显示器、特殊工作区),编辑对话框会按类型自动适配输入控件(如数字用步进器,范围自动渲染为r[1-10])。
可覆盖的属性共 12 项(hyprmod/core/workspaces.py):
- 绑定显示器:
monitor:DP-1,并可设为该显示器的默认工作区; - 生命周期:
persistent(空了也不销毁)、on-created-empty(首次创建时执行的命令); - 外观:边框开关与宽度、圆角、阴影、装饰,以及内/外边距(支持单值或上下左右四个值);
- 命名:
defaultName自定义工作区显示名。
所有覆盖字段都是"三态"设计:未设置的字段不会写入配置行,保持"跟随全局"。Apply 时 HyprMod 会自动对已打开的工作区派发moveworkspacetomonitor/renameworkspace,让绑定和改名立即可见,而不是"下次打开才生效"。
六、进阶技巧与注意事项
⚠️规则顺序很重要:Hyprland 中规则自上而下求值,两条规则同时命中同一窗口时,靠后的规则获胜。列表顶部有明确提示,选中某一行后按Alt+↑/Alt+↓即可调整顺序。
🗂️外部规则只读展示:写在hyprland.conf或其所引入文件中的规则会显示在列表底部的独立分组,并标注来源文件与行号——HyprMod 只管理自己的配置文件,外部规则请直接编辑源文件。
💾保存才持久:新增规则是实时生效的;但删除、重排规则需要保存(页面统一保存入口)后由 HyprMod 重写配置并 reload 才完全生效。未保存的改动会汇总在 Pending Changes 页,可逐条审查后再提交。
🔄随时撤销:全应用支持Ctrl+Z逐步回退,撤销窗口规则时会同步回滚已实时应用的效果。
七、相关文件导航
| 模块 | 路径 |
|---|---|
| 窗口规则页面 | hyprmod/pages/window_rules.py |
| 窗口规则数据模型与预设 | hyprmod/core/window_rules/_model.py |
| 层级规则实现 | hyprmod/core/layer_rules.py |
| 工作区规则实现 | hyprmod/core/workspaces.py |
| 规则编辑对话框 | hyprmod/ui/window_rule_dialog.py、hyprmod/ui/layer_rule_dialog.py、hyprmod/ui/workspace_rule_dialog.py |
| 相关测试 | tests/test_window_rules.py、tests/test_layer_rules.py、tests/test_workspaces.py |
掌握这三个编辑器,你就不再需要背下windowrule = match:class …, float这类语法细节——在 HyprMod 里勾选、填值、Apply,剩下的交给它。
【免费下载链接】hyprmod
Native GTK4/libadwaita settings app for Hyprland.
相关推荐
simplewall规则编辑器完全指南:从入门到精通
simplewall规则编辑器完全指南:从入门到精通 你是否还在为复杂的网络控制工具配置而烦恼?是否想精确控制每个应用程序的网络访问权限?simplewall规
网络安全eslint-plugin-vue 规则测试编写完整指南:从入门到精通
eslint plugin vue 规则测试编写完整指南:从入门到精通 eslint plugin vue 是 Vue.js 官方提供的 ESLint 插件,用
Lint代码质量前端AdGuardHome正则表达式规则编写技巧
AdGuardHome正则表达式规则编写技巧 你是否还在为广告过滤规则不够精准而烦恼?是否想让家庭网络中的广告和第三方追踪程序无处遁形?本文将带你掌握AdGua
网络后端网络安全
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考