# MiddleQ **Repository Path**: ProgHub/MiddleQ ## Basic Information - **Project Name**: MiddleQ - **Description**: 在Mac上使用鼠标中键点击Dock栏的应用图标以快速退出该应用 - **Primary Language**: Swift - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-27 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: application-software **Tags**: None ## README

MiddleQ - MacOS Dock栏增强工具

MiddleQ Logo

MiddleQ可实现鼠标中键点击Dock栏APP图标退出该APP;左键双击APP图标显示App Exposé。
当前版本:v1.8.0 | 系统要求:macOS 13.0+

--- ## 🌟 特性亮点 - **⚡ 中键秒退**: 在 Dock 上中键(滚轮)点击已启动的应用图标即可快速退出,无需右键菜单。 - **📂 双击Exposé**: 连续左键点击 Dock 图标两次,可快速触发该应用的 App Exposé 视图,方便在多窗口间切换。 - **🚀 登录自启**: 支持登录时启动,基于现代的 SMAppService 架构(macOS 13.0+)。 - **💻 双架构支持**: Universal Binary 同时支持 Intel 和 Apple Silicon。 - **🍃 轻量级**: 菜单栏常驻,资源占用极低。 --- ## 📖 核心原理 MiddleQ 结合了 macOS 底层的 **辅助功能 (Accessibility)** 与 **事件监听 (Event Tap)** 机制: * **全局监听:** 启动后创建一个全局事件监听器,捕获鼠标中键(Button 2)和左键双击事件。 * **精准定位:** 利用坐标定位与辅助功能 API 识别鼠标下的 **Dock 项目 (AXDockItem)** 及其标题。 * **Spotlight 辅助:** 通过 `kMDItemDisplayName` 和 `kMDItemCFBundleIdentifier` 等元数据,建立更可靠的“图标标题 - Bundle ID”映射关系。 * **动态响应:** - **中键点击:** 向目标进程发送退出指令。 - **左键双击:** 通过系统指令触发 App Exposé,展示该应用的所有窗口。 --- ## ⚙️ 配置管理 ### 连接名称与身份的桥梁 有些应用在 Dock 上显示的名称(如"Visual Studio Code")与其真实的身份标识(Bundle ID)并不一致,此时使用默认的"名称匹配进程"的方式便会失效。为了解决这个"对不上号"的问题,MiddleQ 引入了一套映射系统。 ### 它的作用 配置系统主要充当 **"翻译官"**。当自动扫描无法准确关联应用图标与运行进程时,你可以通过配置管理界面,手动告诉 MiddleQ:"看到 A 这个名字,请退出 B 这个程序"。 ### 工作原理 1. **自动初始化:** 软件在启动时会自动扫描你系统中的 `/Applications` 目录和 `~/Applications` 目录 ,将大多数应用的名称与它们的唯一身份标识(Bundle ID)建立初步映射。 2. **配置优先:** 然后软件会加载配置文件中的映射关系,其优先级高于软件自动扫描的结果。 3. **动态更新:** 当你通过配置界面修改配置后,MiddleQ会自动保存并加载新的映射。 ### 配置管理界面 现在,你可以通过图形化界面轻松管理应用映射: 1. 点击菜单栏图标 > **"添加配置"** 2. 在打开的配置窗口中,你可以: - **添加映射**:点击"添加"按钮,输入应用名称(⚠️**注意:这里一定要输入Dock栏中实际显示的应用名称**)和Bundle ID,或直接拖放应用程序到输入区域自动获取信息 - **删除映射**:选中要删除的映射,点击"删除"按钮 - **查看现有映射**:配置窗口会显示当前所有的应用映射关系 - **打开配置文件夹**:打开配置文件夹查看配置文件,配置文件为json格式,编辑保存后会被自动加载 ### 配置文件位置 配置数据存储在以下位置: ``` ~/Library/Application Support/MiddleQ/config.json ``` > 💡 **提示**: 大多数应用的映射关系已被自动扫描添加,仅在特殊情况下需要手动配置。 > 📝 **注意**: 虽然配置文件仍然存在,但现在推荐通过图形化配置界面进行管理,无需手动编辑JSON文件。 --- ## 📦 安装 ### 方法一:下载预编译版本(推荐) 1. 从 [Releases](https://gitee.com/ProgHub/MiddleQ/releases) 页面下载最新的 `.dmg` 文件 2. 双击打开 DMG 文件 3. 将 `MiddleQ.app` 拖拽到 `Applications` 文件夹 4. 首次运行时系统会提示辅助权限授权与通知授权 - 辅助权限:为了在鼠标中键点击Dock应用图标时,获取图标的标题 - 通知权限:为了在修改完配置文件并加载成功时能有所体现 ### 方法二:源码编译 ```bash # 克隆仓库 git clone https://github.com/yourusername/MiddleQ.git cd MiddleQ # 授权脚本可执行权限 chmod +x build.sh chmod +x package_dmg.sh # 编译应用(如果需要自定义版本号,可以先修改version.txt中的版本号,执行脚本会自动同步到应用配置) ./build.sh # 打包为 DMG(可选) ./package_dmg.sh ``` 编译产物: - `MiddleQ.app` - 拖动到应用程序目录即可直接运行的应用 - `MiddleQ_v1.3.0.dmg` - 安装包(用于分发) --- ## 🚀 使用方法 ### 菜单栏功能 点击菜单栏的 🖱️ 图标可以访问以下功能: | 功能 | 快捷键 | 说明 | |----------------|------|--------------------| | **登录时启动** | - | 开启/关闭登录时启动 | | **双击显示窗口** | - | 开启/关闭双击 Dock 图标触发 App Exposé | | **中键退出应用** | - | 开启/关闭中键点击 Dock 图标退出应用 | | **刷新映射** | `⌘R` | 软件启动后新安装的应用如果无效时,可点击此功能进行刷新 | | **添加配置** | `⌘C` | 打开图形化配置界面,可添加或删除应用映射 | | **查看日志** | `⌘L` | 打开日志文件夹,查看日志 | | **退出 MiddleQ** | `⌘Q` | 完全退出应用 | --- ## 🔒 安全性和权限 - **辅助功能权限**:用于监听鼠标事件及获取 Dock 元素信息。 - **通知权限**:用于在配置文件自动加载成功时提醒用户。 - **隐私承诺**:✅ **零数据收集** | ✅ **零网络连接** | ✅ **完全开源**。 --- ## 📄 许可证 本项目采用 **MIT 许可证** - 查看 [LICENSE](LICENSE) 文件了解详情。 --- ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - **Issues**: [提交问题](https://gitee.com/ProgHub/MiddleQ/issues) - **邮箱**: wang.chaofan@foxmail.com ---

Made with ❤️ for macOS users
版本:1.8.0 | 最后更新:2026-04-23