剛好看到 Youtube: macOS: Essential Productivity Hacks for Developers 影片,裡面介紹了如何設定一些快捷鍵、virtual desktops、windows management 視窗管理,其中有一工具很符自己的使用需求 skhd:https://github.com/koekeishiya/skhd。
因為開的 APP 太多了,在沒有比較好 windows management 的情況下有時候找特定 APP 視窗會花費一些時間,e.g. 滲透測試的時候,要開 terminal 打 command + Burp Suite + 瀏覽器筆記+ visual studio + IM 軟體,時常在一分鐘之內可能就會頻繁切換,找來找去會浪費不少時間。
Install
安裝以後會寫入 plist 讓開機的時候自動啟動
brew install koekeishiya/formulae/skhd
skhd --install-service
skhd --start-service
依照 README 會依照以下路徑去讀取 config 檔案
- $XDG_CONFIG_HOME/skhd/skhdrc
- $HOME/.config/skhd/skhdrc
- $HOME/.skhdrc
Setup
在家目錄下面建立 .skhdrc 檔案
最實用的應該會是以下這些組合
hotkey = <mode> '<' <action> | <action>
mode = 'name of mode' | <mode> ',' <mode>
keysym = <mod> '-' <key> | <key>
action = <keysym> ':' <command>
所以 alt 配上 c 就可以開啟 ‘Visual Studio Code’ 以此類推
alt - c : open -a 'Visual Studio Code'
alt - t : open -a 'Microsoft Teams'
cmd + shift - e : /path/to/your/script.sh #執行特定 script
許多人會搭配上 yabai 做視窗管理,不過很多視窗管理軟體都必須關閉 SIP 防禦機制,所以暫時先不考慮。其他還有更多進階的用法,例如進入模式(可以設定多層的快捷鍵),有點像 vim 近入 mode 那樣,這邊給個範例。
# 新增模式
:: pentest
# 定義模式切換
alt - p ; pentest
# 在特定模式下啟用快捷鍵
pentest < b : open -a 'Burp Suite Professional' | skhd -k 'escape'
# 返回預設模式
pentest < escape ; default
也可以定義在當前特定程式下才有的快捷鍵,最後改完 config 以後可以 skhd -v
,hot reload 設定檔。
Debug
碰到問題的時候可以先停止服務,再開啟 verbose 顯示詳細資訊,都修改完成後再重新啟用服務。
skhd --stop-service
skhd -V