- macOS 26にアップグレードして最も不快なのはバグ以上に ウィンドウ角の不一致 問題であり、過剰な丸みそのものよりも、アプリごとに異なる適用による一貫性の欠如が本質
- 従来の解決策は SIPの無効化 を要求し、セキュリティ上の脆弱性につながる可能性があり、Safariのようなシステムアプリのライブラリを直接修正しなければならないため複雑
- SIPを無効化せず サードパーティアプリにのみ適用 するアプローチとして、
NSThemeFrame クラスのメソッドを置き換え(swizzling)、すべてのユーザーアプリの角丸半径を 23.0 に統一
- dylibをコンパイル・署名した後、LaunchAgents plist を通じて起動時に自動注入する方式で恒久的な適用が可能
- 結果としてすべてのアプリウィンドウが同じように丸くなり、「一貫して悪いデザイン」だが統一された視覚効果 を得られる
問題の背景
- macOS 26ではさまざまなバグに加えて ウィンドウ角の不一致 問題が目立つ
- 過度な角丸そのものより、アプリごとに処理が異なる 視覚的一貫性のなさ のほうが不快な要素
- UIデザインは伝染性が高く、デザイナーが大企業のデザインをそのまま追随する傾向があり、この現象がさらに広がる可能性がある
- 例: デザイン論争の際に「Appleはこのボタンをどう描いたか」で決着をつけるような業界慣行
従来の解決方法の問題点
- 一部のユーザーは SIP(System Integrity Protection)の無効化 でこの問題を解決しようと試みている
- SIPを無効化すると
/root ディレクトリの保護が失われ、システムアプリ(Safariなど)が使用する システムライブラリの直接修正 が必要になる
- すでにマシンが侵害されている状況ならSIPの実質的な保護効果は限定的だという見方もあるが、セキュリティ上の脆弱性が生じる可能性自体は存在する
代替アプローチ: サードパーティアプリの統一
- 角をなくす方向ではなく、すべてをより丸くする 方向で統一する方針を採用
- SIPを無効化せずに ユーザーアプリ(サードパーティ)にのみ適用できるdylib注入方式を使用
- 既存の角除去ソリューションをフォークして修正したコードを適用
技術実装
NSThemeFrame クラスの以下4つのメソッドを メソッド置き換え(swizzling)
_cornerRadius → 23.0 を返す
_getCachedWindowCornerRadius → 23.0 を返す
_topCornerSize → CGSizeMake(23.0, 23.0) を返す
_bottomCornerSize → CGSizeMake(23.0, 23.0) を返す
- com.apple. プレフィックス を持つAppleのシステムアプリ、CLIツール、デーモンは適用対象から除外
arm64e および x86_64 アーキテクチャの両方をサポートする universal dylib をコンパイル
インストールと自動適用
- clangでSafariCornerTweak.dylibをコンパイルして
/usr/local/lib/ にコピーした後、codesign で署名
- LaunchAgents plist(
com.local.dyld-inject.plist)を通じて DYLD_INSERT_LIBRARIES 環境変数を設定
launchctl load ~/Library/LaunchAgents/com.local.dyld-inject.plist で登録すると、起動時に自動でdylib注入が適用される
- 最終的にすべてのアプリウィンドウの角が同じように丸くなり、「一貫して悪いデザイン」だが視覚的には統一された結果 を得られる
2件のコメント
まだアップデートしてないまま..
Hacker Newsの反応
macOSへのアップグレード後、WindowServer が CPU を 100% 以上消費する問題が発生した。
ファイル保存ダイアログではファイル名の貼り付けすらできず、Safari の URL 欄もおかしな動作をする。
システム設定で 透明度を下げる、アプリごとのスペース分離を無効化する、Finder でデスクトップアイコンを隠す、といった方法で速度が少し改善した。
バックグラウンドアプリの CPU 使用率を制限する App Tamer を勧める(WindowServer や kernel_task には効果なし)。
最近の Apple には舵取り役がいないように感じる。ウィンドウを開いたりアプリを切り替えたりするたびに数秒待たされるのは深刻な問題だ。
いつか AI が新しい OS を設計して、Apple・Microsoft・Google がまた競争するようになってほしい。
M2 Air で数十個のタブやアプリを同時に開いても問題ない。昔は起動に 3 分、ゲームのインストールに 30 分かかったが、今は一瞬だ。
macOS Tahoe のデザインが気に入らない。特に Apple Music は理解できないほどおかしくなった。
ただ大半は無視できるとしても、タブのデザイン だけはあまりにも醜い。以前よりあらゆる面で後退したように感じる。
ウィンドウの角をめぐる論争がここまで大きくなるのは、macOS がそれだけ 完成度の高い OS だということかもしれない。
Linux は大好きだが、こうした論争は結局ほめ言葉と見ることもできる。
macOS Tahoe の通知消去 があまりにも煩わしい。
「Liquid Glass」ボタンの反応が遅く、通知が消えるまでにも遅延がある。音楽アプリのアップデートも最悪だ。
人々は SIP(System Integrity Protection) に執着しているが、実際には ランサムウェア対策として何の効果もない。
npm や pip のようなパッケージマネージャーを VM の外で使うなら、SIP を有効にしていてもそれ以上に危険だ。
rmを実行すればデータは消える。それでも SIP のおかげで セーフモードで起動して復旧 できる。
私は Linux と Windows を半々で使っているが、こうした理由で Mac をメインにできない。
Dock とフルスクリーンの挙動 があまりにも奇妙だ。ウィンドウを閉じてもアプリが動き続けているのも混乱する。
こういう細かな部分に気づく人たちがいるのは良いことだ。彼らの 観察力 のおかげで、こちらも守られているように感じる。
今の macOS はまるで Harley Davidson と Volvo Truck が合併 してデザインを統合したような印象だ。
ブランド統一のために妥協した結果物になってしまっている。
macOS の UI は、ウィンドウをフルスクリーンにせず 中くらいのサイズで浮かせて使うパターン を前提に設計されているように見える。
しかしブラウザや IDE のように大きな画面を使うアプリには妙な前提だ。
今ではウィンドウを重ねておいて ワンクリックで切り替える 方式のほうが効率的だ。
ただ、新しい UI は空間の無駄が大きく、角をドラッグしてリサイズ するのがいら立つ。
ピル型タブ(pill tabs) がいちばん気に障る。
視覚的に散漫なうえ、情報伝達力も低い 奇妙なデザイン だ。