問題
帶 touchbar 的 MacBook 安裝BetterTouchTool後可以自定義 touchbar、觸控板手勢等等,但是可能是因爲 DB 軟件的緣故,設置好後過一段時間就失效了。具體表現爲:touchbar 顯示爲空白、設置的觸控板手勢失效,需要重啓BetterTouchTool或者在touchbar 重新點擊一下BetterTouchTool的標誌。
解決方案
1,使用launchctl 定時重啓BetterTouchTool:
1)在/Users/username/Library/LaunchAgents/下新建com.test.launchctl.plist,然後用文本編輯器添加如下代碼
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.test.launchctl.plist</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>/Users/username/launchctl_restartBTT.sh</string>
</array>
<key>ThrottleInterval</key>
<integer>300</integer>
<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/AutoMakeLog.log</string>
<key>StandardErrorPath</key>
<string>/tmp/AutoMakeLog.err</string>
</dict>
</plist>
Tip: 別人用的參數<key>StartInterval</key>
有個 bug,不管設置爲多少,launchctl還是 10 秒運行一次。
2)在/Users/username/下新建launchctl_restartBTT.sh,添加如下內容:
#!/usr/bin/env bash
osascript -e 'tell application "BetterTouchTool" to quit'
open -a BetterTouchTool
3) 打開 terminal,輸入命令launchctl load com.test.launchctl.plist
可以啓動剛剛的自動重啓腳本,5 分鐘執行一次launchctl_restartBTT.sh,重啓一次BetterTouchTool。輸入命令launchctl unload com.test.launchctl.plist
可以停止自動重啓。
2,另外,有時候 BetterTouchTool 反應有點慢,是由於進程優先級爲普通,CPU 沒有及時處理你的操作,但是點擊安裝官方的 priority 插件又沒反應。可以手動去 Activity Monitor 查看BetterTouchTool的進程編號 PID(例如 12345),然後在命令行輸入sudo renice -n -19 12345
調高進程優先級。這樣,反應速度會快些。