13 ポイント 投稿者 GN⁺ 2025-10-14 | 1件のコメント | WhatsAppで共有
  • macOSで利用できるオープンソースのタイル型ウィンドウマネージャで、パフォーマンス使いやすさを重視して開発中
  • システム整合性保護(SIP)を無効化せずに動作し、macOSの「Displays have separate Spaces」オプションと互換性のある数少ないウィンドウマネージャの1つ
  • i3/swayおよびbspwmに似たさまざまなレイアウトスタイルをサポート
  • Mission Controlスタイルのワークスペース移動やトラックパッドジェスチャーなど、macOSネイティブ環境との自然な連携を提供
  • アニメーション性能とユーザー体験を重視し、設定のホットリロードと外部プログラムとの連携機能が特長
  • 既存のmacOS向けタイル型ウィンドウマネージャであるAerospaceの長所(パフォーマンス、柔軟性など)を一部継承しつつ、アニメーション対応やマルチディスプレイ環境で1つのディスプレイだけをフルスクリーンにするなどの追加機能を目指している

主な機能

  • 複数のレイアウトスタイル: i3やswayのようにウィンドウをグリッド状に配置したり、bspwmスタイルの二分空間分割方式をサポート
  • メニューバーアイコン: すべてのワークスペースと、そのワークスペース内のレイアウト状況を視覚的に表示
  • macOSのMission Controlスタイルのナビゲーション: ワークスペース間の切り替えを視覚的に簡単に管理可能
  • マウスフォーカスの自動切り替えおよび自動前面化機能を提供
  • ウィンドウのドラッグ時に位置を入れ替えでき、アニメーションも滑らかに動作
  • トラックパッドジェスチャー利用時に、macOSネイティブのようなワークスペース切り替えが可能
  • **実行中の設定変更(ホットリロード)**をサポートし、リアルタイムでの構成変更が非常に容易
  • Sketchybarなどのサードパーティプログラムとのインターフェース、およびCLIまたはmach portを介した連携をサポート
  • ワークスペース変更やウィンドウ変化時に**シグナル(Signals)**を外部へ送信でき、シグナルはCLIまたはmach接続を通じて送出可能
  • Rust言語で100%開発

1件のコメント

 
GN⁺ 2025-10-14
Hacker Newsのコメント
  • 昔は i3 をかなり使い込んでいた。i3 は非常に柔軟で設定の自由度も高く、単にウィンドウを動かす以上のことができる。ただ、Mac に移ってからは、多機能で安定したタイル型ウィンドウマネージャーが見つからなかった。いろいろ試した末に、今はただ Rectangle を使っている。Rectangle は本当の意味でのウィンドウマネージャーではなく、ウィンドウを左/右/上/下や 3/4/6 分割へ簡単に動かすためのショートカットを提供するだけだ。自分の使い方の 80% くらいはカバーしてくれるし、カスタム設定も不要で予期しない挙動もないので満足している。年を取ると、いろいろなカスタム設定に時間をかけるのもしんどい。Rectangle 公式サイト

    • Rectangle で本当に気に入っている機能は todo モードだ。実際のタスク管理には使っていないが、特定のウィンドウを常に表示するよう固定できて、全体のウィンドウショートカットもそれに合わせて自動調整されるのでとても便利
    • Rectangle が Spectacle のショートカットオプションをサポートしてくれて本当にありがたい。いつか標準ショートカットも覚えるのかもしれないが、今はもう手に馴染んでいるのでこのやり方を続けている
    • Rectangle と Apptivate の組み合わせのおかげで、何年も i3 の代替を探していた悩みが終わった。Rectangle でウィンドウ移動、Apptivate で super+数字 によるウィンドウ切り替え――まさに i3 で使っていた動きをそのまま再現できる
    • 似たような体験だが、自分は Rectangle の代わりに Divvy を使っている。Divvy 公式サイト
    • Rectangle はおすすめ。Linux から Mac に移るとき、適応がずっと楽だった
  • 5k/6k ディスプレイでは一般的なタイル配置には限界がある――ウィンドウが大きくなりすぎる。だから moon のようなアプリのほうがずっと良いと思う。Windows には Moom のようなアプリがないので、komorebi のようなタイル型マネージャーを使っている。複数の OS やデバイスを行き来する人間として、rift が汎用的な alt+hjkl のようなキーバインドをサポートしていないのは残念だ。超高解像度やウルトラワイドモニターでは、こうしたウィンドウ配置が必須だと思う(komorebi は対応している)

    • 貼り付けた ASCII 図が見づらいなら、コードブロックは空白 4 つでインデントすると HN ではコードとして表示される
    • komorebi はもうすぐ macOS にも来るらしい komorebi macOS 紹介動画
  • 多くの人には物足りないかもしれないが、自分のように Mac では主に 1 つのウィンドウしか使わない、あるいは外部モニター接続時だけ 2 画面を使う程度なら、この標準機能MacOS 公式ウィンドウ分割ガイドで十分だ(自分はヘビーなタイル派ではない)

    • この機能、Tahoe の Mac でしか使えなかったのだろうか。今まで知らなかった
    • こんな機能があるなんて全然知らなかった――情報ありがとう
  • macOS でフルスクリーンとトラックパッドジェスチャーが本当に魅力的に感じられるのは、たいてい 1 つのウィンドウでしか作業しないからだ。でも、ターミナル・エディタ・ブラウザの DevTools・ログ・文書のように複数のウィンドウを同時に開く必要があるときは、レイアウトの予測可能性がとても重要になる。タイルツールは単に 2 つのウィンドウを並べるだけではなく、

    • コンテキストスイッチのオーバーヘッドを大きく減らせる(キーボードだけでウィンドウ切り替え/再配置)
    • よく使う作業レイアウトをプロジェクトごとに複製できる
    • 超高解像度画面では正確な分割がはるかに有用
      自分は Mac では Rectangle や Moom で 80% ほど解決し、それ以外は Aerospace や Rift を使っている。ウィンドウ数や切り替え頻度が増えるほど、タイル型ウィンドウマネージャーの有用性ははっきりしてくる
  • 以前、自分専用のウィンドウマネージャーを作ろうとしたことがあるが、macOS にはまともな API がなくてすぐ諦めた。実際にはアクセシビリティ API をハックして使うしかない。このプロジェクトも Objective C バインディングとアクセシビリティ API を使っているようだが、デバッグや機能実装、それから主にどんなツールを使ったのか気になる

    • アクセシビリティフレームワークは、単なる「ハック」と呼ぶにはかなりよく設計されたツールだと思う。ここ 1 か月ほど Rust で似たようなプロジェクトを作りながら macOS フレームワークの各種バインディングを触っていたが、そこまで恐ろしいものではない。開発環境は Rust と rust-analyzer、それに Apple のドキュメントと objc2 のドキュメントを開いておけば十分で、XCode のような複雑なセットアップも不要だ
  • 自分も最近、Aerospace をかなり手に馴染むよう設定するために大変な yak shaving を経験した。ショートカットが大量に衝突するとき、みんなどう解決しているのか気になる。自分は hjkl の組み合わせに慣れているので、これで大半を割り当てたくなるが、Aerospace のモーダル機能がショートカット衝突を多少は解消してくれる。最終的にみんなどういう設定にしているのだろう?

    • たいてい特に解決策もなくそのまま使っている気がする。自分も日常的に使っているとショートカット衝突はすぐ出てくる。Aerospace を 1 年ほど使っていて、alt+space をリーダーキーにして全部隠している。Aerospace のノーマルモードには alt-shortcut をいくつか置き、{hjkl} でウィンドウ移動し、残りは別モードで処理している(例: go-tomove-to モードで文字/数字に合わせて素早くウィンドウ移動)。ターミナルで zellij/tmux を使い、leader key ベースの操作性を拡張した感じで満足している。ひとつ困るのは、Aerospace が画面切り替え後にウィンドウを隠してしまうので、下の隅で探し回ることがよくある点だ
    • Aerospace を使ってみたが、デフォルト設定では alt+英字(26 個)をすべて別々のワークスペースに割り当てていて、各アプリで使える Emacs 系ショートカットを全部潰してしまう。基本キーマッピングや使い方のチュートリアルすらなく、コマンドが大量に並んでいるだけだ。最近は sway や hyprland のような Linux 環境でもかなり苦労したが(Linux のブートローダーやディスク暗号化周りの作業までやった)、そこまで不親切なソフトウェアは珍しいと感じた。なので Aerospace は削除して、次の候補として Rift を考えている。あるいは自分でウィンドウマネージャーを実装するかもしれない――そもそもタイル型ウィンドウマネージャー自体が「必要な機能は自分で作る」という趣味的な妥協の産物でもあるので
    • 自分も似たようなやり方で、Karabiner で外付けキーボードの右 Option を Option+Shift(A1)に、右 Control を Control+Option+Shift(A2)に変えた。Aerospace の設定ではフォーカス移動を A1+hjkl、ウィンドウ移動を A2+hjkl。ワークスペース切り替えは A1+ui、ウィンドウのワークスペース移動は A2+ui。画面(モニター)切り替えは A1+m、ウィンドウの画面移動は A2+m。実際に一番よく使うショートカットの組み合わせだし、アプリ同士でショートカットが衝突したらそのアプリ側のショートカットを変えて回避している。もっと拡張もできそうだが、今の形でも十分うまく機能している
    • meh(control+alt+shift)と hyper(control+alt+shift+command)のショートカットを活用している。caps lock を長押しすると meh、短くタップすると esc になるようマッピングしている。そのおかげで多くのショートカットを片手に収まるようにできた。たとえば meh+数字 で space 切り替え、ターミナルのホットウィンドウは meh+space、ウィンドウフォーカスも meh+hjkl
  • Hammerspoon を使えば自分でウィンドウマネージャーを作れる。自分は Divvy が提供していたモーダル方式(コマンド単打でレイアウト切り替え)が好きだが、残念ながらもうメンテナンスされていない。そこで OpenAI Codex で自分用のモーダルウィンドウマネージャーを作ってみた hammerspoon 用ウィンドウマネージャーのソースコード。こういうアプローチを共有すると面白いかもしれない!

    • 自分も divvy をずっと使ってきたが、メンテナンスが止まっていたとはまったく知らなかった……。とはいえ、必要な機能はもう全部あるので特に不便はない。もし追加してほしい機能があるなら気になる
    • 自分は MiroWindowsManager(Hammerspoon プラグイン)で必要な機能をすべて実現している。3 種類の chord division 方式で、どんなウィンドウでもホットキーだけで即座に好きな分割へ配置できる。本当に数秒で思い通りに並べられる
  • MacBook のトラックパッドユーザーなら、Swish だけはどのアプリよりも圧倒的だ Swish 公式サイト

    • 確かに "highly opinionated" という名前を実感する ;)。ただ、自分が Divvy を継続的に好む理由は、カスタムしたキーボードショートカットがトラックパッドでも外付けキーボードでも常に同じように動くからだ。Divvy 公式サイト
  • これ(nix flake)で設定した人いる? yabai 以降いろいろなウィンドウマネージャーを試しているけど、Aerospace はイベント処理の問題なのか、sketchybar できれいなワークスペース表示をしようとすると時々ラグが出る。次はこれ(rift)も試してみようかと思う

  • なぜ macOS でタイル型ウィンドウマネージャーが必要なのか分からない。ウィンドウを並べる必要なんてそんなに頻繁にあるだろうか。大半のアプリはフルスクリーンにして、4 本指スワイプで切り替えれば十分では? 誰か説得してほしい

    • 本当によく使う。Slack を右 1/4 に置いて、残りはブラウザ/ターミナル/IDE など組み合わせ次第でいろいろ配置する。ブラウザ+ログ tail のような並べ方もよくするし、各アプリの中でもマルチビューやターミナルなどで分割することがある。ブラウザでページを横に並べて見ることも多い
    • 別にタイル型ウィンドウマネージャーが「必要だ」と言うつもりはない。ただ、「フルスクリーンにして 4 本指スワイプで十分」が合うのは、あなたにとってだけかもしれない。自分はジェスチャー、アニメーション、複数デスクトップ(Spaces)をほぼ全部無効にしている。フルスクリーンアプリ間の移動は遅すぎるし、必要なアプリにたどり着くには何度もスワイプを重ねないといけない。アプリの並び順を頭の中で計算しながら何回移動するか考えるのが嫌だ。欲しいアプリをすぐその場で開きたい
    • macOS ではないが、Linux でタイル配置を使う理由と似ていると思う。ノート PC の画面だけ使うならフルスクリーンのほうがいいが、モニターが大きくなるほどウィンドウを並べる理由が増える。文書/メール、エディタ/ターミナル/VCS、コード/文書、テンプレート/ウェブ、会計/銀行、ファイル管理など、異なるアプリを同時に見ながら作業することが多いので、タイル配置のほうがずっと生産的だ
    • 確かに複数ウィンドウを横に並べておけると便利なことはある。たとえばウェブブラウザ/文書/IDE のように複数の作業をするときや、1 つのアプリだけで画面全体を使う必要がないときだ。実際、大半のアプリはフルスクリーンサイズを必要としないし、むしろ 1/4 タイルのほうが快適なことも多い。自分は普段フルスクリーン+仮想デスクトップもよく使うが、作業次第だ
    • 昔は Spaces(デスクトップ切り替え)をよく使っていたが、大きなモニターではむしろ 1 つの画面に全部出しておくほうが楽だ。自分は 32 インチのモニター 3 台を使っていて(左右は縦置き)、IDE を除けばほとんどフルスクリーンは使わない。画面分割は常に小さい画面を複数持っているようなものなので、どのウィンドウがどのデスクトップにあるか探す必要がなく、シンプルで効率的だ。Chrome だけでも複数の Spaces にまたがっていると cmd-tab で目的のウィンドウが選ばれないことが多く、結局自分で探しに行く必要があって面倒だ。一方、ノート PC だけ使うときは画面が小さいので仮想 Spaces 中心でウィンドウを管理する。Slack、複数の Chrome、Terminal、IDE、Postman、DataGrip などすべてのアプリをショートカット 1 回で切り替えられ、画面全体を切り替える必要もない。実質 8 枚の実画面を常時表示しているようなものなので生産性が最大化される。r-cmd で各アプリにフォーカスできるので切り替えも非常に速い。仮想デスクトップを行き来する必要がないぶん見つけやすい