運営中

Framis

macOSのウィンドウマネージャー。

何を解いているか

ウィンドウを並べ替えるとき、頭の中にあるのは「左に何か置きたい」です。ところが既存のウィンドウマネージャーは、どれも先にウィンドウを選ばせます。同じアプリのウィンドウが3つ開いていると、狙った1枚を選ぶまでが作業になります。

なぜ作ったか

Rectangle / Magnet / Moom / Raycast / AeroSpace / yabai をひととおり試したうえで、共通していたのが「Windowを選んでからZoneを指定する」順序でした。Framisはこれを逆にしています。ホットキーで Arrange Mode を開くとレイアウトの各エリアに番号が振られ、番号を押してから、そこへ置くウィンドウをインラインのピッカーで選びます。ウィンドウあたり2キーで終わります。 常時ウィンドウを管理するタイリング型にはしませんでした。整えたいときだけ呼び出して、終わったら手を引く。それ以外の時間のmacOSの挙動は変えません。

設計の判断

  • ウィンドウとゾーンを選ぶ順序を逆にした

    RectangleもMagnetもRaycastも、ウィンドウをフォーカスしてから行き先を指示します。 Framisはこれを逆にして、ゾーンを数字キーで選んでからウィンドウ一覧を出します。 フォーカスではなく一覧から選ぶので、Safariが3枚開いていても3枚目を名指しできます。 ドラッグ&ドロップは採らず、キーボードだけで完結させました。

    既存ツールの Window → Zone と、Framis の Zone → Window を左右で対比した図
    ウィンドウを選ぶ手段がフォーカスなのか一覧なのかで、同じアプリの3枚目を指せるかが決まる
  • 常時管理せず、呼んだときだけ介入する

    常時ウィンドウを監視して並べ替えるタイリング型にはしていません。 ホットキーで呼んだときだけ介入し、終わったら手を引きます。 ウィンドウの開閉を監視する仕組みも持っていません。 ドラッグの開始をきっかけにする案も、意図しない発動を避けるために既定では無効にしています。

    共通の時間軸で、常時管理型が開閉ごとに再配置し、Framis はホットキーの区間だけ介入することを示した図
    常時管理型はウィンドウの開閉ごとに再配置する。Framis は呼ばれた区間だけ介入する
  • 候補を巡回させず、横に並べた

    ゾーンを選んだあとのウィンドウ選択は、順に切り替える形ではなく横に並べて見せています。 Cmd+Tabのように巡回させると、目的の1枚に着くまで何回押すか分かりません。 一覧にすれば枚数が多くても位置で選べます。

    レイアウト候補を巡回させる方式と、ミニチュアを横に並べる方式を上下で対比した図
    巡回では飛ばした数だけ手数が増える。並列なら、どれでも1回のポインティングで届く

提供形態

対応プラットフォーム
macOS
動作要件
macOS 15.6 以降(Apple Silicon / Intel)
価格
無料
配布
GitHub Releases(公証済み)
必要な権限
アクセシビリティ
レイアウト
プリセット8種、グローバルホットキーは変更可
プラットフォーム
  • macOS

開発の記録

Framisを作るなかで書いた記事です。

ほかのプロダクト

同じプラットフォーム向けに作っているものです。

← 自社プロダクト一覧へ