Skip to content

About

类 Windows Alt+Tab 的 macOS 窗口切换器:窗口预览、一键退出应用、跨桌面跳转、查看后台运行的应用

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TabSwitcher 图标

TabSwitcher

类 Windows Alt+Tab 的 macOS 窗口切换器:窗口预览、一键退出应用、跨桌面跳转,菜单栏还能看到藏在后台运行的应用。

⬇️ 下载最新版 · macOS 14 及以上 · Apple 芯片 / Intel 通用

切换器

功能

  • ⌘⇥ 窗口切换:按住 ⌘ 连按 ⇥,按窗口(而不是按应用)切换,松开 ⌘ 跳转;快速按一下直接回到上一个窗口。也可以改成 ⌥⇥,保留系统自带的 ⌘⇥。
  • 实时预览:每个窗口都有缩略图,右下角是应用图标。
  • 在预览里退出应用:鼠标悬停点 ×,或按住 ⌘ 时按 Q;按住 ⇧ 则强制退出。
  • 跨桌面 / 全屏:其他桌面和全屏空间里的窗口也会列出,标明「桌面 N」或「全屏」,点击直接切过去。全屏 Chrome 这种拆成多个窗口的应用会合并成一张卡片。
  • 最小化、已隐藏、没有窗口的应用也能切换。
  • 搜索:面板打开后直接打字,支持拼音全拼和首字母(wx → 微信)。
  • 菜单栏:隐藏运行的应用:列出正在运行、但不在程序坞里显示的应用(菜单栏工具、后台助手等),可以打开、在访达中显示、退出或强制退出。
  • 设置窗口:显示激活状态、一键授权和重置权限,可以选快捷键、显示选项,以及登录时启动。

安装

  1. 在 Releases 下载 TabSwitcher-x.x.zip,解压后把 TabSwitcher.app 拖进「应用程序」。

  2. 第一次打开:应用没有经过 Apple 公证,直接双击会被系统拦下。任选一种方法打开:

    • 在「应用程序」里右键 TabSwitcher → 打开 → 打开;或者
    • 在终端里执行:
      xattr -dr com.apple.quarantine /Applications/TabSwitcher.app
  3. 打开后会弹出设置窗口,按提示授权:

    • 辅助功能(必需):用于监听快捷键、切换到指定窗口。
    • 屏幕录制(可选):用于显示窗口缩略图和标题,授权后需要重新启动 TabSwitcher。

    设置窗口顶部变成绿色的「已激活」,就可以用 ⌘⇥ 了。

设置窗口

快捷键

按键 作用
⌘ ⇥ 按住 ⌘ 连按 ⇥ 选择,松开 ⌘ 跳转
⌘ ⇧ ⇥ 反向选择
⌃ ⌥ ⇥ 打开并保持,松开也不关闭(没授权时也能用)
直接打字 搜索应用 / 窗口,支持拼音
← → ↑ ↓ 移动选择
⌘ + Q 退出选中的应用(⇧Q 强制退出)
悬停 → × 退出该应用(⇧ 点击强制退出)
esc 清空搜索 / 关闭

在启动台或「应用程序」里再次打开 TabSwitcher,或者点菜单栏菜单里的「设置…」,都能回到设置窗口。

常见问题

按 ⌘⇥ 还是系统自带的切换器? 说明还没拿到「辅助功能」权限。打开设置窗口,点「去授权」。如果系统设置里开关显示已打开,却没有生效,就点「开关已打开却没生效?重置权限…」,再把开关重新打开。

系统自带的 ⌘⇥ 会被永久改掉吗? 不会。TabSwitcher 只在运行期间接管 ⌘⇥,退出时自动恢复。只有在「活动监视器」里强制结束进程时,系统的 ⌘⇥ 才可能失灵,重新打开 TabSwitcher 再正常退出,或者注销重新登录,都能恢复。

调试日志在哪? ~/Library/Logs/TabSwitcher.log,记录每次打开切换器时列出的窗口和跳转结果。

从源码编译

需要 Xcode 命令行工具(Swift 6)。

./build.sh           # 编译到 build/TabSwitcher.app
./build.sh install   # 编译并安装到 /Applications,然后启动
./build.sh release   # 打包 dist/TabSwitcher-<版本>.zip

图标由 swift Tools/make_icon.swift Resources/AppIcon.png 生成。

实现说明

  • 纯 AppKit + SwiftUI(设置窗口),不依赖第三方库。
  • 快捷键通过 CGEventTap 拦截。系统自带的 ⌘⇥ 用私有接口 CGSSetSymbolicHotKeyEnabled 临时关闭。
  • 窗口缩略图来自 ScreenCaptureKit。
  • 跨桌面窗口用 SkyLight 私有接口(CGSCopySpacesForWindows、_SLPSSetFrontProcessWithOptions)和 _AXUIElementCreateWithRemoteToken 实现,做法参考了 AltTab。
  • 用了私有接口,所以无法上架 Mac App Store,以后的 macOS 版本也可能不兼容。

About

类 Windows Alt+Tab 的 macOS 窗口切换器:窗口预览、一键退出应用、跨桌面跳转、查看后台运行的应用

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages