AutoRaise窗口排除策略:如何智能管理特定应用和窗口标题
【免费下载链接】AutoRaiseAutoRaise (and focus) a window when hovering over it with the mouse项目地址: https://gitcode.com/gh_mirrors/au/AutoRaise
AutoRaise是一款能够在鼠标悬停时自动激活并聚焦窗口的实用工具,极大提升了多窗口操作效率。但在实际使用中,我们可能需要排除某些应用或特定窗口,避免误激活影响工作流程。本文将详细介绍AutoRaise的窗口排除策略,帮助你精准掌控窗口管理。
核心排除功能解析 🧩
AutoRaise提供了两种主要排除机制:应用排除和窗口标题排除,通过这两种方式可以灵活控制哪些窗口不会被自动激活。这些功能通过代码中的ignoreApps和ignoreTitles数组实现,支持通过配置文件或命令行参数进行自定义。
在AutoRaise的核心代码中(AutoRaise.mm),我们可以看到排除逻辑的实现:
bool needs_raise = !invertIgnoreApps && mouseWindowPresent; // ... if (needs_raise && titleEquals(_mouseWindow, @[NoTitle, Untitled])) { needs_raise = is_main_window(_mouseWindowApp, _mouseWindow, is_pwa(...)); if (verbose && !needs_raise) { NSLog(@"Excluding window"); } } else if (needs_raise && titleEquals(_mouseWindow, @[BartenderBar, Zim, AppStoreSearchResults], ignoreTitles)) { needs_raise = false; if (verbose) { NSLog(@"Excluding window"); } } else if (mouseWindowPresent) { if (titleEquals(_mouseWindowApp, ignoreApps)) { needs_raise = invertIgnoreApps; // ... } }应用排除:完整屏蔽特定程序 🚫
基础排除方法
应用排除功能允许你完全屏蔽指定应用的窗口自动激活。默认情况下,AutoRaise已经排除了一些系统应用,如辅助控制(AssistiveControl)。你可以通过以下方式添加自定义排除项:
命令行参数:启动时使用
-ignoreApps参数指定要排除的应用名称,多个应用用逗号分隔:./AutoRaise -ignoreApps "Calculator,Stickies"配置文件:在用户主目录下创建
.AutoRaise文件或.config/AutoRaise/config文件,添加以下内容:ignoreApps=Calculator,Stickies,Photos
排除规则与生效机制
- 应用名称区分大小写,需与应用的实际名称完全匹配
- 排除列表会自动包含系统默认排除项(如AssistiveControl)
- 可以通过
-invertIgnoreApps true参数反转排除规则,仅激活列表中的应用
窗口标题排除:精准过滤特定窗口 🔍
标题排除的高级应用
窗口标题排除功能允许你根据窗口标题来过滤,支持正则表达式匹配,比应用排除更加灵活。例如,你可以排除所有标题包含"设置"的窗口,或精确排除某个特定窗口。
设置方法同样支持命令行和配置文件:
命令行:
./AutoRaise -ignoreTitles "Search results,Untitled"配置文件:
ignoreTitles=Search results,Untitled,.*Preferences
正则表达式的强大功能
AutoRaise的窗口标题排除支持完整的正则表达式语法,让你可以创建复杂的匹配规则:
.*Preferences:排除所有标题以"Preferences"结尾的窗口^Terminal - .*:排除所有以"Terminal - "开头的终端窗口^$:排除无标题窗口
特殊窗口处理策略 🛠️
全屏窗口与对话框
AutoRaise会自动识别并特殊处理全屏窗口和对话框:
- 全屏窗口不会被排除,始终可以被激活
- 对话框窗口(如系统设置中的偏好设置面板)会被自动识别并排除
保持焦点的应用
通过stayFocusedBundleIds参数,你可以指定某些应用始终保持焦点,不会被其他窗口激活:
./AutoRaise -stayFocusedBundleIds "com.apple.Terminal,com.microsoft.VSCode"临时禁用AutoRaise的快捷方法 ⏸️
除了永久排除,AutoRaise还提供了临时禁用功能:
- 默认使用Control键临时禁用自动激活(可通过
-disableKey参数修改为Option键) - 按住禁用键时,鼠标悬停不会触发窗口激活
- 可以通过
-invertDisableKey true反转禁用逻辑,即按住指定键时才激活AutoRaise功能
配置文件的完整示例 📝
以下是一个完整的.AutoRaise配置文件示例,展示了如何组合使用各种排除策略:
# 基础设置 delay=2 pollMillis=50 verbose=false # 应用排除 ignoreApps=Calculator,Stickies,Photos,Podcasts # 窗口标题排除(支持正则表达式) ignoreTitles=Search results,Untitled,.*Preferences # 保持焦点的应用 stayFocusedBundleIds=com.apple.Terminal,com.microsoft.VSCode # 临时禁用键 disableKey=control # 反转排除规则(仅激活列表中的应用) # invertIgnoreApps=true故障排除与最佳实践 💡
排除不生效的常见原因
- 应用名称不匹配:确保使用应用的实际名称,而非进程名或 bundle ID
- 正则表达式错误:复杂正则表达式可能存在语法问题,建议先在在线工具中测试
- 配置文件位置错误:确保配置文件位于
~/.AutoRaise或~/.config/AutoRaise/config - 权限问题:AutoRaise需要辅助功能权限才能正常工作,可在系统设置中检查
推荐排除列表
根据用户经验,以下应用和窗口类型通常建议排除:
- 系统工具:计算器、日历、提醒事项
- 浮动窗口:Bartender、系统通知中心
- 临时窗口:搜索结果、文件选择对话框
- 全屏应用:视频播放器、演示文稿软件
通过合理配置AutoRaise的排除策略,你可以打造更加智能、高效的窗口管理体验,让AutoRaise真正成为提升工作效率的得力助手。
【免费下载链接】AutoRaiseAutoRaise (and focus) a window when hovering over it with the mouse项目地址: https://gitcode.com/gh_mirrors/au/AutoRaise
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考