☰
HyprMod窗口规则、层级规则与工作区规则编辑器:从入门到精通的完整指南
2026/10/15 20:12:40 网站建设 项目流程

【免费下载链接】hyprmod

Native GTK4/libadwaita settings app for Hyprland.

项目地址:https://gitcode.com/gh_mirrors/hy/hyprmod
点击查看免费下载

如果你在使用 Hyprland 动态平铺窗口管理器,一定知道手动编辑hyprland.conf来写windowrule、layerrule和workspace有多繁琐。HyprMod是一款为 Hyprland 打造的 native GTK4/libadwaita 图形设置应用,内置窗口规则、层级规则与工作区规则三大编辑器:可视化选择匹配条件、勾选常见效果、实时预览配置文件行,并支持一键推送到运行中的 Hyprland 即时生效——从此告别逐字敲正则。

一、为什么需要可视化规则编辑器?

在 Hyprland 中,规则(Rules)是定制体验的核心:

  • 窗口规则(windowrule):让特定窗口浮动、置顶、调节透明度、指定打开到某工作区;
  • 层级规则(layerrule):美化状态栏、通知、启动器、锁屏等 layer-shell 表面,加背景模糊、调渲染顺序;
  • 工作区规则(workspace):把工作区绑定到特定显示器、设置默认工作区、独立调整边距和装饰。

手写这些规则时,正则写错一个字符、参数顺序弄反,就可能导致整份配置加载失败。HyprMod 的规则编辑器通过三个设计解决了这个问题:

  1. 引导式下拉——常见的匹配键和效果都已编目,直接选择即可;
  2. 实时预览——对话框底部始终显示即将写入的完整配置行(如windowrule = match:class ^(firefox)$, float on);
  3. Live 应用——点击 Apply 后规则立即推送到运行中的 Hyprland,无需重启或 reload 就能看到效果。

二、三类规则速览对比

维度窗口规则层级规则工作区规则
配置关键字windowrulelayerruleworkspace
匹配对象窗口(class / title / XWayland / 焦点等)Layer 表面(按 namespace 正则)工作区(数字 / 命名 / 范围 / 特殊)
典型效果浮动、透明度、圆角、禁模糊、指定工作区背景模糊、调暗周围、渲染顺序、动画绑定显示器、持久化、边距、边框、默认名称
页面源码hyprmod/pages/window_rules.pyhyprmod/pages/layer_rules.pyhyprmod/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.

项目地址:https://gitcode.com/gh_mirrors/hy/hyprmod
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询