yabai + skhd でウィンドウマネジメントする

ウィンドウマネジメントの話。

色んなウィンドウを開いてると「画面半分ずつにしたい」とか「表示してるものを移動したい」とか思うことがある。細かい調整をするのもマウスで操作するのも地味に面倒。これまでは Shiftit というアプリケーションを使っていたが、ビデオ通話との相性が悪くて使えなくなってしまった。

開発者ならイケてる開発環境に憧れるもの、windows なら i3 なるウィンドウマネージャがあり、ウィンドウをタイル状に並べていい感じにしてくれる。MacOS でこれと近いことを実現してくれるものを探したら yabai にたどり着いた。導入後のイメージは これ とか これ とか これ を見て。

今回は yabai によるウィンドウマネジメントを設定するまでを記録。

yabai + skhd によるウィンドウマネジメント

yabai はコマンドラインからコマンドを実行するとウィンドウマネジメントができるようにしてくれる。そして yabai のコマンドに skhd を使ってショートカットを設定することでキーボード操作できるようにする、という流れ。

yabaiskhd も同じ作者によって作成されたもので、基本的な設定はコピペだけで完結する。

インストール

brew でインストールします。

brew install koekeishiya/formulae/yabai
brew install koekeishiya/formulae/skhd

起動

それぞれ下記コマンドで起動する。停止する時は stop-service を使う。

yabai start-service
skhd start-service

brew services を使えという記事も散見されたが上手くいかず、上記を試したらいけた。homebrew API の仕様変更により変更されたようだ(参考)。

アクセシビリティの設定

サービスを使うにはアクセシビリティの設定で yabai と skhd による操作を許可する必要がある。[設定] > [Privacy & Security] > [Accessibility] と進み、yabai と skhd のチェックをONにする

設定ファイル

設定ファイルは .yabairc.skhdrc の2種類。どちらも基本的なものが既にあるので公式から引っ張ってくると良い。

念のため差分を紹介。

.yabairc

yabai -m config mouse_follows_focus          off
yabai -m config active_window_border_color   0xff4dcb7f
yabai -m config layout                       float
  • マウスオーバーでアクティブにする処理を無効化
  • アクティブウィンドウのボーダーカラーを変更。色指定は 0xff + カラーコードで記述
  • レイアウトは float を指定。bsp に設定する方が通っぽいと思ったが使いこなせなさそうだったので固定グリッドでサイズを変更できるようにしたかった

.skhdrc

alt - left : yabai -m window --grid 1:2:0:0:1:1 # left
alt - right: yabai -m window --grid 1:2:1:0:1:1 # right
shift + alt - left : yabai -m window --grid 1:3:0:0:2:1 # left 2/3
alt - down : yabai -m window --grid 2:2:0:1:1:1 # left-down
alt - up   : yabai -m window --grid 2:2:0:0:1:1 # left-up
shift + alt - up   : yabai -m window --grid 2:2:1:0:1:1 # right-up
shift + alt - down   : yabai -m window --grid 2:2:1:1:1:1 # right-down
alt - t    : yabai -m window --grid 4:4:1:1:2:2 # center
  • 画面の半分と4分の1での分割を指定して、それぞれにショートカットを割り当てた。グリッドの設定方法の詳細がわからずあれこれ試して分割方法を探った…
  • センター表示はデフォルトから存在する
  • alt + left -> right みたいなキーバインドを設定したかったが方法がわからなかったのでシフトキーに甘んじている
  • 本当は yabai はもっと強力なウィンドウマネージャであり、フォーカスの変更、ウィンドウの移動、配置変更などできるが今のところは使っていない
タイトルとURLをコピーしました