PC Mode 是 GuruHat 放在 GitHub 上的免费 macOS 菜单栏工具,MIT 协议,用 Swift 写成,1.4.1 版本的安装包 PCMode-Installer.dmg 只有 1.67 MB。它只补三件事:在 Finder 里按 F7 删除文件、用 Command-X 与 Command-V 剪切移动文件、用 Command-Tab 逐个窗口切换。最新版本发布于 2026 年 10 月 24 日,与同一晚的 1.4 相隔 19 分钟,改动只有一条:把菜单栏图标换成键盘加手掌的形状,并跟随浅色与深色菜单栏。
它的做法是借 Finder 自己的快捷键把动作演出来,没有另造一套键位映射。用户在 Finder 前台按下 F7,程序替用户按下 Command-Delete;用户按 Command-X 再按 Command-V,程序把后者换成 Command-Option-V。整套逻辑停在事件拦截与转发这一层,Finder 本身没有被改动。
三处肌肉记忆,三条替代路径
从 Windows 迁到 Mac 的人,最先丢掉的往往是三个条件反射。Delete 键不再删文件,Ctrl-X 剪切文件会变成复制,Alt-Tab 只在应用之间轮换,同一个应用的两个窗口还得另找办法。
macOS 自己有一套等价操作。删除是 Command-Delete,移动文件是 Command-C 之后按住 Option 再粘贴,窗口切换要先用 Command-Tab 选应用、再按 Command-` 在同一个应用的窗口之间转。
这些操作分别落在键盘、剪贴板与辅助功能接口里,按键习惯却是连在一起的一整套。PC Mode 把这三处重新接上,每个功能在设置面板里都有独立开关,关掉之后系统行为立即回到原样。

它没有改写系统键位表,也没有注册全局快捷键。整个程序靠一个事件监听与一个辅助功能枚举工作,退出之后系统里不会留下改过的键位。
媒体键不是普通按键:一次 F7 要走三条通路
F7 在 macOS 上属于系统定义事件,走的是常规键盘处理之外的另一条链路。想拦下它,得从更靠下的位置接。
PC Mode 同时挂了三处监听。第一处是 NSEvent 的全局监视器,只收系统定义这一类;第二处是 CGEvent tap,插在会话级事件流的最前端,监听按下、松开、修饰键变化与系统定义事件;第三处是 IOHIDManager,匹配用途页 0x0c 的消费类控件与用途页 0x01 的键盘设备。
三条通路的存在理由并不相同。外接键盘、带多媒体键的机械键盘、以及复合设备上的消费类控件,有时只在 HID 层露头,前两条通路收不到。内置键盘的媒体键则三条通路都会报一次。
同一次按键被三条通路各报一次,就会连删三个文件。作者让三条通路共用一把按键闸门:按下时把通路名记进集合,同一次按下只放行最早的那一条,之后 0.35 秒内不再接受新的按下,松开后 0.08 秒内也不接受。按住不放产生的重复事件直接丢弃,不会因为按键时间长于去抖窗口而补触发。
程序自己发出的 Command-Delete 也会流经同一个事件流。注入时给事件打上 0x77696e32 的标记,回到回调里先查这个标记,命中就原样放行,不再进入删除逻辑,避免一次按键无限自我触发。
触发条件卡得很紧:前台必须是 Finder,并且没有按 Command、Option、Control、Shift 中的任何一个。别的应用在前台时,F7 还是 F7,音乐照常暂停。

Command-X 之后:剪贴板版本号只消费一次
Finder 没有 Command-X。按下它,系统什么也不做,剪贴板里也不会出现文件。要做出剪切的手感,只能把动作拆成复制、暂存、粘贴三步,还要保证这一次剪切只生效一次。
程序的做法是拦下 Command-X,记下当前剪贴板的版本号,然后向 Finder 转发一次 Command-C。真正的复制由 Finder 完成,程序只在旁边等结果。
等待是一段轮询。每 50 毫秒查一次剪贴板版本号,最多查 20 次,合起来一秒。版本号变了、并且剪贴板里能读出文件地址,就把这个新版本号记成可移动;一秒内没等到,本次剪切作废,用户按下的 Command-X 等于没有发生。
按下 Command-V 时,程序先比对版本号。一致才把按键换成 Command-Option-V 发给 Finder,那才是真正的移动;不一致就原样放行,用户粘贴的是剪贴板里别的内容。用掉之后状态立刻清空,第二次 Command-V 回到普通粘贴。
状态机里有一个代号计数。每次开始、取消、消费都让它加一,异步回调先核对代号再动作。连按两下 Command-X、或者中途切走应用,晚到的回调不会把上一次的意图写到这一次上。
作废条件写得比生效条件还多。再按一次 Command-C 这种明确的复制会取消,剪贴板被别的应用改写会取消,前台离开 Finder 会取消,设置里关掉这个功能也会取消。

Command-Tab 列到每个窗口:0.15 秒超时与后台枚举
系统自带的 Command-Tab 是应用切换器,一个应用只占一格。同一个应用开着五个窗口,得先切过去再挨个找。PC Mode 把它换成窗口列表,最小化与隐藏的窗口也在里面。
按键处理很直接:拦下 Tab 的键码 48,没按 Shift 就让计数加一,按了 Shift 就减一,用取模把序号绕回列表范围。Esc 取消,松开 Command 就提交当前选中项。
难的是枚举。程序通过辅助功能接口向每个运行中的应用要窗口列表,逐个读出角色、标题与是否最小化。任何一个应用不响应,这次调用就会挂住,而调用发生在事件回调线程上,挂住就等于整块键盘失去响应。
作者给了两道保险。每个元素设 0.15 秒的消息超时,超时就跳过这一项;整段枚举挪到后台队列,事件回调线程不再等结果。枚举没回来之前按下的 Tab 不会丢,计数照常累加,列表到达后一次算出选中项。用户在列表到达前就松开 Command,提交动作会挂起,等结果到了再执行。
面板是一个 600×420 的浮动窗口,层级放在弹出菜单一档,可以加入所有桌面空间并附在全屏应用之上。列表按最近使用排序,当前窗口排在所属应用的第一位,右侧两列显示 CPU 与内存。
选中的应用先取消隐藏,再激活,然后把目标窗口的最小化标志清掉、设为主窗口、执行一次提升动作。应用没有向辅助功能暴露任何窗口时,列表里留一条应用级条目,选中就重新打开这个应用。逐窗口切换这个方向上有不少同类作品,比如 Show Bar for Mac:让 Command-Tab 精准切换具体视窗,程序坞悬停即看微缩预览 与更早的 AltTab - 带窗口预览的macOS窗口切换神器,区别在于 PC Mode 的列表不带缩略图,只带占用数字。

右侧两列的数字怎么来的
1.4 版本加上 CPU 与内存,改动看起来只是两列文字,背后是一套按活动监视器口径重写的采样。
采样每 3 秒跑一次,允许 1 秒的误差窗口。程序先列出系统里所有进程,逐个取父进程号,再取 CPU 时间与物理占用。CPU 时间的单位是 mach 绝对时间,在 Apple 芯片上并不是纳秒,得按 timebase 换算成纳秒再比较。
归属是这套统计里最关键的一步。一个应用的实际占用分散在主进程、渲染进程、扩展与各种后台辅助进程上。程序沿着父进程链把每一级祖先都记成归属者,同时还调用 libsystem 里的私有符号 responsibility_get_pid_responsible_for_pid,把真正发起这个进程的应用也算进去。Safari 的网页内容进程会被算到 Safari 头上,活动监视器用的是同一个函数。
CPU 百分比按单个核心计算,用两次采样的时间差当分母,再对上一次结果做一半权重的平滑,短促的尖峰不会立刻把数字顶上去。40% 转橙色,90% 转红色。
内存的处理更保守。数字超过 1 GB 才进入候选,还要看系统的内存压力等级:正常时不标色,警告时橙色,紧张时红色。理由是 macOS 会主动把空闲内存填满,占用数字大本身并不代表出问题。这个判断也决定了显示格式,不到 999.5 MB 显示整数 MB,超过就显示一位小数的 GB。
想在菜单栏常驻看这类数字的工具另有选择,比如 ftop:Apple Silicon 上的系统监视器,一块玻璃面板可缩到菜单栏宽,只报当前状态。PC Mode 把它们放进切换器,看的时候顺手就切过去了。
它不做的事,和几个会踩到的坑
功能边界很清楚:所有动作只在 Finder 前台生效,不接管其他应用的快捷键,也不提供自定义键位映射。想改 Caps Lock、想给某个应用单独换键,这个工具帮不上忙。
权限要求不低。辅助功能用于枚举窗口与向 Finder 发送按键,输入监控用于接收系统定义事件,另外还要允许发送事件。三者缺一个,设置面板底部的状态灯就停在红点,旁边写着先去开启再重启。macOS 27 里辅助功能这一项已经改名为 Device Control and Data Access,官方截图里的提示文字就是新名字。
它和别的键盘工具会打架。作者在说明里直接写明,使用前先退出其他按键映射程序,否则同一个 F7 可能被两边各处理一次。
系统门槛是 macOS 13。安装包只从 GitHub Releases 分发,仓库里那份 dmg 就是发布件,没有走 App Store。首次打开要把应用先拖进应用程序文件夹,否则开机自启多半注册不上,macOS 还可能要求到登录项里手动放行。
窗口枚举的上限由应用自己决定。有些应用不把某些窗口暴露给辅助功能,这类窗口不会出现在列表里,程序只能退回到应用级条目。
项目本身还很年轻。仓库 2026 年 9 月 29 日建立,与 1.3 首发同一天,目前 2 个星标,还没有人复刻。源码不到 60 KB,测试覆盖按键去抖、剪切状态、键位映射、切换器序号与占用格式化几块。
安装只要三步:从 Releases 下载 dmg,把 PC Mode 拖进应用程序文件夹,打开后按设置面板里的 Manage 按钮逐项授权。三个功能各有开关,只想要 Delete 键的人可以只留第一项,其余两项关掉之后,Command-Tab 与剪贴板都回到系统原本的行为。
声明:本文来自苹果迷投稿,不代表苹果家园立场,版权归原作者所有,欢迎分享本文,转载请保留出处!