TabStrip 图标
TabStrip

每块屏幕,一条标签栏。

像浏览器切标签一样,切换 Mac 上任意 App 的窗口。

上面是可以点的:点标签切换,悬停出现关闭按钮。

不用再找窗口了。

每块显示器顶部一条标签栏,列出这块屏上的所有窗口。点一下,就是它。

跨 App,不只一个应用。

飞书、Chrome、Figma、终端、微信,同一条标签栏里。系统原生只能合并同一个 App 的窗口,TabStrip 不挑。

✕飞书 — 产品周会1
✕千图网 - Chrome2
✕Figma — 组件库3
✕终端 — zsh4
✕微信5
Figma — 组件库
FigmaButton / Tabs / Segmented Control

拖到隔壁屏。

按住标签,拖到另一块显示器的标签栏上松手,窗口就过去了。同一条标签栏内拖动可以排顺序。

✕飞书 — 产品周会1
✕微信2
飞书 — 产品周会
飞书AI版场景全案规划表 · 待办 3 项
屏幕 1 · 按住「微信」标签往右拖
✕Figma — 组件库1
✕终端 — zsh2
Figma — 组件库
FigmaButton / Tabs / Segmented Control
屏幕 2 · 松手,微信窗口就到了这块屏
微信

双击,铺满或缩回。

选中的窗口默认铺满整块屏,互不重叠。想让某个窗口保持小窗,双击它的标签,或者直接拖它的边框,它会记住。

✕飞书 — 产品周会1
✕千图网 - Chrome2
千图网 - Chrome
Google ChromeAI 工具 · 工作流 · 模板库
默认:选中的窗口铺满标签栏以下
✕飞书 — 产品周会1
✕千图网 - Chrome2
千图网 - Chrome
Google ChromeAI 工具 · 工作流 · 模板库
双击标签:缩回原尺寸,之后不再自动铺满

拖到标签上,左右分屏。

把一个标签拖到另一个标签的中间,目标标签亮起蓝框,松手就合并成一个分屏标签:两个窗口各占一半,中间的分隔条可以拖,永远不重叠。悬停到分屏标签的某一半,那一半会亮起,按住拖出去就把它单独拆出来;双击切换上下,⊟ 整体拆分。

✕飞书1
✕Chrome2
✕Figma3
飞书 — 产品周会
飞书AI版场景全案规划表 · 待办 3 项
⇆ 与「Chrome」左右分屏
拖到「Chrome」标签中间:蓝框 = 松手即合并
⊟飞书⇆Chrome1
✕Figma2
飞书 — 产品周会
飞书产品周会 · 待办 3 项
千图网 - Chrome
Google ChromeAI 工具 · 工作流 · 模板库
合并后各占一半;悬停到标签的某一半会亮起,按住拖出去就把它拆出来;⊟ 整体拆分

一行命令,装好。

打开「终端」,粘贴运行。全程约 30 秒,只需授权一次。

curl -fsSL https://tabstrip.wwei.ai/install.sh | bash

运行命令

脚本会安装 Hammerspoon(TabStrip 的运行环境,约 10MB)并放入配置。已装过的直接跳过。

授权「辅助功能」

系统设置会自动打开,在列表里把 Hammerspoon 打开。这是 macOS 对所有窗口工具的统一要求。

Hammerspoon

完成

授权后两秒内,每块屏幕顶部出现标签栏。以后开机自动启动,菜单栏有一个 ⧉ 图标可随时暂停。

不想跑脚本?手动安装
  1. 下载 Hammerspoon-1.1.1.zip,解压后把 Hammerspoon.app 拖进「应用程序」。
  2. 下载 tabbar.lua 和 init.lua,放进 ~/.hammerspoon/(没有这个文件夹就新建)。
  3. 打开 Hammerspoon,按提示授权「辅助功能」。

卸载:curl -fsSL https://tabstrip.wwei.ai/uninstall.sh | bash

手不离键盘。

全部用 ⌃⌘ 前缀,不和任何 App 自己的快捷键冲突。鼠标在哪块屏,就作用于哪块屏。

⌃⌘1 … 9
直达第 N 个标签
⌃⌘[ / ]
左 / 右切换标签到边缘循环
⌃⌘↩
当前窗口铺满 / 缩回等同双击标签
⌃⌘W
关闭当前窗口不退出 App
⌃⌘⇧[ / ]
把当前窗口移到左 / 右一块屏
⌃⌘⇧↩
拆分当前分屏等同悬停标签上的 ⊟
⌃⌘⇧D
分屏切换左右 / 上下等同双击分屏标签
⌃⌘⇧T
开 / 关这块屏的「铺满模式」关掉后窗口自由摆放,标签栏照常工作

常见问题

Hammerspoon 是什么,为什么要装它?

一个开源十年的 macOS 自动化工具,把系统的窗口、屏幕、快捷键能力开放给脚本。TabStrip 是跑在它里面的一个约 300 行的脚本。装它相当于装了 TabStrip 的运行环境,你不需要碰它。

安全吗?为什么要「辅助功能」权限?

要读取和移动别的 App 的窗口,macOS 只允许通过「辅助功能」接口,Rectangle、Magnet、uBar 全都一样。TabStrip 代码开源,不联网、不收集任何数据。Hammerspoon 由 Apple 公证签名。

它会不会乱动我的窗口?

默认每块屏只做一件事:让选中的窗口铺满标签栏以下的区域。你自己拖过边框的窗口(比如想让访达小一点),它会记住这个尺寸,不再强制铺满;双击标签或 ⌃⌘↩ 随时恢复铺满。整块屏都不想管,按 ⌃⌘⇧T 关掉,标签栏只负责切换。

全屏(绿灯)的 App 怎么办?

macOS 原生全屏会独占一个「空间」,TabStrip 在那里不显示,退出全屏就回来。建议用 TabStrip 的铺满代替原生全屏,切换快得多。

怎么卸载?

终端运行 curl -fsSL https://tabstrip.wwei.ai/uninstall.sh | bash,会移除配置并询问是否一并删除 Hammerspoon。

分屏能放几个窗口?

两个,左右或上下。这是刻意的限制:三个以上就回到了「找窗口」的老问题。要看三个,用两块屏。

支持哪些 Mac?

macOS 13 及以上,Intel 与 Apple Silicon 都可以。多显示器、笔记本刘海屏都测试过。