Mac

タイル型ウィンドウマネジャーアプリって知ってますか?

タイル型ウィンドウマネジャーが凄く便利なので、キーバインドさえ覚えられるなら導入価値大いにありです。

· 3 min read
タイル型ウィンドウマネジャーアプリって知ってますか?

皆さん、タイル型ウィンドウマネジャーアプリってご存じですか?私は、最近初めて知りました。ウィンドウを開くと勝手に決められたすき間の設定で配置してくれて、ウィンドウの切り替えや位置変え、大きさの変更までをショートカットで出来るようにしてくれるアプリです。Macで出ているアプリの中ではYabaiとSkhdという同じプログラマーが書いてるソフトの組み合わせが最も高機能です。実は私は最近までMoowというウィンドウマネジャーを使用していましたが、複数ディスプレイを使っていると思ったようにウィンドウ位置を記憶してくれません。これならショートカットで再起動した時にウィンドウを素早く並べ替えたほうが早いと思ってYabai+Skhdの導入に到りました。

まずは基本的な使い方を解説してくれている方がいるのでYouTubeを見てみましょう。(ウィンドウズでこういう挙動をするアプリが欲しければ、Google検索すれば見つかるようです)

そしてインストール方法の説明してくれている方のページはこちら

イケてるデスクトップ環境を作る(yabai + skhd + Übersicht)

私はvimのバインディングよりもEgBridgeのカーソル移動ショートカットのほうが慣れているので、そのようにショートカットを設定しています。

そんな私のskhdrcはこんな感じ

alt - j : yabai -m window --focus west || yabai -m display --focus west  # left
alt - k : yabai -m window --focus south  #right
alt - i : yabai -m window --focus north #top
alt - l :  yabai -m window --focus east || yabai -m display --focus east  #right
# swap window
shift + alt - j : yabai -m window --swap west
shift + alt - k : yabai -m window --swap south
shift + alt - i : yabai -m window --swap north
shift + alt - l : yabai -m window --swap east
# move window
shift + alt+ctrl - j : yabai -m window --warp west
shift + alt+ctrl - k : yabai -m window --warp south
shift + alt+ctrl - i : yabai -m window --warp north
shift + alt+ctrl - l : yabai -m window --warp east
# move window
# shift + ctrl - a : yabai -m window --move rel:-20:0
# shift + ctrl - s : yabai -m window --move rel:0:20
# shift + ctrl - w : yabai -m window --move rel:0:-20
# shift + ctrl - d : yabai -m window --move rel:20:0
# increase window size
cmd+alt  - l: yabai -m window --resize left:-50:0 || yabai -m window --resize right:-50:0
cmd+alt  - j: yabai -m window --resize right:50:0 || yabai -m window --resize left:50:0
cmd+alt  - k: yabai -m window --resize bottom:0:20 || yabai -m window --resize top:0:20
cmd+alt  - i: yabai -m window --resize top:0:-20 || yabai -m window --resize bottom:0:-20
# shift + alt - a : yabai -m window --resize left:-20:0
# alt - b : yabai -m window --resize bottom:0:20
# shift + alt - b : yabai -m window --resize bottom:0:-20
# shift + alt - l : yabai -mwindow --resize left:-20:0
# decrease window size
# shift + cmd - a : yabai -m window --resize left:20:0
#shift + alt - b : yabai -m window --resize bottom:0:-20
#shift + alt - a : yabai -m window --resize top:0:20
# alt - r : yabai -m window --resize right: 20:0
# shift + alt - r : yabai -m window --resize right: -20:0

# rotate tree
alt - r : yabai -m space --rotate 90
# mirror tree y-axis
alt - y : yabai -m space --mirror y-axis
# mirror tree x-axis
alt - x : yabai -m space --mirror x-axis
# toggle desktop offset
alt - a : yabai -m space --toggle padding && yabai -m space --toggle gap
# toggle window fullscreen zoom
alt - f : yabai -m window --toggle zoom-fullscreen
# toggle window native fullscreen
shift + alt - f : yabai -m window --toggle native-fullscreen
# toggle window split type
alt - e : yabai -m window --toggle split

# float / unfloat window and restore position
# send window to monitor and follow fous
alt - n: yabai -m window --focus next || yabai -m display --focus next
alt - p: yabai -m window --focus prev || yabai -m display --focus prev

shift + alt - n : yabai -m window --display next; yabai -m display --focus next
shift + alt - p : yabai -m window --display prev; yabai -m display --focus prev

# alt - t : yabai -m window --toggle float && /tmp/yabai-restore/$(yabai -m query --windows --window | jq -re '.id').restore 2>/dev/null || true
alt - t : yabai -m window --toggle float && yabai -m window --grid 4:4:1:1:2:

いっけん設定が凄い面倒そうに見えますが、インストール説明で紹介したページの設定ファイルをコピーしてあとは自分用にカスタマイズすればいいので以外と便利。実はこのブログで以前にamethystというウィンドウマネジャーを紹介しているのですが、amethystはウィンドウを思いもようない配置にしてしまっていまいち使い勝手が悪かったのですが、こちらはショートカットでウィンドウの大きさまでコントロール出来て、ウィンドウ位置の入れ替えや切り替えもショートカットで出来るので、ちょっとウィンドウ配置が崩れたなと思ったらすぐに直せるのでアプリの余計なお節介で戸惑うこともなく今のところ快適です。正直Magnetではウィンドウ位置を記憶出来ないので、自由にウィンドウをショートカットでいじれるこちらのほうが私は好きになりました。

ちなみにyabaiの全機能を使うにはMacのSIPというセキュリティーシステムを切る必要があるため、オススメできません。そのためスペース間のショートカットでのウィンドウ移動が出来なくなりましたが、まあ許容範囲でしょう。

追記:暫く使ってみて感じたのはショートカットをわざわざ使わなくても、マウスでドラッグしてやるだけで他のウィンドウに揃えて並べてくれるので便利だということです。マウス派にはMagnetやMoomがオススメという意見もあるかもしれませんが、私は勝手にウィンドウを揃えてくれるこちらのほうが好きです。(FinderとTerminalはショートカットでいつでも起動出来るようにして、他のウィンドウの上に重ねて配置するように最近変更しました。)