Tinycast Palette 完全指南:单窗口启动器的键盘导航、屏幕栈与外观定制

发布时间:2026/11/12 12:39:17

Tinycast Palette 完全指南:单窗口启动器的键盘导航、屏幕栈与外观定制 Tinycast Palette 完全指南单窗口启动器的键盘导航、屏幕栈与外观定制【免费下载链接】tinycastTinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.项目地址: https://gitcode.com/GitHub_Trending/ti/tinycastTinycast 是一个原生 macOS 启动器应用而它的整个交互都发生在一个浮动的调色板Palette窗口中启动器是根屏幕其余所有功能AI 对话、剪贴板历史、计算器历史、Emoji、文件搜索等都是从它打开的屏幕。本文以 Tinycast 官方文档为骨架结合仓库源码Tinycast/Palette 目录与 AppSettings.swift深入讲解这个调色板窗口的键盘导航体系、Tab 三屏循环、屏幕栈机制、打开位置控制、外观设置与输入源切换读完你就能像快捷键专家一样驾驭 Tinycast并理解其背后的实现原理。一个面板承载一切Tinycast 的单一窗口哲学Almost everything Tinycast does happens in one floating panel. 几乎 Tinycast 的所有功能都发生在同一个浮动面板中。每个功能要么是启动器launcher即根屏幕要么是从启动器打开的屏幕。esc键负责沿着你来的路径逐级后退——这正是屏幕栈模型的体现。从源码看PaletteState.swift 中维护了一个backStack: [PaletteFrame]每次打开新屏幕时push(mode:)将当前屏幕连同查询文本与选中行一起压栈按esc时pop()恢复下层屏幕的mode、query与selection实现回去就像从未离开过的体验。移动与操作核心快捷键一览按键作用return对当前选中项执行主操作⌘return第二操作通常是在 Finder 中显示或复制⌘K为当前选中项打开动作菜单Actions menu↑↓移动选中项tab在启动器、AI Chat 与剪贴板之间切换esc先清空搜索然后返回上一屏幕最后关闭窗口⌘esc从任意屏幕直接跳回根搜索delete在空搜索框中时返回上一屏幕⌘,打开设置⌘W关闭窗口⌘K是你学习这款应用的钥匙。每个屏幕都会在动作菜单中列出它的全部动作且每个动作旁都印有对应快捷键。完整的快捷键清单见 Keyboard shortcuts。在源码层面动作菜单通过 PaletteScreen.swift 的PaletteScreen协议实现每个屏幕提供actions(at:)或menuContent(at:searchQuery:menuSelection:onActivate:)返回PopoverMenuContent并支持在菜单中直接输入过滤ActionMenuSearchQuery会对菜单项标题打分见matching(_:)扩展选中行后回车即触发动作。除启动器外的每个屏幕左上角都有一个返回箭头。悬停它可以看到点击是后退一步还是关闭窗口。这是因为esc的逐级行为见下文屏幕栈使返回箭头的语义可能随栈深而变化。⌘esc需要 辅助功能Accessibility权限因为 macOS 默认占用这个组合键除非 Tinycast 先截获它。Emacs 按键如果你的手指熟悉 Emacs这些按键在整个调色板中随处可用按键等价于⌃N↓⌃P↑⌃F→⌃B←在 emoji 网格 上这四个键都移动选中项在其他任何地方⌃F和⌃B移动文本光标——因为在搜索框里这才是你通常想要的。带额外修饰键的组合如⌃⇧Q则原样保留不参与映射。从实现看这种按位置而非字符的映射贯穿整个键盘处理PaletteShortcut.swift 中resolve(command:shift:option:control:isDeleteKey:matches:)通过matches: (Character) - Bool闭包按当前布局下的按键位置来匹配字符。文档也明确指出快捷键跟随按键位置而不是输入源输出的字符。如果你使用日文、俄文或其他非拉丁布局⌘K依然是⌘K。Tab 在三屏之间循环tab在一个小循环中往返launcher启动器→ AI Chat → clipboard剪贴板→ launcher。从启动器按tab是提问。你输入的文本会被作为问题发送到一个全新的 AI 对话中所以一次按键就能把一次搜索变成一个问题。当这种情况将要发生时头部会显示AI Chat提示和一个tab键图标。从剪贴板出发你的搜索文本会随你一起回到启动器。esc按tab进来的原路退回去。当 AI 关闭时AI Chat 从循环中退出当 剪贴板历史 关闭时剪贴板从循环中退出。其他屏幕——比如计算器历史或搜索快捷链接——始终保持在循环之外。那些是你主动选择去的地方而不是应该意外降落的地方。唯一的例外当选中的行需要参数时比如一个 快捷链接 或 扩展命令tab会先遍历它的参数字段。源码中的对应实现非常精确PaletteTabAction.swift 的resolve(mode:aiEnabled:clipboardEnabled:)描述了三种动作.ask——从启动器进入 AI 时把已输入文本当作问题case .launcher: if aiEnabled { return .ask }.carryQuery(mode)——把查询文本带到另一端剪贴板 → 启动器.freshScreen(mode)——进入全新屏幕AI → 剪贴板时 AI 的半截消息不属于任何人的搜索。被关闭的功能停靠点会离开循环在代码里同样成立case .launcher:下若 AI 关闭则clipboardEnabled ? .carryQuery(.clipboard) : .carryQuery(.launcher)即直接跳过停靠点。循环的状态转移由 PaletteState.swift 的pushCarryingQuery(mode:)与resetNavigation()完成——前者压栈并切换模式后者在 Tab 回到根启动器时清空栈。屏幕如何堆叠在启动器中输入某个屏幕的名字来打开它该屏幕会堆叠在顶层因此esc会带你回到找到它的那次搜索。如果用屏幕自身的全局快捷键打开同一个屏幕它会独立打开背后没有任何东西。再次按下该快捷键则关闭它。设置 → 通用 → Escape Key Behavior退出键行为决定当搜索框已经为空时esc做什么Navigate back or close window返回或关闭窗口默认返回上一屏幕仅在根屏幕时关闭窗口。Close window and pop to root关闭窗口并回到根立即关闭下次从启动器开始。无论哪种方式第一次按下总是会先清空你输入的任何文本。源码层面PaletteEscapeAction.swift 把退出行为建模成一个按优先级排列的枚举clearMenuQuery→closeMenu→leaveArgumentField→clearQuery→exitExtensionScreen→goBack→hidePalette。解析顺序与文档描述完全一致先处理打开的动作菜单再处理参数字段比搜索框更深一层因此先退出然后清空查询最后按EscapeKeyBehavior定义在 EscapeKeyBehavior.swift决定是goBack还是hidePalette。扩展命令.extensionCommand会先弹出自己的导航栈再退出命令。该行为偏好由 AppSettings.swift 中的escapeKeyBehavior属性持久化默认.navigateBackOrClose。它在哪里打开设置 → 通用 → 外观Appearance同时包含两个位置设置。跟随光标跨显示器打开默认开启会在指针所在的显示器上打开调色板。关闭后则始终使用带菜单栏的那台显示器。对应偏好是openOnCursorScreenAppSettings.swift默认值为 true未设置时按 true 处理。拖拽重新定位默认关闭允许你移动面板。抓住搜索框上方那条细边、头部区域的空白处或空着的搜索框本身即可拖动。对应偏好paletteDraggableAppSettings.swift默认关闭注释解释了原因默认关闭这样大多数启动不会误抓它。拖动过程中虚线引导会显示默认位置当你足够近时亮起表示可以吸附。在那里松手就会吸附回默认位置在其他任何地方松手Tinycast 会记住这个位置即使重启后也仍然有效。源码揭示了位置记忆的细节PalettePlacement.swift 定义了默认锚点defaultAnchor居中、顶部边距为可见区域高度的一小部分、向下生长并以相对于当前显示器的方式存储偏移offset(of:on:)把锚点转为距左边缘的距离 距顶部的距离anchor(for:on:)再转回来。记忆的位置在 AppSettings.swift 中按显示器分别保存palettePositions: [String: [Double]]key 是显示器标识这正是跨显示器独立记忆的机制。而restored(_:graspable:visibleFrame:minimumVisible:)实现了文档中只有没有任何屏幕能再显示调色板时才丢弃记忆位置的逻辑——当显示器上可见区域过小比如拔掉了外接显示器时返回 nil从而放弃该记忆点。记忆的位置不会被包含在备份中因为窗口位置不会在不同的 Mac 之间迁移。外观Appearance设置 → 通用 → 外观包含以下设置设置项选项默认值主题Theme跟随系统 · 浅色 · 深色跟随系统界面尺寸Interface size默认 · 大 · 更大默认背景透明度Background transparency从更少到更多的滑块带重置中间紧凑模式Compact mode开 · 关关紧凑模式下显示收藏Show favorites in compact mode开 · 关开主题。跟随系统会随 macOS 的变化而切换。浅色是同一套设计反色后的结果布局、字体与动效完全一致。偏好appearance由 AppSettings.swift 持久化注释指明由AppCore.applyAppearance()应用。界面尺寸让调色板及其浮动窗口放大 10% 或 20%。设置窗口本身保持原尺寸。实现上InterfaceSize.swift 定义了三个档位standardscale 1.0、large1.1、larger1.2并通过InterfaceMetrics(scale:)把缩放注入调色板的全部度量——因此浮动窗口也随动、设置窗口不变是由指标注入范围决定的。背景透明度改变桌面的玻璃效果透出程度。重置恢复原始观感。偏好paletteTransparency在 AppSettings.swift 中按 -100 到 100 的整数夹取存储max(-100, min(100, ...))。紧凑模式将启动器打开为一条纤细的搜索栏随着你输入逐渐生长为完整列表。↓展开它并选中第一行。开启Show favorites in compact mode后你的收藏应用会位于搜索栏右侧见 Favorites。对应偏好compactMode与showFavoritesInCompactMode默认开见 AppSettings.swift。Toggle System Appearance切换系统外观 动作改变的是macOS 本身。Tinycast 只有在自己的主题设置为跟随系统时才会随之变化。输入源Input source设置 → 通用 → 自动切换输入源可以挑选一个在调色板打开期间使用的键盘布局。如果你大部分时间输入日文或中文而应用名是拉丁字母这个功能能省去每次打开启动器时的手动切换。Tinycast 会在调色板打开时切换输入源关闭时切换回来。如果它在打开期间你自己改了布局你的选择会被保留。偏好autoSwitchInputSourceIDAppSettings.swift保存布局标识设为 nil 时从 UserDefaults 移除键即不自动切换。回到根搜索Pop to root设置 → 通用 → Pop to Root Search决定窗口关闭后 Tinycast 多久回到启动器Immediately立即默认或 5、15、30、60、90 秒后。如果你经常关闭调色板后又马上回到同一屏幕可以把时间调长。对应偏好popToRootTimeoutAppSettings.swift底层枚举 AppSettings.swift 的PopToRootTimeout定义了immediately 0及 5/15/30/60/90 秒六个档位。AI Chat 对会话是否重新打开有自己的规则见 AI Chat。菜单栏Tinycast 的菜单栏图标包含Open Tinycast打开 Tinycast、Clipboard History剪贴板历史、Settings…设置…、Check for Updates…检查更新…、Support Tinycast…支持 Tinycast…和Quit Tinycast退出 Tinycast。设置 → 通用 → 在菜单栏中显示可以隐藏该图标。即使没有图标你的快捷键依然正常工作——对应偏好键showInMenuBarSettingsKey由菜单栏项和通用设置页共同读写。进一步阅读全部屏幕模式的枚举定义PaletteMode.swift其中每个模式还带有系统图标与搜索框占位符placeholder例如启动器是Search for apps and commands…、AI 是Ask anything…。调色板的快捷键解析与⌘K 动作菜单设计PaletteShortcut.swift 与 PaletteScreen.swift。窗口打开/关闭的完整状态机PaletteState.swift。官方完整快捷键参考Keyboard shortcuts。【免费下载链接】tinycastTinycast — a tiny, fully native macOS launcher, hotkeys, and clipboard history.项目地址: https://gitcode.com/GitHub_Trending/ti/tinycast创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/8 12:26:38

智能运维调用链根因分析:基于 Trace 关键路径算法

智能运维调用链根因分析:基于 Trace 关键路径算法在现代微服务与分布式中台架构中,当一次前端用户请求(如点击“立即下单”)响应耗时从平常的 80ms 飙升至 1500ms 时,分布式链路追踪系统(如 OpenTelemetry …

2026/11/8 15:45:44

Opencode接入第三方模型完整教程:安装、配置、实战与排错

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/12 22:25:38

林芝市电工证培训机构考前押题怎么选才靠谱

林芝市电工证培训机构考前押题怎么选才靠谱 怕考不过白交培训费?选对林芝市电工证培训机构和考前押题资料,直接决定你能不能一次拿证。现在市面上培训机构良莠不齐,不少人花了钱却连考试都过不了,白白浪费时间、精力和钱。本文从三门峡初次报考人员的视角…

2026/11/12 22:25:38

乡村初级电工证怎么考 2026河南最新政策怎么影响你

乡村初级电工证怎么考 2026河南最新政策怎么影响你 之前考的证在外省能不能转过来?这是很多在外地打工的电工兄弟最关心的问题。2026年河南最新政策已经明确了省外证书的转入流程,但仍然有不少人对如何顺利过渡感到困惑。作为平顶山本地劳务班组负…

2026/11/12 22:25:38

临朐考电工证多少钱官方报名入口全攻略

临朐考电工证多少钱官方报名入口全攻略 你是不是正在为找工作发愁?是不是已经听说很多岗位都要求必须有特种作业操作证才能上岗?特别是像电工证这种证书,简直是很多工程类岗位的“门槛证”。如果你是洛阳的应届工程类毕业生,又正好想从事电力相关工作,那…

2026/11/12 22:25:38

低学历也能考特种作业证?建设厅特种工工种挂靠多少钱一办

低学历也能考特种作业证?建设厅特种工工种挂靠多少钱一办 学历不高怕报不上名,这是很多人想考特种作业证时心里最怕的事。其实, 建设厅特种工工种挂靠 并不需要高学历,只要你符合年龄、健康、培训等条件,一样可以报名、考试、取证。关键是, 多少钱…

2026/11/12 22:25:38

考电工证考题模拟软件值不值得考?实操考试心里没底怕挂科

考电工证考题模拟软件值不值得考?实操考试心里没底怕挂科 实操考试心里没底怕挂科,尤其对刚接触特种作业的新手来说,考电工证的流程、题型、标准、合格率这些信息都不清楚,生怕一不小心就挂了。如果你正面临电工证考试,那么【考电工证考题模拟软件】可能…

2026/11/12 22:20:38

江西电工证报价保姆级教程:工地太忙根本没时间复习考试怎么办

江西电工证报价保姆级教程:工地太忙根本没时间复习考试怎么办 工地太忙根本没时间复习考试,这几乎是所有一线施工人员的真实写照。尤其是像电工这类特种作业岗位,持证上岗是硬性要求,一旦被查到无证上岗,轻则停工整改,重则面临罚款甚至法律责任。江西电…

2026/11/12 20:35:13

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/12 0:04:01

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘 工地太忙根本没时间复习考试?你不是一个人。作为一名在南阳卧龙区干了七八年市政公用工程的电工,我深知这个问题的现实性。电工证不仅是工作的“入场券”,更是职业发展的“通行证”,但备考过程…

2026/11/12 0:04:01

双流电工证考别怕挂科!郑州报考避坑指南全攻略

双流电工证考别怕挂科!郑州报考避坑指南全攻略 实操考试心里没底怕挂科?双流电工证考在郑州报名,很多人因为不了解流程、准备不充分,白白浪费时间和金钱。作为三门峡应届工程类毕业生,我也曾经历过这样的焦虑。今天就从零开始,手把手教你如何避开郑州报…

2026/11/12 0:04:01

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少 之前考的证在外省能不能转过来?这个问题确实让不少准备换城市工作的朋友犯了难,尤其像电工证这种实操性很强的证书,很多人担心跨省后证书能不能继续用。其实,只要符合相关流程,是可以顺利转…

2026/11/12 22:10:13

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/12 9:51:42

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑