macOSはグリッドを取り戻すべきだ
(blog.hopefullyuseful.com)- macOSのSpacesはLeopard時代、ユーザーが設定できる3x3グリッドによって、仮想デスクトップを実際の画面のように扱えるようにし、ブラウザ・エディタ・Xcode・シミュレータを空間記憶で行き来できるようにしていた
- Mission ControlはmacOS Lionで仮想デスクトップを横一列に制限し、キーボードで特定の画面まで滑るように移動するかショートカット番号を覚える必要が生じ、空間記憶を壊してしまった
- Total Spacesは動作の遅さを生み、のちにはシステムDockの改変とSIP回避に依存するようになり、YabaiやAerospaceのようなウィンドウマネージャはフルスクリーンアプリや作業ごとの専用スペースを好む使い方に合わなかった
- GridLionは、InstantSpaceSwitcherがアニメーションなしでspaceを切り替えるのを見て生まれた解決策で、制限されたMission Control APIの代わりに単一行のネイティブspaceをモデル化し、グリッドのように見せる
- LLMは1日で動くプロトタイプを作るのに役立ったが、UIの感触には人間のフィードバックループが必要であり、GridLionに残るAPIの限界を考えると、グリッドベースのSpacesは再びOS機能であるべきだ
Leopard Spacesが作った空間記憶
- macOS 10.5 LeopardのSpacesは仮想デスクトップをmacOSにもたらし、ユーザーがスペースを望むグリッドに配置できるようにした
- 3x3グリッドは9つの画面のように使え、中央にWebブラウザ、上にWebエディタ、左上にXcode、その下にiOSシミュレータというように、アプリや作業を固定できた
- 特定の位置へ1回のキー入力で移動する方式は、実際に独立した物理ディスプレイを見ているかのような筋肉記憶と空間記憶を生み出した
- EasyBeats Drum Machineの16個のシーケンス画面グリッドも、AppleのSpaces配置から直接影響を受けていた
Lion以降に消えたグリッド
- macOS LionはMission Controlを導入し、仮想デスクトップを横一列に制限した
- 横一列では、キーボードで特定の画面へ移動するには延々と水平方向に進む必要があり、直接ショートカットを使う場合でもブラウザが7番画面なのか8番画面なのかを覚えなければならなかった
- この変更によって、デスクトップを空間上の位置で覚えるやり方を維持しにくくなった
- Total Spacesのような代替手段もあったが、動作が遅くなり、システムDockの改変に依存し、のちにはSIP回避が必要になった
ウィンドウマネージャより作業別スペース
- YabaiやAerospaceのようなウィンドウマネージャは、すべてのユーザーにとって同じ解決策にはならなかった
- ウィンドウをデスクトップ上で整理する方式は、机の上の紙を動かす感覚に近く、必要だったのは、すべてがそのまま残る別々の作業台に近いものだった
- macOSのフルスクリーンアプリと分割表示モードは、1つの作業に専用の領域を与えるやり方であり、グリッドベースのspace探索とより相性がよかった
GridLionの実装方法
- InstantSpaceSwitcherはシステム改変なしでmacOSのspace切り替えアニメーションをなくし、アニメーションのない切り替えを見たことで、グリッド探索の問題を解ける可能性が見えてきた
- macOSはMission Control APIの大半を制限しているため、文書化されたAPIではデスクトップを追加したり並べ替えたりできない
- GridLionはネイティブspaceの上に軽量なラッパーを置き、macOSの単一行spaceを内部モデルでグリッドのように見せる方式を採用した
- LLMの助けで、粗削りだが動作するプロトタイプが1日で作られ、数日使ったあとで、さらに洗練されたツールが必要になった
- 約1か月後に満足できる水準へ到達し、アプリ名はmacOS Lionで生じた問題とグリッドを組み合わせて GridLion になった
権限と配布の壁
- グローバルなキーボードショートカットを捕捉してspaceを探索するには、macOSの
Accessibility権限が必要 - macOSの権限フローはiOSのように承認してすぐ終わりではなく、設定を開いてユーザーが特定のトグルを見つけて有効にし、その後に追加のセキュリティプロンプトを承認する必要がある
- spaceの小さなプレビューを作るには
Screen and System Audio Recording権限も必要で、見えないウィンドウや画面のプレビュースナップショットのため、より強い警告ダイアログが表示される - GridLionはその権限がなくても動作するが、プレビュー機能を使うには権限が必要
- 信頼を築くため、アプリはユーザーが要求したアップデート確認とライセンスキー検証以外ではネットワークにアクセスしないようにする必要があった
- GridLionはspace情報を得るために非公開APIを呼び出すため、App Storeには公開できない
- App Store外で販売するには、購入・税務・返金を処理するMerchant of Recordが必要で、Paddle、GumRoad、Lemon Squeezyが候補になった
- Lemon SqueezyはLicense code APIを提供しており、購入者にライセンスキーを渡し、アクティベーション・無効化・検証メソッドを提供する
- Lemon Squeezyの承認では、実際の価値と用途がある製品を販売していることを示す必要があり、スクリーンキャストとソーシャルメディアアカウントの証明が必要だった
- 承認前でもテストアカウントを使えたため、アプリとの統合を簡単に設定してテストできた
LLMと残る限界
- LLMは、具体的なAPI結果や大規模データセットへのクエリのように目標が明確な作業では、結果を見て反復しやすい
- ユーザーインターフェースは多くの部分が感覚に左右されるため、ユーザーに見える機能では人間がフィードバックループの中にいる必要がある
- ネイティブなMac/iOS開発からほぼ10年離れていた状況ではLLMは助けになったが、同じアプリを昔のやり方でも似たような時間で作れ、しかもより多くを学べたのではないかという疑問は残った
- GridLionは、spaceグリッドの探索と再配置、高速で安定した動作、ディスプレイごとのグリッドサイズとショートカット設定を目標として備えている
- spaceを1つのディスプレイから別のディスプレイへ移したり、ウィンドウをあるspaceから別のspaceへ移したりする作業には、信頼できるAPIがない
- GridLionはMission Controlと一緒に動作するため、こうした作業はMission Controlで処理できる
- 特定のアプリが起動したときに常に特定のグリッド位置に表示される機能は、もともとmacOS Spacesにあったが、GridLionでは今後の課題として残っている
- グリッドベースのSpacesは、次のmacOSで再びネイティブなOS機能として戻ってくるのが最も望ましい
1件のコメント
Hacker Newsの意見
Appleの現在のやり方は、「初心者はどうせ許可を押してしまう」という問題を防ぐためとして、ユーザーを毎回 4〜5段階のミニシステム管理者アドベンチャー に放り込んでいるように見える
設定で小さなトグルを見つけて有効にし、さらにセキュリティプロンプトを通過しなければならないのに、熟練者ですらこれを無効にする方法がないのは、ユーザーへの敬意が欠けているように感じられる
祖母や10歳の子どもが怪しい実行ファイルに「ファイルシステム全体へのアクセスとキーロギングを許可」を押してしまう問題はAppleが解くべきだが、事情を理解しているユーザーにはこの保護を無効にする手段を与えるべきだ
完璧ではないにせよAppleのアプローチはかなり妥当で、こうした手順を頻繁に通らなければならないなら、それ自体がセキュリティ上よい兆候でもない
逆にWebサイトは通知の許可を頻繁に求めてくるが、たいてい望んでいない。最近設定を見ていて、誤って許可していたケースが思ったより多いことに驚いた。だいたい5%くらいは押し間違いだと思う
この権限は キーロガー を作るために使われる。それがすべてだ。キーロガーを書けるようにする権限なのだから、ワンクリックで終わってよいものではなく、追加手順が正当化されるほど危険な権限だ
spctl --master-disableを一度実行して設定メニューで一度操作すれば済むからだ。なぜTCCはこのようにできないのかわからないプレビュー用途については、Appleが一般的な作業向けのAPIを提供できるはずだ。OSが画像を提供し、任意録画として使いにくいリフレッシュレートでサンプリングすればよい
キーの組み合わせについては、現状外部バインドできない絵文字キーを再利用し、特定の「マジックシーケンス」の後にだけキャプチャを許可するような形にできる。OSが中央でコマンドを管理し、プログラムには具体的なキー入力ではなくコマンドだけを渡せば、競合の調整も中央集権的に行える利点がある。いまのmacOSではこの部分はかなりつらい
すべての問題を解決するわけではないが、一部は解決できる。もっとよい方法もあるはずだ。Appleには優秀なプログラマーが十分いるのだから、製品チームは専門ユーザーが明らかに不便を感じている問題を解決できるようにすべきだ
MacOS 10.11以前のMission Controlは良かった。4本指で上にスワイプすると、すべてのSpacesのプレビューが表示されていたのに、10.11で理由もなく壊され、バーには「Desktop 1」「Desktop 2」のような名前しか表示されず、マウスを乗せないとプレビューが出なくなった
実際の効果としては、Spacesの利用が方向感覚を失わせ、暗記を要求するものになっている
これを復元したふりをするサードパーティ製ソフトもあるが、マウスを動かしてホバーを再現する方式なので遅延があり、アニメーションともきちんと統合されない。SIPを無効にしてコード注入で動かすパッチもあったが(https://github.com/briankendall/forceFullDesktopBar)、結局メンテナンスは止まってしまった
10年たった今、Appleの中にこのUIがかつて良かったことを覚えている人がいるのか疑わしい
ただ、デスクトップとフルスクリーンで異なるプレビュー挙動が必要な理由はまったくわからない
このUXでいちばん腹立たしいのは、Spacesがはっきりした理由もなく並べ替えられることだ。普段IDEのウィンドウをいくつか開いているのだが、ウィンドウが移動したかどうか毎回確認しなければならず疲れる
OS全体に プロジェクト や 作業 のような概念が必要だ。この概念はアプリをまたぎ、ウィンドウ管理やSpacesに深く統合されるべきだ
マルチタスクとコンテキストスイッチはここ数年で増え続け、インスタントメッセージングがそれを再び押し上げ、エージェントベースのワークフローはその方向をさらに強めるだろう。同じアプリを複数の作業で使うのだから、これはアプリ単位の関心事ではなく、OSが支援すべきだ
IDEはワークスペースやプロジェクトという基本概念を持ち、コードやターミナルの文脈を復元できるのである程度助けになる。しかし、Webページ、IDE外のエージェント、同僚との関連チャット、プロジェクト管理アプリなど、つながっているものは常に別々のままだ
これは明らかにアプリレベルではなく OSレベルの関心事 だ。iPadの代替的なウィンドウ構成の実験の一部には可能性を感じたが、個人的には十分に強力でも直感的でもなかった
なぜより多くのパワーユーザーがこの構成を理想的だと考えないのか理解できない。Zen Browserが堅実な代替になってくれることを期待している
¹https://blogs.kde.org/2026/01/17/streamline-plasma-with-acti...
ワークスペースに 無限の空間 があるので、あるワークスペースが手狭になったからといって新しいワークスペースを作ろうと考えなくてよいのも気に入っている
証明はできないが、AppleがLeopardでSpacesを「なぜか横一列にしか制限しない」ようになったことに、自分が着想や原因として関わっていたのかもしれないと思っている
2009年にジェスチャーナビゲーションを含む線形ウィンドウマネージャーのコンセプト動画を作り、今ではほとんど忘れられているが、当時は技術系メディアでかなり取り上げられ、2010年代初頭のいくつかの概念実証にも影響を与えた
線形ウィンドウ管理は万人向けではないが、今でも有効なアイデアだと思う。今回のリリースと反応を見て元気づけられたし、実際に今まさにこの分野の何かに取り組んでいる
今日1時間かけて期待どおりに動かそうとしたが、まだおかしな点がある。利用頻度ベースの自動並べ替えをオフにしても、3本指スワイプのプレビュー順と実際のウィンドウ順が一致しない。見た目の順序は予想どおりなのに、スワイプ順が線形ではない
https://github.com/mogenson/PaperWM.spoon
そのデザインと、それがGnomeにしたことが本当に嫌いだ。グリッドのほうがずっと良かった
macOSのウィンドウ管理が、Macへ移れない理由になっている。Aerospaceのような解決策もすでに試したが、i3wmで感じる素早くて邪魔のない体験は再現できなかった
残念ながらmacOSのウィンドウマネージャーは、iOSの通知に似ている。時間がたつと生産性を下げる混沌にも慣れてしまうが、そのせいでより良い解決策を見逃してしまう。そしておそらく、すべてのmacOS開発者がMacを使っているので、他のより良いアプローチを見たり理解したりできていない可能性が高い
この機能まわりのすべてが、どれほど間抜けに作られているかに衝撃を受けた。数年前にはできたことが、今ではできない。たとえばキーボードでデスクトップやワークスペースへ切り替えることや、グリッドのようなものだ
「AltTab」アプリを使えば少なくともマウスなしでアプリ切り替えはできるし、raycastでウィンドウ配置もできるが、macOSでは切り替えや配置がタイル型ウィンドウマネージャーよりずっと遅いのがつらい
良いUIに対する最大の脅威は、プロのUIデザイナーが大勢いることだと確信している。UIデザイナーの半分は中央値以下で、そういう人たちはUIデザインを職業として選んだ
毎年、現状維持を守るだけではキャリアを伸ばせないので、何かを新しくデザインしなければならない。以前のものがうまく機能していようがいまいが、作り直されることになる。しかもUIデザイナーの半分は中央値以下なのだから、新しいUIデザインが後退になる確率も半分ある
そしてAppleの発表イベントのステージでLiquid Glassについて延々と語るような状況になる。悲しいのは、多くのデザイナーが視覚面にしか注目せず、ユーザビリティをほとんど理解していないように見えることだ。たとえば新しく業界に入ってくるデザイナーのうち、Fittsの法則を知っている人はどれくらいいるだろう? Liquid Glassの明白なユーザビリティ問題に対して踏みとどまったデザイナーはどれくらいいただろう? 正直、まれな例外を除けばデザイナーが問題だ
プロダクトの目的、このUI断片の目的、ヒューマンファクター、インタラクション設計、美的要素を超えたユーザー体験といったものがそれに当たる
それぞれについて口では重視すると言うが、実際にはあまり考慮されていない。面接用ポートフォリオや経営陣向け報告資料で勝てる要素ではないからだ。結果として、そうした要素を強くふるい落とす構造になっている
少し話はそれるが、昔のAqua UIのほうがずっと見栄えが良かった。何がコントロールで何がテキストなのかがずっと見分けやすかっただけでなく、視覚的にももっと美しかった
可能な操作ごとにボタンらしく見えるボタンがあり、ツールバーを見れば可能な操作全体を一目で把握できることが多い。コンテンツの一部がクリック可能なのか、編集可能なのかを推測する必要がない
最近は何にでも過剰な余白が入る。現代のWindowsのコントロールパネルUIは、空白が多くて、いくつかのスイッチが点在する多段組みのテキストの壁のように感じられることが多い。昔のUIと同じ数のオプションを収めるには、「もう誰も必要としていない」という理由で一部のトグルを隠すか、途中のナビゲーション段階を追加しなければならなかった。その結果、新しいコントロールパネルは肥大化して、役に立たなくなったように感じられる
これは日に何十回も感じる苛立ちを解消してくれる。
グリッドも良いが、さらに良いのは即時の仮想ディスプレイ切り替えだ。
現代の macOS における「小さな不便を何千個も積み重ねて殺しにくる」要素の中でも、Ctrl→→→→→→→ を押して繰り返しアニメーションに延々と付き合わされるのと同じくらいひどいものはない。
理由は断言できないが、視覚デザイナーが未熟で、私たちがかっこいいアニメーションをデモや一度きりのチュートリアルだけでなく、一日中、何十年にもわたって繰り返し見たいと思っていると考えているかのように感じる。
まったくそんなことはない。一度で十分だった。アニメーションなど要らない。それに「動きを減らす」の実装は侮辱的だ。遅延はそのままで、ぼやけたクロスフェードに変わるだけだ。
無限の資源と才能あるデザイナーを抱えた会社が、どうしてこんなものを作れるのか分からない。
この問題だけを狙った対策として Instant Space Switcher を使っているが、人生が変わるほどだ。
Ctrl-UpArrowを押してから目的の Space をクリックすることもできる。即時ではないが、デスクトップが多いときには一つずつ順番に回していくよりはましかもしれない。Automatically rearrange Spaces based on most recent useをオフにするのも必須だと思う。個人的にはデスクトップごとにアプリを1つだけ開き、Command-Tab だけを使っている。Command-Tab のあとも Command を押し続ければ、すべてのアプリを順に回さなくてもアプリを選べる。
defaults write com.apple.dock expose-animation-duration -float 0.05; killall Dock「20年前の Mac デスクトップ体験の方が今より良かった」と言うとき、その20年前は2006年のことだ。私は今でも20年前と同じデスクトップ体験を使っている。
Fvwm2 を使っていて、この筆者が恋しがっているグリッド型の仮想デスクトップは Fvwm2 と、その前の Fvwm の仮想デスクトップ機能でずっと享受してきた。Fvwm に移った理由の一つもグリッド型仮想デスクトップで、正確な時期は覚えていないが1990年代の中頃から後半だった。
Fvwm2 の設定はその間に少しずつ磨いてきたが、企業のデザイナーが、私が使っていた機能をもう使うなと決めたことは一度もない。
プロプライエタリソフトウェアはユーザーの利益を考えていない。見ているのは株価か次の四半期の売上だけだ。
Plasma と Wayland に移る前は、XFCE をほぼ15年間ずっと同じ設定で使っていて、アップデートのせいで邪魔されることもなかった。
Apple が縦方向の Spacesを廃止したときは本当に信じられなかった。不要な画面を飛び越えなければならなくなって、自分にとってはこの機能が役に立たなくなり、結局使うのをやめた。実用的ではない。