首页
/ yabai窗口管理器的规则系统重构与功能增强

yabai窗口管理器的规则系统重构与功能增强

2025-05-07 02:18:12作者:齐冠琰

yabai是一款macOS平台上的平铺式窗口管理器,在7.0.0版本中对规则系统进行了重大重构,引入了更灵活的窗口管理方式。这次更新主要解决了规则系统的两个核心问题:一次性规则的应用和现有窗口的即时规则应用。

规则系统的新特性

新版本引入了两个关键功能改进:

  1. 一次性规则(--one-shot):允许用户创建仅在首次匹配时生效的规则,之后自动移除。这在需要临时调整窗口布局时非常有用,避免了永久规则对后续窗口的持续影响。

  2. 即时应用规则(--apply):新增的命令可以直接将规则应用到当前已存在的窗口,而不仅仅是新创建的窗口。这解决了之前版本中规则只能影响新创建窗口的限制。

技术实现细节

在底层实现上,yabai现在支持四种规则应用场景:

  1. 永久规则:通过--add创建,持续影响所有匹配的新窗口
  2. 一次性规则:通过--add --one-shot创建,仅影响首次匹配的窗口
  3. 即时应用现有规则:通过--apply命令将已存储的规则应用到当前窗口
  4. 即时创建并应用临时规则:通过--apply直接指定规则参数应用到当前窗口

使用场景示例

对于开发者来说,这些新特性特别有用:

  • 开发环境快速搭建:可以编写脚本创建一个包含终端和代码编辑器的特定布局,使用一次性规则确保只影响当前工作区
  • 临时工作区配置:在需要专注工作时,可以临时应用特定规则来优化窗口布局,而不会影响后续的默认行为
  • 系统启动配置:可以在系统启动时应用特定的窗口布局规则,而不会将这些规则永久化

注意事项

在使用新规则系统时需要注意:

  1. 当窗口匹配多个规则时,所有相关规则的效果会被合并后应用
  2. 对于会创建多个窗口的应用程序(如终端恢复多个会话),一次性规则会应用到所有相关窗口
  3. 对于有启动画面的应用程序,可能需要通过窗口标题等属性进行更精确的规则匹配

迁移指南

从6.x升级到7.0.0版本时,用户需要注意:

  • 之前仅使用--add的命令现在可能需要配合--apply来确保规则应用到现有窗口
  • 一次性规则功能为新特性,需要更新相关脚本才能使用
  • 规则匹配逻辑保持不变,但应用方式更加灵活

这次更新显著增强了yabai的灵活性和实用性,为用户提供了更精细的窗口控制能力,同时也为更复杂的窗口管理场景提供了解决方案。

登录后查看全文
热门项目推荐
相关项目推荐