Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TopTab

屏幕顶部的悬浮 App 切换条。平时藏起来不挡视线,鼠标顶到屏幕顶部唤出;液态玻璃背景,一排「图标 + 名称」,点一下就把 App 切到前台,悬停还有窗口缩略图。菜单栏常驻图标,带完整设置窗口。

要求 macOS 14.0+(液态玻璃需要 macOS 26+)。

功能

功能 说明
顶部唤出 鼠标顶到屏幕顶部中央即唤出,离开 0.2 秒自动隐藏(时长可调,也能设成常驻)。唤出区宽度 60–400 pt 可调 —— 默认 120 pt 约等于 4 个状态栏图标;外接屏误触频繁就调小,难唤出就调大
多屏:唤出位置固定 接外接屏时可选只认系统主显示器(默认,即带菜单栏那块)/ 内置屏(刘海那块)/ 鼠标所在屏。选定后唤出区就钉在那块屏顶部,不会因为某次在另一块屏用了 ⌘Tab 就搬过去
单击切换 点标签即切换,等价于点 Dock 图标;不用在 Dock 里找图标,也不怕 App 被最小化
窗口预览 悬停有 2 个以上窗口的 App,下方弹出各窗口缩略图:点哪张切哪个窗口,点左上角 × 直接关掉那个窗口,不碰这个 App 的其它窗口
界面缩放 80%–130% 拖动即时生效,悬浮条与窗口预览等比放大、命中区域同步。适配不同分辨率的屏幕和外接显示器
标签右键 隐藏 / 退出 标签上右键 →「隐藏此 App」/「退出 App」。隐藏的 App 不占标签位,但仍在后台正常运行 —— 只留自己每天高频切换的那几个,列表短了切起来更快;想放回来去设置 →「已隐藏的 App」点「显示」
⌘Tab 呼出 按下 ⌘Tab 在鼠标位置弹出悬浮条并预选上一个 App:快按快放 = 立刻切回上一个(复刻 Windows Alt+Tab);按住不放继续按 Tab,高亮沿图标从左到右一格一格走、走到头绕回来,也可以直接用鼠标点选;松开 ⌘ 确认,Esc 取消。弹出不带动效,按下即到;选完条立刻消失,不等自动隐藏的倒计时
背景材质 液态玻璃 / 毛玻璃 / 纯色三选一,待机不透明度与进出场动画可调
开机自启 设置里一键开启,不写 LaunchAgent
在线更新 启动后自动检查新版本,有新版本弹窗一键更新(自己下载、替换、重启)。也可以手动:菜单栏图标或设置里的「检查更新…」

交互

操作 结果
鼠标移到屏幕顶部中央(菜单栏区域) 唤出切换条(多屏时只在设置指定的那块屏顶部响应,默认系统主显示器)
鼠标离开条和顶部区域 0.2 秒 自动隐藏(可改 0.2 / 0.4 / 0.8 / 1.5 / 3 / 4 秒或常驻)
单击 App 标签 该 App 切到前台(等价于点 Dock 图标),高亮立刻跟到新标签
悬停 App 标签 0.12 秒 下方弹出该 App 的窗口缩略图(仅当该 App 有 ≥2 个窗口;单窗口点标签即切换,预览是打扰)
鼠标扫过缩略图 卡片浮起 + 描边,指示当前指着哪一张
单击缩略图 精确切到那一个窗口,最小化的会先恢复
单击缩略图左上角 × 关掉那个窗口(等价于点它的红色关闭按钮,不碰别的窗口)
条上右键 设置 / 自动隐藏 / 预览开关 / 权限 / 刷新 / 退出
标签上右键 隐藏此 App(从标签里移除,不退出)/ 退出 App
⌘Tab(设置里开启) 在鼠标位置弹出悬浮条并预选上一个 App —— 快按快放即切回上一个(Windows Alt+Tab);继续按 Tab 高亮沿图标从左到右走、到末尾绕回开头,或用鼠标点选;松开 ⌘ 确认后条立刻消失,Esc 取消
菜单栏图标左键 开关悬浮条 / 设置 / 自动隐藏 / 预览 / 权限 / 退出

效果

悬浮条(自动隐藏,鼠标移到屏幕顶部中央唤出):

悬浮条

标签上右键 →「隐藏此 App」/「退出 App」(隐藏后标签消失,但 App 仍在跑):

标签右键菜单

悬停多窗口 App 的标签,弹出窗口缩略图预览 —— 悬停浮起、点 × 直接关窗、点卡片精确切到那个窗口:

窗口预览

设置窗口(开机自启 / 菜单栏图标 / 唤醒热区宽度与位置 / ⌘Tab 呼出 / 已隐藏的 App / 材质与不透明度 / 界面缩放 / 权限状态):

设置窗口


外观

背景材质三选一(设置 → 悬浮条 → 背景材质):

材质 说明
液态玻璃(默认) 系统原生 Liquid Glass,跟随浅色 / 深色外观和「降低透明度」「增强对比度」等辅助功能开关自动变化
毛玻璃 经典 HUD 质感,所有系统版本可用
纯色 不透明,最省电

macOS 26 以下没有「液态玻璃」选项,会自动用毛玻璃。

设置

菜单栏图标 → 设置…,或 悬浮条上右键 → 设置…

分组
通用 开机自动启动、在菜单栏显示图标
悬浮条 启用悬浮条、唤醒热区宽度、顶部唤出位置(系统主显示器 / 内置屏 / 鼠标所在屏)、窗口预览、只显示已打开的窗口、自动隐藏时长、⌘Tab 呼出、已隐藏的 App(逐个「显示」释放)、背景材质、界面缩放、待机不透明度、进出场动画
权限 屏幕录制 / 辅助功能的实时状态与授权按钮
关于 版本、用法说明

改动即时生效,不用重启。隐藏了菜单栏图标,也还能右键悬浮条 →「设置…」回到设置窗口。

权限

权限 用途 没有时的降级
屏幕录制 抓窗口缩略图、读取窗口标题 预览卡片只显示 App 图标,条上给出提示
辅助功能 列出窗口集合(含最小化窗口)、精确聚焦到某一个窗口 看不到最小化窗口;点缩略图退化成把整个 App 拉到前台

辅助功能是决定窗口列表准不准的那个权限:没有它就会多出点不动、关不掉的幽灵窗口,多窗口 App 点哪个都回到第一个窗口。首次启动会主动弹一次系统授权请求,授权一次长期有效。

权限状态在设置窗口 → 权限里实时显示(每秒刷新),右侧「授权」按钮会同时弹系统请求并跳到对应设置面板。改动系统权限后需重启 TopTab 生效。

更新

启动 3 秒后自动检查一次新版本(每小时最多一次),没有就毫无动静。

有新版本会弹窗,三个选择:

按钮 行为
立即更新 自动下载 → 校验签名 → 退出并替换 → 重新拉起,全程不用管
稍后 这次不更新,下次启动再提示
跳过这个版本 以后静默检查不再为这个版本提示;手动点「检查更新…」仍会提示

手动检查:菜单栏图标 →「检查更新…」,或 设置 → 关于 → 检查更新。也可以在设置里关掉自动检查。

更新后如果提示需要重新授予屏幕录制 / 辅助功能权限,说明新版本换了签名证书,重新授权一次即可,之后一直有效。

构建

./build.sh          # 生成图标 + 双架构编译 + 自签名 + 校验
open TopTab.app

要求 Xcode 命令行工具。

发版(打包 + 上传到 GitHub Releases,供上面的在线更新使用):

GITHUB_TOKEN=<token> ./scripts/make-release.sh 1.3.0 "更新说明"

详细流程和注意事项见 docs/RELEASING.md —— 不需要任何服务器或云空间


窗口枚举方案、AX 的那些坑、自签名证书、动效参数等实现细节,见 docs/INTERNALS.md

About

macOS 屏幕顶部的悬浮 App 切换条:液态玻璃、自动隐藏、多窗口缩略图预览(SwiftUI + AppKit)

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages