在 OS X 这块寸土寸金的地方,在你天天面面向对的主屏幕上,有四个区域会经常使用:Desktop,Dock,Notification,Menubar,前面三个都有许多软件来帮助用户进行信息自定义操作,比如擅长往桌面放各种信息 Widget 的 GeekTool 和 Ubersicht,为通知中心放置个性化统计信息的Today Scripts,还有老牌 Dock 程序预览窗口工具 HyperDock,那么 Menubar 在我接触 TextBar 之前还是一款纯洁的处女地,除了 Bartender,我似乎还未碰到过什么强大的自定义软件。现在,TextBar 将继承上述几位前辈的志向,让 Menubar 显示任何你想要的信息,只要你会玩脚本命令,乐趣将是大大的。
TextBar 是由独立程序员 Rich Somerfield 开发的,你可以在后台设置里添加任意数量的脚本程序来显示你想要的信息,每一条叫做 Recipes,噢,让我想起了 IFTTT,我猜作者也想把这款软件打造成 Flashlight 那样的开源插件平台吧
作者在 Github 开了一个 TextBar Recipes 的专页,你可以到里面参考安装一些 Recipes 学习学习,比如下面这张图:
在设置窗口内你可以为 Recipes 选择个性化的 ICON,这些 ICON 全部从 ICONS8 下载,接着就是 Script,直接输入即可,然后是调整信息更新频率,以秒为单位,随意设置吧,TextBar 还支持让你的信息通过 OS X Ntofication Center 进行消息推送,这对于安装在 Menubar 的天气、系统监控类 Recipes 非常有帮助。
下面我们来介绍几个既常用又实用的 Recipes:
1. 显示本地 IP 地址:
ifconfig | grep inet | grep -v inet6 | cut -d" " -f2 | tail -n1
2. 显示外网 IP 地址:
curl http://ipinfo.io/ip
3. 显示硬盘占用率:
df / | awk '{ print $5 }' | tail -n 1
4. 显示某个国家时间:
UKDATE=`TZ=GB date +"%H:%M %p"` ; echo "UK: $UKDATE"
5. 显示 Emoji:
echo '🌚'
友情提示:组合键:CONTROL+CMD+SPACE 快速调用 Emoji 选择菜单
6. 显示电池容量:
ioreg -n AppleSmartBattery -r | awk '$1~/Capacity/{c[$1]=$3} END{OFMT="%.2f%%"; max=c["\"MaxCapacity\""]; print (max>0? 100*c["\"CurrentCapacity\""]/max: "?")}'
7. 显示 CPU 状态:
$HOME/scripts/CPUSpeed.sh
需要 CPUSpeed.sh 配合,点击链接下载
8. 显示 iTunes 正在播放哪首歌曲:
osascript -e 'if application "iTunes" is running then' -e 'tell application "iTunes"' -e 'if player state = playing then' -e '(get name of current track) & " – " & (get artist of current track)' -e 'else' -e 'return ""' -e 'end if' -e 'end tell' -e 'else' -e 'return ""' -e 'end if'
此脚本需要你的 iTunes 处于歌曲播放状态
9. 显示天气:
curl -s 'http://api.openweathermap.org/data/2.5/weather?q=Manchester,UK&units=metric' | python -c 'import sys, json; data=json.load(sys.stdin); print("{} : {:.1f}°C".format(data["weather"][0]["main"], data["main"]["temp"]))'
将你所在的城市信息替代脚本里的“Manchester,UK”即可
10. 显示 Outlook 里未读邮件数量:
osascript $HOME/scripts/CheckOutlookMail.scpt
需要独立的 CheckOutlookMail.scpt 帮忙,放入 ~/script/ 即可
11. 显示系统文本剪切板:
pbpaste | sed 's/^[[:space:]]*//;s/[[:space:]]$//' | sed -E 's/^(.{10}).+$/\1.../'
这个脚本只能显示文本的前10个字符,后面的用省略号替代。。
12. 显示剪切板文本字符数量:
pbpaste | wc -c
13. 显示蓝牙键盘/鼠标剩余电量:
echo "M: "
ioreg -c BNBMouseDevice | grep '"BatteryPercent" =' | sed 's/[^0-9]*//g'
"%" echo "B:" ioreg -c AppleBluetoothHIDKeyboard | grep '"BatteryPercent" =' | sed 's/[^0-9]*//g'
"%"
14. 显示 Finder 里已选文件的名称:
osascript $HOME/scripts/SelectedFinderFile.scpt
需要独立的 SelectedFinderFile.scpt 帮忙,把这个 scpt 放入 ~/scripts 目录即可
15. 直接在 Menubar 显示图片?
echo '<html><img src="http://www......."/></html>'
这个脚本对图片要求太高,长宽不得超过 14px,要折腾请谨慎!
更多的个性化设置办法
TextBar 竟然还能做字体更换,OMG!,
来看办法:
defaults write com.RichSomerfield.TextBar DefaultFontName -string "HelveticaNeue-UltraLight"
脚本执行后需重启软件
设置字体大小:
defaults write com.RichSomerfield.TextBar textBarPreferences.DefaultFontSize -int 10
脚本执行后需重启软件
设置 TextBar 在 Mebubar 上显示 Recipes 限制数量:
defaults write com.RichSomerfield.TextBar DefaultMaxWidth -int 100
脚本执行后需重启软件,这个脚本需要你的 OS X 系统是 Yosemite,TextBar 版本要在 v1.4.47 及以上,脚本里最后的“100”是自选值,填写任意数字代表 Recipes 显示数量,填写“0”代表不限制,当然,如果 Recipes 太多,你需要 Bartender 来帮忙了。
总结
总之,这款软件适合有脚本编写经验的用户使用,乐趣大大的有,就看你的能力了,我觉得这款作品与 iOS 上的 Workflow 有些像,入门很容易,但要玩好需要你自己苦练内容,TextBar 售价 2.99$,提供7天试用,感兴趣的 Geek 不妨试试。