MacOS 26을 일관되게 나쁘게 만들기 (진심으로)

4 hours ago 1
  • MacOS 26에서는 창 모서리의 불일치와 과도한 둥근 디자인이 주요 문제로 지적됨
  • 일부 사용자는 System Integrity Protection(SIP) 을 비활성화해 시스템 루트 접근 후 수정 작업을 수행함
  • 작성자는 기존 해킹 코드를 수정해 모든 창의 모서리를 동일하게 둥글게 만드는 방식으로 시각적 일관성을 확보함
  • 구현은 Objective‑C와 AppKit을 사용하며, Apple 시스템 앱을 제외한 서드파티 GUI 앱에만 적용됨
  • 결과적으로 모든 앱 창이 동일하게 둥글어져, “일관되게 나쁜 디자인”이지만 통일된 시각 효과를 얻음

MacOS 26의 창 모서리 일관성 문제와 수정 코드

  • MacOS 26 업그레이드 후 창 모서리의 불일치와 과도한 둥근 디자인이 문제로 지적됨
    • YouTube UI의 둥근 모서리가 대표적인 예로 언급되며, 대형 기업의 디자인을 모방하는 경향이 업계 전반에 확산되고 있음
    • 이로 인해 ‘과도한 둥근 모서리’ 디자인이 다른 서비스로도 퍼질 가능성이 있음
  • MacOS 26의 창 모서리는 일관성이 부족하며, 일부 사용자는 이를 수정하기 위해 System Integrity Protection(SIP) 을 비활성화함
    • SIP을 끄면 시스템 루트 접근이 가능하지만, 보안이 약화될 수 있음
    • Safari 등 시스템 앱의 동적 라이브러리를 수정하려면 루트 권한이 필요함
  • 기존의 “모서리를 각지게 만드는” 해킹을 포크해, 반대로 모든 창을 동일하게 둥글게 만드는 방식으로 일관성을 확보함
    • NSThemeFrame 클래스의 _cornerRadius, _getCachedWindowCornerRadius, _topCornerSize, _bottomCornerSize 메서드를 런타임에서 교체(swizzling)
    • kDesiredCornerRadius 값을 23.0으로 고정해 모든 GUI 앱 창의 모서리를 동일하게 둥글게 설정
  • 구현은 Objective‑C와 AppKit 프레임워크를 사용하며, Apple 시스템 앱은 제외하고 서드파티 GUI 앱에만 적용
    • NSBundle의 bundleIdentifier가 com.apple.으로 시작하면 패치가 건너뛰어짐
    • CLI 도구나 데몬에는 적용되지 않음
  • 적용 절차는 다음과 같음
    • clang으로 SafariCornerTweak.dylib 동적 라이브러리 생성 후 /usr/local/lib/에 저장
    • codesign으로 서명하고, LaunchAgents에 com.local.dyld-inject.plist를 추가해 시스템 부팅 시 자동 로드
    • launchctl load ~/Library/LaunchAgents/com.local.dyld-inject.plist 명령으로 활성화
  • 최종적으로 모든 앱 창의 모서리가 동일하게 둥글어져, “일관되게 나쁜 디자인”이지만 시각적으로 통일된 결과를 얻음

각주 요약

  • [1] YouTube UI의 둥근 모서리를 가장 보기 흉한 예로 언급
  • [2] SIP 비활성화 시 루트 보안이 약화되지만, 이미 시스템 접근이 가능한 경우 큰 문제는 아니라고 언급
Read Entire Article