goyo.vim, limelight.vimで装飾のないVim
ステータスバーなどが消え、今書いていることのみに集中できる
インストール
# goyo.vim [[plugins]] repo = 'junegunn/goyo.vim' # limelight.vim [[plugins]] repo = 'junegunn/limelight.vim'
使い方
モードON
" ステータスバー、タブバー、SignColumnを非表示にするかつ、余白を出す :Goyo " 現在カーソル位置のみハイライトする :Limelight
モードOFF
:Goyo! :Limelight!
何が良いのか
たぶんGIF見ただけだとあまり良さがわからないかもしれないが、実際使ってみるととても心が落ち着く。
コーディングしているときよりも、markdownでブログの記事を書くときに使うといい感じだった。
普段何気なくステータスバーなどを表示しているが、無意識に集中を削がれていたなと感じる。
どうせならデスクトップ全体もgoyoしたい
ここからはmacOS Catalina限定の話。
- デスクトップ背景を黒に変更
- デスクトップアイコンを非表示
- Dock非表示
- メニューバー非表示
- iTermをど真ん中に、サイズをいい感じに変更
これらを実行するgoyo
コマンドを作る
デスクトップまるごとgoyoモード
デスクトップ背景を黒に変更
#!/usr/bin/env bash main() { local picture_path=$1 osascript << EOS tell application "System Events" tell every desktop set picture to "$picture_path" end tell end tell EOS } main "$@"
Macに最初から入っている黒の画像を指定することで背景を黒にする。
sh desktop_background.sh "/System/Library/Desktop Pictures/Solid Colors/Black.png"
Dock非表示
#!/usr/bin/env bash main() { osascript <<EOS tell application "System Events" tell dock preferences to set autohide to not autohide end tell EOS } main
sh dock.sh
Command
+Option
+d
でもDockの表示/非表示が可能
デスクトップアイコンを非表示
#!/usr/bin/env bash if [ $1 -eq 1 ]; then defaults write com.apple.finder CreateDesktop -boolean true && killall Finder else defaults write com.apple.finder CreateDesktop -boolean false && killall Finder fi
0で非表示、1で表示
sh desktop_icon.sh 0
メニューバー非表示
#!/usr/bin/env bash main() { local hide=$1 osascript <<EOS >/dev/null tell application "System Preferences" activate reveal pane id "com.apple.preference.general" end tell delay 1 tell application "System Events" tell window "一般" of process "System Preferences" set _checkBox to checkbox "メニューバーを自動的に表示/非表示" set isChecked to value of _checkBox as boolean if isChecked and $hide = 1 then click _checkBox else if not isChecked and $hide = 0 then click _checkBox end if end tell end tell quit application "System Preferences" EOS } main $@
0で非表示、1で表示
sh menu_bar.sh 0
メニューバーの表示/非表示だけはGUIを操作して切り替えるしかなかった。
iTermをど真ん中に、サイズをいい感じに変更
#!/usr/bin/env bash main() { local app=$1 local startX=$2 startY=$3 endX=$4 endY=$5 osascript << EOF tell application "$1" set bounds of front window to {$startX, $startY, $endX, $endY} end tell EOF } main $@
sh bounds.sh 'iTerm' 100 100 500 500
実際はもう一段上にスクリプトを噛ませて、sh iterm.sh window large
のようにしてサイズ・位置変更を実行している。
iTermの設定でタイトルバーを非表示にしておくとスッキリする
設定後、iTermを再起動しないと反映されないので注意。
また、タイトルバーを非表示にすると、タイトルバーを掴んでiTermを移動ができなくなる。
移動するには画面の端を掴んで、カーソルが「↕」になったあとに動かせば移動することができる。リサイズにならないように動かすのが難しい。これはiTermだけではなくMacのアプリ共通。
カーソルが↕になってから動かすと移動できる。ちょっと難しい。
これらをまとめたgoyoコマンドをzshrcに書く
alias goyo='_goyo' _goyo() { . ~/documents/github/mac-scripts/desktop_background "/System/Library/Desktop Pictures/Solid Colors/Black.png" . ~/documents/github/mac-scripts/menu_bar 0 . ~/Documents/github/mac-scripts/dock . ~/Documents/github/mac-scripts/desktop_icon 0 sh ~/Documents/github/iterm-scripts/iterm.sh window large } alias goyo!='_goyo!' _goyo!() { . ~/Documents/github/mac-scripts/menu_bar 1 . ~/Documents/github/mac-scripts/dock . ~/Documents/github/mac-scripts/desktop_icon 1 sh ~/Documents/github/iterm-scripts/iterm.sh window small }
スクリプト github.com github.com
終わり
余白を出して静けさを表現するgoyo.vim、現在カーソル位置のみをハイライトするlimelight.vim、どちらも発想が天才的だなと思った。
こういう発想ができるようになりたい。