Bartender 5 中通过脚本自动显示/隐藏 WireGuard 图标
最近系统升级为 Sonoma 后,对应 Bartender 也从 4 升级到 5,发现通过对比图标样式显示/隐藏图标的功能消失了,应该是现在截图的时候,系统有强制的截图图标提示且无法取消,基于隐私的考虑避免应用悄悄获取敏感权限(截图、视频、语音等),和手机上的表现一致。
平常使用 WireGuard 比较多且经常会进行切换,已经习惯了连接时隐藏,断开时显示,突然没有了还有点不习惯,刚好 Bartender5 提示了 Script 的能力,所以写了个简单的脚本来实现这一功能。
首先进入 Bartender 5 设置
-> 菜单栏元素
里面,把 WireGuard 的图标拖到隐藏的菜单栏元素中
接下来进入设置
-> 触发
-> 新建触发器
,显示菜单栏元素选择 WireGuard,增加触发器条件选择 Script,在脚本条件里面录入以下脚本
vpn=$(scutil --nc list | grep "com.wireguard.macos" | grep "(Connected)" | head -n 1)
if ! [ -z "$vpn" ]
then
echo "false"
else
echo "true"
fi
配置完成后,如下图所示:
确认即完成所有配置,默认脚本执行时间是 1 分钟,所以图标状态变化可能会有一定的滞后。
顺便再推荐一个 Raycast 的 WireGuard 插件。