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

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...

Hacker Newsで議論の続きを見る