在我的 macOS 使用经验中,一直被窗口切换所困扰。我尝试过市面上许多工具,大致可分为两类:
- 模仿 Windows 的 Alt+Tab 功能的(如 AltTab, HyperSwitch 等)列表形式展示所有窗口文字信息的(如 Contexts 等)
我总结了这么几个问题:
隐私; 辅助功能权限
能获取到的数据是可怕的,被授予此权限的应用可以监听你的键盘的每次输入, 如果这个应用不是开源的, 那谁能保证它会不会收集你的信息另作他用? 如果这个应用还需要录屏权限(显示预览图的应用这个权限是必须的), 那可能会更严重
预览图; 当切换器基于预览图,而我在使用 IDE 时, 预览图不能让我快速认出哪个窗口是我想要的, 因为对于代码而言的预览图是几乎不可用的, 而这个场景几乎占据了我使用时间的 80%;
文字信息; 既然预览图不行, 那我看文字信息行不行呢? 答案是依然不完美, 以 vscode 为例, 当你打开的是一个代码文件时, 窗口标题是这种画风: DeliveryPendingAndRedemptionService.java——pending
, 这时对我而言能让我快速分辨目标窗口的是项目名,也就是——
后面的内容; 不同的 IDE 项目名在窗口标题中处于的位置又是不同的, 比如 IDEA 的项目名就在开头; 同时支持自定义切换器视图文字信息提取和指定应用提取规则的应用以我的了解基本没有
我习惯使用系统自带的[command + 反引号]来在一个应用内(比如 VSCode)切换窗口, 当同一个应用打开了两个以上的窗口时, 这个功能就缺少了一些提示信息和切换方式让我快速切换到目标窗口
综上, 我开源了一个 macOS 窗口切换器 DevSWitcher2
官网: DevSWitcher2
特点:
- 摒弃掉预览图; 采用图标 + 丰富的文字信息 让切换时可以快速获取到关键信息分离
应用内窗口切换
和应用间窗口切换
, 我这么设计的原因是在切换窗口时, 90%的情况都是清楚到底是要应用内还是应用间切换的, 因此分离两个场景反而会提高效率(两套快捷键)支持针对每个应用设置不同的关键信息提取策略, 提供配置信息一键导出和导入的功能虽然依然需要辅助功能权限, 但代码开源透明, 不会收集和发送使用者的任何信息, 没有任何网络请求的代码切换器 UI 简洁现代(SwiftUI 写的,是否能支持液态玻璃我不确定,主力机还不敢升级 26,欢迎 V 友尝试)优化后的内存占用调度: 后台内存占用不超过 40MB(切换器视图出现时会有个峰值内存占用,但也在 90MB 左右,且切换完成后内存占用会迅速降回来)帖子很长了我就不贴图, 官网和 Github 都有预览图, 应用只有 2.5M
求各位 V 友在 Github 给个星星, 欢迎下载使用提出任何建议~