AeroSpaceでtagベースなworkspace管理をする

会社で支給されたMacで開発をしないといけない状況があって、どうにかLinuxでの操作感に近づけないかとAIに相談したところ

でかなり近い環境をつくれますよ! ということだったので試してみたところ、うーん、ないよりはマシだが、なかなか厳しいな…というのが正直なところだった。

AeroSpaceとは

macOS用のタイル型Window Manager。過去にもいくつか似たようなものを試したことがあるんだけど、その中では一番筋が良いと感じる。というのも、他のものはMac自体のworkspace管理と連携するように作られていて、そもそもその時点でマインドセットがおいつかない、というか理解がむずかしく、結果うまくつかえない、ということになっていた。

AeroSpaceはその点まったくそれに依存していなくて、Macの中では一つのデスクトップしかつくらないので、他OSから来た人にやさしい。

それでもなかなか厳しい、と書いたのは、わたしにとっての一番の問題はワークスペース管理だった。

AeroSpaceのワークスペース管理はなんというかオーソドックスな普通のやつ(なんて言えばいいんだ?)、でもわたしが求めているのはtagベースなワークスペースなのだ。

Tagベースなワークスペースとは?

わたしはかなり長い間awesomeというウィンドウマネージャをつかっていて、ここ数年はriverというものを使っているが、どちらもtagベースのワークスペースを持っている。

普通のワークスペースと、tagベースのワークスペースの一番の違いは、普通のワークスペースは一度に一つのワークスペースしか表示できないが、tagベースのワークスペースは 同時に何個でも表示することができる 、ということだ。

わたしの典型的な使い方を例に説明してみる。基本的に1タグに対して1アプリケーションを置く感じで運用している。

  1. Ghostty
  2. Firefox
  3. Emacs
  4. Slack

みたいな感じ。わたしは1から10までのtagを利用していて、開発系のツールは1から左寄、コミュニケーションとかそれ以外のアプリは10から右寄せにして利用することがおおい。

で、Emacsでコードを書いているときに、Webでのドキュメントを参照しながら書きなくなったとする。

普通のワークスペースではEmacsかFirefoxかどちらかを移動させなければならない。そして用がおわったらまた元に戻す。かなり面倒だ。

tagベースのものなら、Emacsを使っているときに、Firefoxのtagも表示させる、ということが簡単にできる。これがとっても快適で、いちど慣れてしまうとこうでなくては開発がしんどくなる。

従来型のワークスペースとタイル型というのは相性がわるいと思っていて、タイル型はアプリが重ならないので、一つのワークスペースにおけるアプリケーションの量が少なくなるからだ。だからよっぽど大きなモニタでもないかぎりタイル型+従来型ワークスペースというのはワークしないとおもっている。

ないものは作ればいい

1週間ほど、上で書いたような、Windowをムーブさせる使い方でがんばっていた[1]が、AeroSpaceの仕組みもだいぶわかってきたし、tagベースのワークスペース管理を外づけで付けるソフトウェアを書いてみた。

typester/aerotag: Tag-based workspace management for AeroSpace.

実は、過去にもHyprlandというWM用に同様のもの[2]を作ったことがあって、だいたいのやり方はわかっていた。ただ、今回は全部Geminiにやらせてみた。

数時間でさくっと動くものが出来て、それを使ったら快適すぎて感動した。

マルチモニタ周りとか、いろいろバグをあらかたつぶしおわるには、さすがにそこそこ時間がかかったが、とりあえず大体欲しいものは出来た感じ。

Macでも生きていけそう

さらに、冒頭でも出した

  • AutoRaige: マウスカーソルに追従してアプリのフォーカスを変えてくれるアプリ
  • JankyBorders: アクティブなwindowにわかりやすくボーダーを付けてくれるアプリ

を使うと、ほんとにLinuxで作業してるのとおなじ感じになって最高すぎる。ひさびさにライフチェンジングなものを作ってしまった。

AeroSpace + AeroTag

この画像はtag1とtag3を表示しているところ。

SketcyBarというのでメニューバーもつくれるようにしてみたが、個人的にどのタグが表示されているかというのは頭に入っているから、あまりこういうメニューバーがうれしいとは思わないので、つくってはみたが、使ってはいない。[3]

Tag型のワークスペース管理は良いぞ

良いのになんでこんなにマイナーなのか?は謎だが、まぁタイル型Window Managerというの自体がマイナーな感じはするが。とにかく一度試してもらいたい。

いちど慣れると、Window Managerの設定をそろえれば、ほとんど同じように使えるので、学習コストがかかるのは最初だけだ。

現にわたしはawesomeとおなじ操作体系になるよう、riverもAeroSpaceも設定しているので、これらのWMを行き来してもまったく同じように使える。

このエントリーを見て、ちょっと触ってみっか、という人が少しでもいれば幸い。