
Tinycast 系统设置面板直达把 macOS System Settings 变成可搜索、可快捷键调用的启动器条目【免费下载链接】tinycastTinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.项目地址: https://gitcode.com/GitHub_Trending/ti/tinycastTinycast 是一款完全原生的 macOS 启动器它将 macOS 的「系统设置」System Settings面板直接纳入启动器条目体系输入bluetooth或display即可一键直达对应面板无需先打开设置再逐个翻找。本文基于仓库文档 system-settings.md结合 Tinycast 的扫描、启动与设置界面源码完整讲解其用法、快捷键、配置项与底层实现原理。从启动器直达系统设置面板在 Tinycast 的启动器Launcher中macOS 系统设置的各个面板Pane被当作普通启动器条目处理。当你输入bluetooth、display等关键词时匹配到的面板会直接出现在结果中按下回车即可打开对应面板跳过了「打开系统设置 → 在侧边栏里逐项寻找」的繁琐过程。这些面板条目拥有独立的System Settings分区位置紧随 Applications应用分区之后。面板名称跟随你 Mac 的系统语言显示例如中文系统显示中文面板名同时英文名称依然可以匹配无论系统语言如何你都可以用英文关键词搜到对应面板。条目的命名与多语言匹配从源码看面板名称的本地化处理位于 SettingsPaneScanner.swift扫描器读取每个扩展的Info.plist中的显示名AppDisplayName.inInfo与开发区域CFBundleDevelopmentRegion再通过BundleLocalization.names按当前语言生成候选名称列表写入条目的alternateNames。随后 AppIndex.swift 会把这些本地化名称并入索引实现「中文系统用英文名也能搜到」的双语匹配。Actions面板条目的操作方式选中某个系统设置面板条目后可以使用以下操作操作快捷键打开系统设置面板return在 Finder 中显示⌘return添加到 / 移出收藏⇧⌘F重置排名—从搜索中隐藏⇧⌘H其中「在 Finder 中显示」会定位到该面板对应的扩展包文件.appex方便查看其所属的 ExtensionKit 扩展「重置排名」用于清除 Tinycast 对该条目的使用频率学习让搜索结果恢复初始排序「从搜索中隐藏」则把该面板从搜索结果里移除但不影响已配置的快捷键。SettingsSystem Settings 配置面板在Settings → System Settings设置 → 系统设置中Tinycast 列出所有扫描到的设置面板并提供以下配置项Enable System Settings启用系统设置位于列表顶部的总开关关闭后所有设置面板条目将从搜索中移除并且它们配置的快捷键全部失效每个面板的独立复选框只将该面板从搜索中隐藏不影响其他面板全局快捷键录制器每个面板一行可为经常打开的面板录制全局快捷键别名alias字段每个面板可配置自定义别名便于用自己习惯的关键词搜索。为什么值得配置快捷键给经常打开的面板绑定快捷键是使用这个设置页最主要的价值场景。比如在演示/投影前经常需要打开「显示器」Displays面板调整分辨率给它录一个全局快捷键即可在任何应用中一键唤起比先呼出启动器再输入关键词更直接。界面实现位于 SystemSettingsSettingsView.swift它复用了通用的 LauncherItemsSection.swift 组件顶部是「Enable System Settings」总开关visibility.setKindEnabled按类别整体开关下方是带搜索过滤字段的面板列表。每一行由 LauncherItemRow.swift 渲染行内依次是图标、别名输入框、快捷键录制器ShortcutRecorder与「在启动器中显示」复选框。值得注意的是该列表不会被可见性过滤——即使某面板被隐藏它依然会留在设置列表里方便你随时重新开启。源码解析设置面板是如何被扫描识别的扫描目录与扩展点标识macOS 的设置面板以 ExtensionKit 扩展的形式存在于系统目录中。Tinycast 的 SettingsPaneScanner.swift 扫描/System/Library/ExtensionKit/Extensions目录并依据扩展点标识com.apple.Settings.extension.ui来判定某个.appex是否是一个设置面板private static let extensionsDir URL( fileURLWithPath: /System/Library/ExtensionKit/Extensions) private static let settingsExtensionPoint com.apple.Settings.extension.ui识别逻辑在 isSettingsPane(info:) 中同时兼容新版 ExtensionKitEXAppExtensionAttributes→EXExtensionPointIdentifier与旧版NSExtensionNSExtensionPointIdentifier两种 Info.plist 声明方式保证不同 macOS 版本下都能正确识别。名称与图标覆写部分面板的扩展包自带显示名存在缺失或占位问题扫描器提供了两套覆写表SettingsPaneScanner.swiftnameOverrides修正显示名例如com.apple.Battery-Settings.extension→ Battery、com.apple.HeadphoneSettings→ HeadphonesiconOverrides修正图标例如 Battery 面板使用com.apple.graphic-icon.battery内容类型图标、Headphones 使用headphones符号避免显示 ExtensionKit 的占位砖块。另外skippedBundleIDs集合用于排除不该出现在启动器中的上下文型/一次性面板当前为空集。缓存与排序由于设置面板只在系统更新时才会变化扫描器实现了按目录修改时间contentModificationDate与语言列表校验的缓存SettingsPaneScanner.swift当目录未变且语言一致时直接复用缓存一旦目录读取失败则返回空结果且不缓存保证下次能重试。扫描结果按显示名做本地化大小写不敏感排序SettingsPaneScanner.swift并作为AppIndex的paneCache参与整个索引构建AppIndex.swift。打开面板的底层机制当你对设置面板条目按回车时Tinycast 调用 AppLauncher.openSettingsPane(bundleID:)MainActor static func openSettingsPane(bundleID: String) { guard let url URL(string: x-apple.systempreferences: bundleID) else { return } NSWorkspace.shared.open(url) }即通过x-apple.systempreferences:这个系统私有 URL scheme携带面板的CFBundleIdentifier交给NSWorkspace打开系统会直接定位到对应的设置面板而不是只打开设置应用的首页。这也是「输入display直达显示器设置」能实现的根因——每个面板条目背后都持有自己的 bundle ID。与此对应面板条目在索引中的hotKeyAction被定义为.settingsPane(bundleID:)见 AppIndex.swift因此全局快捷键同样通过 bundle ID 精确唤起指定面板。快捷键录制规则与生效边界设置面板的快捷键录制与 Tinycast 其他条目的快捷键完全一致详细规则参见 Hotkeys核心要点如下快捷键在设置界面中每个条目的行内录制录制成功后会在启动器对应行上以键帽keycap形式展示录制器不是普通文本输入框点击后直接按下你想要的组合键即可若快捷键已被占用会弹出提示气泡并明确指出占用者录制过程无需任何权限只有部分快捷键的「使用」才需要辅助功能Accessibility权限支持双击修饰键⌃、⌥、⇧、⌘之一作为快捷键形式隐藏条目不会关闭其快捷键无论是取消行内复选框还是按⇧⌘H都只影响搜索展示只有「Enable System Settings」总开关才会一次停用该分类下所有面板的快捷键。快捷键配置会包含在 备份 中若某个面板在你未运行 Tinycast 时被系统移除相关快捷键会在下次启动时自动清理。延伸阅读收藏、隐藏、别名等通用条目能力launcher 文档、aliases、favorites快捷键录制完整规则双击修饰键、Hyper 键等Hotkeys 参考启动器架构总览architecture【免费下载链接】tinycastTinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.项目地址: https://gitcode.com/GitHub_Trending/ti/tinycast创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考