当macOS上菜单栏的图标越来越多时,有限的空间显示让人非常糟心,对于刘海屏 MacBook 用户而言更甚。好在我们有 Bartender 或 iBar 这样的 app 对顶部图标进行分类隐藏,还菜单栏一个清净。

但如果你是像我一样常在连接显示器使用和外出使用两个场景之间切换的话,肯定会希望在连接显示器时,在菜单栏上直观地显示出全部的图标;在直接观看 MacBook 屏幕时,让 Bartender 或类似的 app 帮我们把不必要的图标隐藏起来。

因此,我想到了用自动化软件 Keyboard Maestro 监听显示器的连接情况,相应地帮我们进行上述操作,省去每次手动打开或关闭 Bartender 的麻烦。(关于 Keyboard Maestro 的入门,可以参考少数派上的这篇文章

查阅 Keyboard Maestro 的官方 wiki,我们发现借助 Display Layout Changed Trigger 就可以实现我们想要的效果。

Keyboard Maestro 官方 wiki

脚本如下:

脚本其实很简单,首先设置了一个监听显示器的 Trigger(触发器),当显示器的状态发生变化时:

  1. 将 Trigger 的值写入自定义文本变量“monitor_state”中
  2. 判断文本变量“monitor_state”是否包含“Added”(添加了一个显示器)或“Removed”(断开了一个显示器)
  3. 相应地关闭或打开 Bartender 4(你也可以替换成其他 app)

如此一来,我们对 macOS 图标管理的效率就更进一步了。