适用于 macOS 的简单窗口管理和应用切换器

WinRes 应用程序

一个可为以下目的服务的 macOS 应用程序:

1. 添加键盘快捷键以移动和调整窗口大小

分配键盘快捷键以:

  1. 缩放活动窗口
  2. 最小化活动窗口
  3. 将活动窗口移至屏幕左侧
  4. 将活动窗口移至屏幕右侧

2. 用作应用程序切换器

使用键盘快捷键切换到特定应用程序。例如,分配 ⌥1 切换到浏览器,分配 ⌥2 切换到终端应用程序。 切换逻辑如下:

  1. 如果应用程序未运行,则启动应用程序
  2. 如果应用程序正在运行,但当前空间中没有应用程序的可见窗口,则打开应用程序的新窗口
  3. 如果当前空间中有可见的应用程序窗口,则切换到应用程序的窗口
  4. 如果应用程序窗口处于焦点,则切换到下一个应用程序窗口

屏幕截图

安装

转到 发行版本页面 并下载最新的应用程序版本。

如何使用

启动 WinRes 应用程序后,您应该会在菜单栏中看到它的图标。点击它并选择“设置”。 此时,该应用程序可能已经请求辅助功能权限(具体取决于您的 macOS 版本)。 酌情授予请求的权限,但没有辅助功能权限,该应用程序将无法工作。

在设置窗口中,可以为窗口操作分配键盘快捷键(例如,缩放活动窗口、最小化活动窗口等)。

此外,可以分配快捷键在应用程序之间快速切换。假设您想使用键盘快捷键打开 Google Chrome。 为此,我们需要知道 Google Chrome 应用程序的包标识符。 若要获取它,请使用以下终端命令:osascript -e 'id of app "Google Chrome"'。 该命令应返回 com.google.Chrome。在“应用包标识符”字段中指定此值, 然后点击“快捷方式”字段分配快捷方式。如果始终想要打开应用程序的新窗口,请选中“打开新窗口”复选框。

构建

若要构建 WinRes 应用程序:

  1. 在 Xcode 中打开此项目
  2. 在菜单栏中,转到 产品 > 存档
  3. 在打开的“存档”窗口中,选择所需的版本并点击“分发应用程序”
  4. 选择“复制应用程序”作为分发方式
  5. 选择名称和位置,然后点击“导出”
  6. 使用磁盘工具从上一步中创建的“应用程序”文件创建 dmg 文件,请参阅 此处 的说明

为什么

我尝试复制我在 Linux 机器上类似的窗口管理体验,但在 macOS 上。 您可能要问,为什么不使用 Rectanglercmd 等现有解决方案? 现有的解决方案非常好,但它们并未提供我正在寻找的确切体验。此外,我想要一个个人项目,所以我决定实施 WinRes 应用程序。

实施细节

WinRes 应用程序主要依赖于两个 API:

  1. 模拟键盘按下的 API,例如,模拟 Command+N 以打开新窗口
  2. 选择菜单栏项的可访问性 API,例如,选择 窗口->将窗口移至屏幕左侧 以移动窗口。为什么不使用 macOS 键盘设置中的应用程序快捷键,它基本上可以做同样的事情(允许您为菜单栏项分配键盘快捷键)?答案很简单:它对我来说不能稳定运行。有时分配的快捷键根本不起作用。因此,我改用可访问性 API 在 WinRes 应用程序中实施这些快捷键。

GitHub

点击跳转