4 points par GN⁺ 2026-03-28 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Le point le plus agaçant après la mise à niveau vers macOS 26 n’est pas tant les bugs que le manque d’uniformité des coins de fenêtre ; plus que l’excès d’arrondis lui-même, le vrai problème est l’absence de cohérence selon les apps
  • Les solutions existantes exigent souvent la désactivation de SIP, avec un risque potentiel pour la sécurité, et restent complexes car elles impliquent de modifier directement les bibliothèques d’apps système comme Safari
  • En adoptant une approche limitée aux apps tierces sans désactiver SIP, il est possible d’uniformiser le rayon des coins de toutes les apps utilisateur à 23.0 en remplaçant (swizzling) les méthodes de la classe NSThemeFrame
  • Après compilation et signature de la dylib, l’application permanente est possible via un plist LaunchAgents qui l’injecte automatiquement au démarrage
  • Au final, toutes les fenêtres d’apps deviennent arrondies de la même façon, produisant un « mauvais design cohérent » mais un effet visuel unifié

Contexte du problème

  • En plus de divers bugs, macOS 26 se distingue par un problème marqué d’incohérence des coins de fenêtre
  • Plus que l’arrondi excessif des coins lui-même, c’est l’incohérence visuelle d’une app à l’autre qui est le plus désagréable
  • Le design d’interface est très contagieux : les designers ont tendance à reprendre tel quel celui des grandes entreprises, et ce phénomène pourrait encore se propager
    • Exemple : dans les débats de design, une pratique courante du secteur consiste à trancher avec une logique du type « comment Apple a dessiné ce bouton ? »

Problèmes des méthodes existantes

  • Certains utilisateurs ont tenté de résoudre ce problème en désactivant SIP (System Integrity Protection)
  • Désactiver SIP fait perdre la protection de sécurité du répertoire /root et impose de modifier directement les bibliothèques système utilisées par des apps système (Safari, etc.)
  • Certains estiment que si la machine est déjà compromise, l’effet protecteur réel de SIP est limité ; il n’en reste pas moins qu’un risque de vulnérabilité existe

Approche alternative : uniformiser les apps tierces

  • Au lieu de supprimer les coins, l’approche retenue consiste à tout rendre plus arrondi pour uniformiser l’ensemble
  • Utilisation d’une méthode d’injection de dylib applicable uniquement aux apps utilisateur (tierces), sans désactiver SIP
  • Application d’un code modifié à partir d’un fork d’une solution existante de suppression des coins

Implémentation technique

  • Swizzling des 4 méthodes ci-dessous de la classe NSThemeFrame
    • _cornerRadius → renvoie 23.0
    • _getCachedWindowCornerRadius → renvoie 23.0
    • _topCornerSize → renvoie CGSizeMake(23.0, 23.0)
    • _bottomCornerSize → renvoie CGSizeMake(23.0, 23.0)
  • Les apps système Apple portant le préfixe com.apple., ainsi que les outils CLI et les démons, sont exclus du périmètre d’application
  • Compilation d’une dylib universelle compatible avec les architectures arm64e et x86_64

Installation et application automatique

  • Compiler SafariCornerTweak.dylib avec clang, le copier dans /usr/local/lib/, puis le signer avec codesign
  • Définir la variable d’environnement DYLD_INSERT_LIBRARIES via un plist LaunchAgents (com.local.dyld-inject.plist)
  • L’enregistrer avec launchctl load ~/Library/LaunchAgents/com.local.dyld-inject.plist pour que l’injection de la dylib soit appliquée automatiquement au démarrage
  • Au final, les coins de toutes les fenêtres d’apps deviennent identiquement arrondis, donnant un « mauvais design cohérent » mais un résultat visuellement unifié

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.