# YeMacNewDock **Repository Path**: AsionTang/ye-mac-new-dock ## Basic Information - **Project Name**: YeMacNewDock - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-25 - **Last Updated**: 2026-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YeMacNewDock YeMacNewDock 是一个 macOS 应用程序,用于增强和管理 macOS 程序坞(Dock)的功能,提供更灵活的应用程序管理体验。 为了解决 - 系统Dock程序坞上无法移除或隐藏很多常开的APP图标(例如QQ,远程控制软件等等明明状态栏就有对应图标了), - 看着心烦,影响到牛马干活的心情. - 所以叫AI写了一个小工具, - 将黑名单外的已打开的APP图标显示到状态栏,点击头上的图标即可打开对应APP. - 然后就可以将系统程序坞Dock隐藏起来了. - 不到需要启动新APP的时候,就完全看不到心烦的玩意了. ## 项目结构 项目包含以下主要组件: 1. **Shell 脚本** - `final_solution_dock_apps.sh`: 列出正在运行且在程序坞显示图标的应用程序 - `list_running_dock_apps.sh`: 另一种实现方式的应用程序列表脚本 2. **Swift 应用程序** (`YeMacNewDock`) - 主应用程序,提供更丰富的功能和用户界面 ## 功能特性 ### Shell 脚本功能 - 列出所有正在运行且在程序坞中显示图标的应用程序 - 处理中英文名称映射(如访达/Finder、终端/Terminal等) - 支持模糊匹配应用名称 ### Swift 应用程序功能 - 📊 **Dock 应用程序列表**:显示所有在程序坞中的应用程序及其详细信息 - 📝 **状态栏集成**:在菜单栏显示应用程序图标,方便快速访问 - 🎨 **自定义 Dock**:提供自定义程序坞功能 - 📋 **应用信息展示**:显示应用程序的 Bundle ID、路径、状态等详细信息 - 🚫 **黑名单管理**:可配置不显示在状态栏的应用程序 - 📜 **日志记录**:记录应用程序运行日志,便于调试和问题排查 ## 安装步骤 ### 1. 克隆或下载项目 ```bash git clone cd YeMacNewDock ``` ### 2. 运行 Shell 脚本 直接执行脚本即可: ```bash # 方式1:使用 final_solution_dock_apps.sh chmod +x final_solution_dock_apps.sh ./final_solution_dock_apps.sh # 方式2:使用 list_running_dock_apps.sh chmod +x list_running_dock_apps.sh ./list_running_dock_apps.sh ``` ### 3. 编译和运行 Swift 应用程序 #### 前置条件 - macOS 13.0 或更高版本 - Swift 6.2 或更高版本(Xcode 15 或更高版本) #### 编译步骤 ```bash cd YeMacNewDock swift build ``` #### 运行应用程序 ```bash # 方式1:直接运行 swift run # 方式2:使用提供的命令脚本 chmod +x YeMacNewDock.start.command ./YeMacNewDock.start.command ``` ## 使用方法 ### Shell 脚本使用 执行脚本后,将显示正在运行且在程序坞中显示图标的应用程序列表,例如: ``` 正在运行且在程序坞显示图标的应用程序列表: --------------------------------------- - Finder - Terminal - Safari - Mail --------------------------------------- 脚本执行完成! ``` ### Swift 应用程序使用 #### 首次运行设置 1. 第一次运行应用程序时,macOS 会提示需要辅助功能权限 2. 打开 **系统偏好设置** > **安全性与隐私** > **辅助功能** 3. 点击锁图标解锁设置 4. 勾选 "YeMacNewDock" 以授予辅助功能权限 5. 重启应用程序 #### 主要功能使用 1. **查看应用程序列表**:应用程序启动后,将在状态栏显示图标 2. **查看应用详细信息**:通过状态栏菜单访问应用程序列表和详细信息 3. **管理黑名单**:编辑配置文件来自定义不显示在状态栏的应用程序 #### 输出应用程序 ID 列表 应用程序提供了 `printAppIDList()` 函数,可以输出所有应用程序的详细信息,包括 Bundle ID,这对于配置黑名单非常有用。 ## 配置说明 ### 黑名单配置 应用程序使用黑名单机制来控制哪些应用程序不显示在状态栏。配置文件位于: ``` ~/Library/Application Support/YeMacNewDock/config.json ``` #### 配置文件格式 ```json { "blacklist": [ "com.tencent.qq", "com.youqu.todesk.mac", "com.philandro.anydesk", "com.kkrainbow.easytier", "com.oray.sunlogin.macclient", "com.apple.finder", "com.apple.Trash", "com.apple.dashboard" ] } ``` #### 添加应用到黑名单 1. 首先获取应用程序的 Bundle ID: - 运行应用程序 - 使用菜单或快捷键触发应用程序 ID 列表输出 - 找到目标应用程序的 Bundle ID 2. 编辑 `config.json` 文件,将 Bundle ID 添加到黑名单数组中 3. 重启应用程序使配置生效 ## 技术实现 ### Shell 脚本 脚本使用以下技术: - `osascript`: 执行 AppleScript 以获取 Dock 应用程序信息 - `lsappinfo`: 获取正在运行的应用程序信息 - `grep` 和 `awk`: 处理文本和过滤结果 ### Swift 应用程序 应用程序使用以下技术和框架: - **Swift 6.2**: 主要开发语言 - **AppKit**: macOS 应用程序框架 - **Carbon**: 用于处理系统事件 - **Accessibility API**: 获取 Dock 应用程序信息 - **JSON 序列化**: 处理配置文件 - **FileManager**: 管理文件系统操作 ## 系统要求 - macOS 13.0 (Ventura) 或更高版本 - Swift 6.2 或更高版本 - 辅助功能权限(必须) ## 故障排除 ### 无法获取 Dock 应用程序信息 如果应用程序无法获取 Dock 应用程序信息,请检查: 1. 是否已授予辅助功能权限 2. 应用程序是否已正确安装 3. 查看日志文件了解详细错误信息: ``` ~/Library/Application Support/YeMacNewDock/YeMacNewDock.log ``` ### 应用程序图标不显示在状态栏 如果应用程序图标不显示在状态栏,请检查: 1. 应用程序是否正在运行 2. 黑名单配置是否包含了当前应用 3. 系统状态栏是否已满 ## 日志文件 应用程序会记录运行日志到以下位置: ``` ~/Library/Application Support/YeMacNewDock/YeMacNewDock.log ``` 日志包含应用程序的启动、退出信息以及运行过程中的各种事件和错误信息。 ## 开发说明 ### 项目结构 ``` YeMacNewDock/ ├── final_solution_dock_apps.sh # Shell 脚本实现方式1 ├── list_running_dock_apps.sh # Shell 脚本实现方式2 ├── YeMacNewDock/ # Swift 应用程序 │ ├── Package.swift # Swift 包配置 │ ├── Sources/ │ │ └── YeMacNewDock/ │ │ ├── CustomDock.swift # 自定义 Dock 功能 │ │ ├── YeMacNewDock.swift # 主应用逻辑 │ │ ├── SingleInstance.swift # 单实例管理 │ │ ├── StatusBarApp.swift # 状态栏应用 │ │ └── default_config.json # 默认配置文件 │ └── YeMacNewDock.start.command # 运行脚本 └── README.md # 项目说明文件 ``` ### 构建和测试 ```bash cd YeMacNewDock # 构建应用程序 swift build # 清理构建产物 swift package clean ``` ## 许可证 本项目采用许可证,详情请查看 [LICENSE](LICENSE) 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。 ## 联系方式 如有问题或建议,请通过以下方式联系: - 提交 Issue --- **注意**:本应用程序使用了 macOS 的 Accessibility API,需要您在系统偏好设置中授予相应的权限。请确保您理解并同意授予这些权限。