世界を動かす技術を、日本語で。

macOSにグリッド機能を戻してほしい

概要

  • 20年前のMacデスクトップ体験と現在の比較
  • macOS Leopardの「Spaces」グリッド機能への懐古
  • Lion以降のMission Controlの不満点
  • GridLionアプリ開発の経緯と課題
  • ソフトウェア販売や権限取得の現状

かつてのMacデスクトップ体験と「Spaces」グリッドへの懐古

  • 20年前、 低解像度の1画面 でも、 9画面以上を直感的に操作 できた体験
  • 筋肉記憶や空間記憶 で、複数画面をシームレスに切り替えられる快適さ
  • macOS 10.5 Leopardで導入された Spaces による仮想デスクトップのグリッド配置
    • 3x3グリッドで9つの仮想画面を運用
    • 画面ごとに 用途やアプリを割り当て、一瞬で切り替え可能
  • 物理ディスプレイのような空間的把握 ができるのが最大の魅力
  • このレイアウト思想は自作アプリにも影響(例:Drum Machine EasyBeatsの16画面グリッド)

Lion以降のMission Controlとその不満

  • 2011年、 macOS Lion でMission Control導入
    • 仮想デスクトップが 横一列のみ に制限
    • グリッド配置不可 となり、空間記憶が崩壊
  • キーボード操作時、 目的の画面にたどり着く効率が大幅に低下
  • 代替ツール(例:Total Spaces)は 安定性やセキュリティの問題 で使いづらい
  • 結局、 物理ディスプレイを追加購入 して妥協

ウィンドウマネージャへの違和感

  • YabaiやAerospaceなどの ウィンドウマネージャ も試すが、 自分の理想とは異なる
  • 「デスクトップ上のウィンドウ」より「作業領域ごとに完全分離」 したい
  • macOSのフルスクリーンアプリ やスプリットビューの方が好み
  • 作業状態をそのまま保存できる「ワークステーション」的運用 を重視

GridLion開発のきっかけと実装

  • アニメーションなしでスペース移動 できる手法を発見し、 グリッド再現を決意
  • LLMの支援で1日でプロトタイプ完成、即座に有用性を実感
  • より洗練されたツール を目指し、約1ヶ月かけてGridLionを開発
  • 名前の由来は 「Grid」+「Lion」 (macOS Lionに対する皮肉も含む)
  • 機能詳細はアプリページ参照、ここでは開発上の課題や裏話を紹介

権限取得のハードル

  • グローバルキーボードショートカットやスペース操作 にはmacOSの「アクセシビリティ」権限が必須
    • 設定フローが複雑で、 ユーザー体験が悪い
  • スペースのプレビュー表示 には「画面・音声収録」権限も必要
    • 複数回のダイアログとアプリ再起動が必要
    • セキュリティ警告が強烈 で、開発者自身も躊躇するレベル
  • ネットワーク通信は最小限 (アップデート確認やライセンス認証のみ)

AppStore外販売と決済の現状

  • AppStoreでは非公開 (プライベートAPI利用のため)
  • 販売・決済・ライセンス管理 のため、Merchant of Recordサービスを利用
    • 主な選択肢:Paddle、GumRoad、Lemon Squeezy
    • Lemon Squeezy を採用、ライセンスAPIが魅力
  • 販売開始には審査や証明が必要 (信頼性確保のため)
    • テストアカウントで事前検証が容易
  • AppStore外販売の現実的な選択肢 として注目

LLM活用の限界とUI/UXへのこだわり

  • LLM(大規模言語モデル)をコーディングアシスタント として活用
  • 高速な試作は可能 だが、 UIやUXの細かな調整は人間のこだわりが不可欠
  • 「良いソフトウェア」は作り手の情熱や細部への配慮で差別化
  • 情熱を持って開発すれば、LLM時代でも価値あるアプリは生まれる

Hackerたちの意見

これで、1日に何度もイライラすることが解消されるよ。グリッドはいいけど、瞬時に仮想ディスプレイを切り替えられるのがさらにいい。現代のmacOSで一番イライラするのは、Ctrl→→→→→→→を何度も押して、アニメーションを繰り返し見ることだよね。

そうそう!最悪だよね!私はこれを解決するために、Instant Space Switcherを使ってるんだけど(tfaでもちょっと紹介されてた)、これがマジで人生変わる。

MacやiOSのすべてのアクションがこれをやってて、ここ10年で侵入性が増してる。なんでこんなことをするのかはわからないけど、視覚デザイナーが未熟で、私たちが彼らのすごいアニメーションをデモだけじゃなく、1回だけのチュートリアルでもなく、何度も何度も、何十年も見たいと思ってるかのように感じる。全然そんなことないよ。一度で十分。アニメーションなんていらない。「アニメーションを減らす」機能の実装は、顔を叩かれたようなもので、すべての遅延は交渉の余地がないらしいけど、ぼやけたクロスフェードに変わるだけ。

あのアニメーションを見なきゃいけないのは本当に信じられない。新しいデスクトップにキーを押しても、アニメーションが終わるまで効果が出ないし、ただの狂気だよね。無限のリソースと才能あるデザイナーを持つ会社が、こんなクソみたいなものを作り出すなんてどういうこと??

これ試してみた? defaults write com.apple.dock expose-animation-duration -float 0.05; killall Dock

Ctrl + ↑を押してから、行きたいスペースをクリックすることもできるよ。これが即座にできるわけじゃないけど、特にデスクトップがたくさんある場合は、毎回サイクルするよりはちょっとマシかも。「最近の使用に基づいてスペースを自動的に再配置する」をオフにするのも必須だと思う。個人的には、デスクトップごとに一つのアプリだけ開いて、Command + Tabを使ってる。Command + Tabの後にCommandを押し続けると、すべてをサイクルすることなくアプリを選べるよ。

「承認されると、設定が開いて、ユーザーは特定のトグルを見つけてそれを有効にしなければならない。次に別のセキュリティプロンプトが出て、完了。」なんでこれがせいぜい2つのプロンプトじゃダメなの?答えは、現代のAppleが「初心者は特に最初にお願いすると‘許可’をクリックする」問題に対して特定の対策を取っているから。対策として、Appleはあなたを4〜5ステップの小さなシステム管理者の冒険のステップ2に放り込む。そこで毎回、あなたがその‘安全のために’封じ込められたパッド付きの庭からの例外を受けるに値するほど洗練されていることを証明しなければならない。完全なオタクとしては、こうやって自分のスキルを証明できるのはいいと思うかもしれないけど、ユーザーとしてこれを無効にできないのはすごく失礼に感じる。おばあちゃんや10歳の子供が「フルファイルシステムアクセスとキーロギングを許可」って、facebook-security-center-and-password-verification-cgi-bin-ab383 dot xyzからダウンロードした実行ファイルにクリックしちゃうのをどう防ぐの?知らん、それは彼らの問題だけど、無知じゃない私たちがオフにできる方法を提供すべきだよ。

それと、ちょっとイラッとくるのが、デフォルトのブラウザを変更するのに明示的なユーザーアクションや同意が必要なこと。そうすると、ブラウザやメールのリンクを開こうとしたときに、次に起こることは?「ブラウザがSafariからChromeに変更されました。Safariを使いますか、それともChromeを使い続けますか?」って、しかもデフォルトは「Safariを使う」なんだよね。

この特定の権限は厄介だよ、ちょっと考えてみて:これはキーロガーを書くために使われるんだ。これだけ。キーロガーを書くことを許可する権限なんだから、簡単にクリックできるべきじゃない。もっと手間がかかるべきだし、これは特に危険な権限だから、その余分な手間は正当化される。

それが理由じゃないかもしれない。これは、あなたがこのアクションを取るべきか考えるために一時停止させるためだと思う。一方で、多くのウェブサイトが通知を許可するかどうか聞いてくる。私はほとんど許可しない。最近設定を見てたら、うっかり「はい」をクリックしてしまったことが結構あって驚いた(多分5%くらいの誤クリック率?)。

長い間、実際の解決策はシステムを透明にして、侵害されたシステムが明らかになるようにすることだと思ってる。塩原でかくれんぼしてるイメージを想像してみて。

でも、私たちのように無知じゃない人のために、それをオフにする方法を提供すべきだよね。あなたが求めているものかは分からないけど、SIPを無効にすることはできるよ: https://developer.apple.com/documentation/security/disabling...

Appleがアプリをインストールしたり使ったりするのに、こんなに面倒な手続きをさせるのが怖いよ。でも、ログインアイテムに追加する時は、許可を求めてこないんだよね。ちょっとした使い捨てアプリを試して、必要ないって気づいたら?残念だったね。それが自動的にログインアイテムに追加されて、コンピュータを起動するたびにバックグラウンドで立ち上がるんだ。しかも教えてくれないし。アプリケーションフォルダからアプリを削除したと思った?ログインアイテムを確認しなかったら、深くインストールされたスクリプトがあって、次回の起動時にバックグラウンドで再インストールされる可能性があるよ。Adobeはこれが最悪だね。Creative Cloudのスパイウェアは、Photoshopを使ってる限り、自分で有効になって再インストールされ続ける。常に自分を再起動させる方法を見つけてくるし。Steamもログインアイテムに追加されるから、マジでうざい。再起動するとゲームの広告が顔に飛び込んでくるし。オフにした時はその決定を尊重してくれるけど、ログインアイテムはオプトインであるべきで、オプトアウトじゃないよ。

完全なオタクとして、こうやって自分のスキルを証明できるのは嬉しいと思うかもしれないけど、これを無効にできないのはユーザーとしてすごく不尊重に感じる。問題を理解しているようだけど、その後の対応がなかったね。これを無効にする方法があったら、おばあちゃんが最初にすることは、それを無効にする方法の動画を見ることだろうし、そこからセキュリティが失われることになる。もちろん完璧ではないけど、ここでのアプローチは本当に良いと思う。それに、もし頻繁にそれを通過する必要があるなら、セキュリティ的には良くないサインだと思う。

制限が厳しくなりすぎて、HyprlandでLinuxに移行して、自分が本当に望むようにすべてを設定したよ。

プロンプトを分かりやすくするのは、おばあちゃんがキーロガーをインストールするのを防ぐのにすごく役立つ。コンピュータを知らない人がそれを切り替えるように騙されるべきじゃないから、設定が明確でないのは気にしない。でも、macOSがVistaのポップアップや許可の多さをバカにした広告を作ったのに、今は毎日のように許可のプロンプトが飛び交うのを見るのは面白いね。

MacOS 10.11以前は、Mission Controlは良かった。4本の指でスワイプすると、すべてのスペースのプレビューが表示されたんだ。でも10.11で、理由もなくそれがクソになった。プレビューを表示する代わりに、バーには「デスクトップ1」「デスクトップ2」としか表示されなくて、マウスを乗せないといけない。結果的に、スペースを使うのが混乱して、記憶しなきゃいけなくなった。いくつかのサードパーティ製ソフトウェアがこの機能を復元しようとしてるけど、マウスを再配置してホバーをシミュレートすることで、遅延が生じてアニメーションとうまく統合されてない。誰かがSIPを無効にしてコードを注入するパッチを書いたけど(https://github.com/briankendall/forceFullDesktopBar)、結局メンテナンスをやめちゃった。10年後、Appleの誰かがこのユーザーインターフェースが以前は良かったことを覚えているとは思えない。

同意!「デスクトップ 1」、「デスクトップ 2」の表示は本当にイライラするよね。今は高解像度のモニターがあるのに、スペースを節約するためっていうのも意味がない気がする。

プレビューを見せる代わりに、バーには「デスクトップ 1」、「デスクトップ 2」としか表示されない。私はフルスクリーンモードでしかミッションコントロールを使わないから、その挙動には気づかなかった。フルスクリーンウィンドウから3本(または4本)の指で上にスワイプすると、プレビューがすぐに見えるよ。ただ、デスクトップとフルスクリーンで別のプレビューが必要な理由が全く分からない。このUXでイライラするのは、スペースが理由もなく再配置されること。普段、いくつかのIDEウィンドウを開いているから、ウィンドウが移動してないか確認するのが疲れるんだよね。

ちょっと脱線するけど、昔のAqua UIの方がずっと良かったな。操作部分とテキストの区別がつきやすかったし、見た目もすごく良かった(主観だけどね)。

面白いことに、Aquaが新しかった頃、プラチナの方がずっと良く見えたって思ってたのを覚えてる。

20年前、今よりも良いMacデスクトップ体験をしていた。20年前は2006年。今のデスクトップ体験は20年前と同じ(Fvwm2)で、この著者が懐かしがってるグリッドの仮想デスクトップレイアウトはずっとFvwm2(その前はFvwm)で使ってきた。Fvwmに切り替えた理由の一つは、グリッドの仮想デスクトップ機能だった。いつ切り替えたかはもう覚えてないけど、1990年代の中頃から後半にかけてだったと思う。だから、20年以上もグリッドの仮想デスクトップを使ってる。Fvwm2の設定は少しずつ調整してきたけど、企業のデザイナーが以前使っていた機能を取り上げることは一度もなかった。プロプライエタリなソフトウェアは、ユーザーの利益を考えているわけじゃなくて、自社の株価や次の四半期の売上を優先しているだけだから。

Linuxユーザーとしてこの記事を読むのは、ほとんどイライラしたよ。自分のニーズに合わせて何年もかけて洗練させてきたワークフローを、会社の意向で奪われるなんて想像できない。PlasmaとWaylandに切り替える前は、15年くらい同じ設定のXFCEを使ってて、アップデートに悩まされることもなかった。

まあ、そうだね。でも、少なくともまともなフォントレンダリングはあるよね。

昔のSpacesが恋しいのは私だけじゃないみたいで嬉しい。リリースの部分を好きなように組み合わせられないのは残念だね。OS X 10.9 Mavericks(最後のAquaリリース)に10.6のSpacesと現代のmacOS統合機能(Continuityなど)があったら、最高なのに。

Magnetは、今まで買ったMacアプリの中で間違いなくベストの一つだね。ウィンドウ管理がめっちゃ楽になるし、毎回ちゃんと動いてくれる。Command + Shiftを押して、ウィンドウを移動させたい画面の部分を選ぶだけ。これに複数のデスクトップを組み合わせると、ほんとに便利!おすすめだよ(URLをシェアしてもいいのか分からないけど、ダメだったらごめんね):https://magnet.crowdcafe.com/

macOSではこれをネイティブにできるよね?

これを証明することはできないけど、Appleに「不思議に[スペース]を横一列に制限する」インスピレーションを与えたのは自分だと思ってる。2009年に、ジェスチャーナビゲーションを備えたリニアウィンドウマネージャーのコンセプトビデオを作ったんだけど、今はほとんど忘れられてるけど、その当時はすべてのテックメディアに取り上げられて、2010年代初頭にいくつかのプロトタイプに影響を与えたんだ。リニアウィンドウ管理が全員の好みに合うわけじゃないけど、まだ有効なアイデアだと思ってる!このリリースとその反響を見て、同じ分野で今何か作業してるから、ちょっと嬉しかった。

そのビデオまだある?リンクをシェアして!

バーチャルデスクトップのグリッドレイアウトが好きな人に質問なんだけど、これってマルチモニターのセットアップとどうやって(あるべき?)相互作用するの?空間のメタファーが壊れちゃう気がする。 - 各モニターに独自のグリッドがあるの? - VDはペアのモニターをまたいでるの? - VDsは一つのモニターだけにあるの? - モニターがグリッドへの固定された「ウィンドウ」を形成するの? - それとも他に何か?

各画面に別々のグリッドを持ってるよ。それぞれ異なるグリッドサイズで。メインディスプレイには3x3のグリッド、左のディスプレイには2x2のグリッドを設定して、ノートパソコンのディスプレイは常にビデオ会議アプリにロックしてグリッドなしにしてる。私にはこれがうまくいってるけど、コメント見てるとみんなそれぞれ違うね :)

Kwinプラグインを使ってるから、ノートパソコンはいつも同じなんだけど、外部モニターはグリッドになってるんだよね。確かデフォルトだとKDEが全部同じグリッドを共有するようになってるはず。

クラシックからMacを使ってる。OSが生産性の制限要因になることはほとんどなかったから、Macを使ってきたんだ。実際、常に目立たないように作られてた。今はAppleに対する焦点がずれてる気がする。ほとんどの消費者は、もっと良い選択肢を知らなかっただろうけど、その自己満足がAppleが革新を続ける方法ではなかった。