4 điểm bởi GN⁺ 27 ngày trước | 2 bình luận | Chia sẻ qua WhatsApp
  • Điểm khó chịu nhất khi nâng cấp lên macOS 26 không phải là lỗi, mà là vấn đề các góc cửa sổ không đồng nhất; cốt lõi không nằm ở việc bo tròn quá mức mà là sự thiếu nhất quán khi mỗi ứng dụng lại được áp dụng khác nhau
  • Giải pháp trước đây yêu cầu vô hiệu hóa SIP, có thể tạo ra nguy cơ bảo mật và còn phức tạp vì phải sửa trực tiếp thư viện của các ứng dụng hệ thống như Safari
  • Theo cách tiếp cận chỉ áp dụng cho ứng dụng bên thứ ba mà không cần tắt SIP, có thể thống nhất bán kính góc của mọi ứng dụng người dùng thành 23.0 bằng cách thay thế (swizzling) các phương thức của lớp NSThemeFrame
  • Sau khi biên dịch và ký dylib, có thể áp dụng vĩnh viễn bằng cách tự động inject khi khởi động thông qua LaunchAgents plist
  • Kết quả là cửa sổ của mọi ứng dụng đều được bo tròn giống nhau, mang lại “một thiết kế tệ một cách nhất quán” nhưng hiệu ứng thị giác đồng bộ

Bối cảnh vấn đề

  • Ngoài nhiều lỗi khác, macOS 26 còn nổi bật với vấn đề các góc cửa sổ không nhất quán
  • Điều gây khó chịu hơn bản thân việc bo góc quá mức là sự thiếu nhất quán về mặt thị giác khi mỗi ứng dụng được xử lý khác nhau
  • Thiết kế UI có tính lây lan rất mạnh; các nhà thiết kế thường có xu hướng sao chép nguyên xi thiết kế của các công ty lớn, và hiện tượng này có thể còn lan rộng hơn
    • Ví dụ: trong các cuộc tranh luận về thiết kế, ngành này thường giải quyết theo kiểu “Apple vẽ nút này như thế nào?”

Vấn đề của các cách giải quyết trước đây

  • Một số người dùng đã thử giải quyết vấn đề này bằng cách vô hiệu hóa SIP (System Integrity Protection)
  • Khi tắt SIP, thư mục /root mất đi lớp bảo vệ, đồng thời cần chỉnh sửa trực tiếp thư viện hệ thống mà các ứng dụng hệ thống như Safari sử dụng
  • Cũng có quan điểm cho rằng nếu máy đã bị xâm phạm thì hiệu quả bảo vệ thực tế của SIP là hạn chế, nhưng bản thân nguy cơ bảo mật vẫn tồn tại

Cách tiếp cận thay thế: thống nhất ứng dụng bên thứ ba

  • Thay vì loại bỏ các góc, hướng đi được chọn là làm cho mọi thứ tròn hơn để đồng nhất
  • Sử dụng phương thức inject dylib có thể áp dụng chỉ cho các ứng dụng người dùng (bên thứ ba) mà không cần vô hiệu hóa SIP
  • Áp dụng mã đã được fork và chỉnh sửa từ giải pháp xóa góc hiện có

Triển khai kỹ thuật

  • Thay thế phương thức (swizzling) 4 phương thức dưới đây của lớp NSThemeFrame
    • _cornerRadius → trả về 23.0
    • _getCachedWindowCornerRadius → trả về 23.0
    • _topCornerSize → trả về CGSizeMake(23.0, 23.0)
    • _bottomCornerSize → trả về CGSizeMake(23.0, 23.0)
  • Các ứng dụng hệ thống Apple, công cụ CLI và daemon có tiền tố com.apple. được loại khỏi phạm vi áp dụng
  • Biên dịch universal dylib hỗ trợ cả hai kiến trúc arm64ex86_64

Cài đặt và tự động áp dụng

  • Biên dịch SafariCornerTweak.dylib bằng clang, sao chép vào /usr/local/lib/ rồi ký bằng codesign
  • Thiết lập biến môi trường DYLD_INSERT_LIBRARIES thông qua LaunchAgents plist (com.local.dyld-inject.plist)
  • Đăng ký bằng launchctl load ~/Library/LaunchAgents/com.local.dyld-inject.plist để tự động inject dylib khi khởi động
  • Cuối cùng, các góc của cửa sổ trong mọi ứng dụng đều được bo tròn giống nhau, tạo ra “một thiết kế tệ một cách nhất quán” nhưng kết quả thị giác đồng bộ

2 bình luận

 

Vẫn chưa cập nhật..

 
Ý kiến trên Hacker News
  • Sau khi nâng cấp macOS, đã xuất hiện vấn đề WindowServer chiếm hơn 100% CPU
    Thậm chí không thể dán tên tệp trong hộp thoại lưu tệp, và trường URL của Safari cũng hoạt động kỳ lạ
    Đã cải thiện tốc độ đôi chút bằng cách bật Giảm độ trong suốt trong Cài đặt hệ thống, tắt Spaces riêng cho từng ứng dụng, ẩn biểu tượng màn hình nền trong Finder, v.v.
    Khuyến nghị App Tamer để giới hạn mức sử dụng CPU của các ứng dụng chạy nền (không có tác dụng với WindowServer hay kernel_task)
    Dạo này Apple tạo cảm giác như không có người cầm lái. Việc phải chờ vài giây khi mở cửa sổ hay chuyển ứng dụng là một vấn đề nghiêm trọng
    Hy vọng một ngày nào đó AI sẽ thiết kế một hệ điều hành mới để Apple·Microsoft·Google lại cạnh tranh với nhau

    • Tôi không đồng ý với câu “máy tính đã chậm đi suốt hàng chục năm”. Theo trải nghiệm của tôi, hiện tại mới chính là thời kỳ hoàng kim của hiệu năng
      Với M2 Air, mở cùng lúc hàng chục tab và ứng dụng vẫn không có vấn đề gì. Ngày xưa khởi động mất 3 phút, cài game mất 30 phút, còn giờ thì gần như tức thì
    • Vấn đề WindowServer dùng 100% CPU không phải là nguyên nhân mà là triệu chứng. Nó xảy ra khi một ứng dụng nào đó yêu cầu cập nhật cửa sổ quá mức
    • Chúng ta đã thấy các hệ điều hành do AI tạo ra rồi, nhưng thành thật mà nói khó mà gọi đó là cải tiến
    • Tôi đồng ý với nhận xét “Apple không có người cầm lái”. macOS hiện tại giống một chiếc sà lan chậm chạp hơn là xe thể thao
    • Tôi đang cân nhắc chuyển sang QubesOS. Chạy cách ly ứng dụng và hệ điều hành trong sandbox mà vẫn không chậm hơn macOS 26
  • Tôi không thích thiết kế của macOS Tahoe. Đặc biệt là Apple Music đã trở nên kỳ quặc đến mức khó hiểu
    Nhưng đa phần vẫn có thể bỏ qua, riêng thiết kế tab thì xấu quá mức chấp nhận. Cảm giác như thụt lùi về mọi mặt so với trước

    • Tôi cũng đồng ý. Thiết kế của Safari đã trở nên quá bầu dục, nhìn rất kỳ. Tôi cũng từng nhắc điều này trong bình luận trước
  • Việc tranh cãi về góc cửa sổ lại lớn đến vậy có lẽ cũng có nghĩa macOS là một hệ điều hành rất hoàn thiện
    Tôi yêu Linux, nhưng kiểu tranh luận này rốt cuộc cũng có thể xem là một lời khen

    • Nhưng loại vấn đề này cũng có thể là một khuyết tật nền tảng cho thấy sự thất bại trong việc tách biệt các mối quan tâm. Nếu những thứ như vậy lộ ra thì nghĩa là toàn bộ hệ thống đang bị chắp vá như một vụ hack
    • Góc chỉ là vấn đề nhỏ thôi, còn có những vấn đề lớn hơn như Finder
    • Lập luận kiểu “nhiều bất mãn nhỏ là bằng chứng của một hệ điều hành tốt” cũng có thể áp dụng cho tranh cãi vị trí nút Start của Windows 11. Nói cách khác, nó không thuyết phục về mặt logic
    • Vấn đề thực sự là hệ thống quá cố chấp, đến mức người dùng không thể thay đổi những phần mình không thích
    • Lý do mọi người ám ảnh với các góc là vì đó là vấn đề nhìn thấy được. Những vấn đề thật sự thì sâu hơn và phức tạp hơn nhiều
  • Việc xóa thông báo trong macOS Tahoe quá phiền phức
    Nút “Liquid Glass” phản hồi chậm, và có độ trễ trước khi thông báo biến mất. Bản cập nhật ứng dụng nhạc cũng là tệ nhất

    • Nút trên macOS đúng là phản hồi chậm, nhưng trên iOS 26 còn nghiêm trọng hơn. Có rất nhiều UI cốt lõi không nhận chạm
    • Tôi cũng thấy thông báo quá phiền, nên đã chặn hết toàn bộ suốt nhiều năm nay
    • Những vấn đề phản hồi nút kiểu này đã tồn tại liên tục qua hơn 3 thế hệ phiên bản
    • Việc số lần nhấp tăng từ một lên hai cũng rất bất tiện
    • Nút thông báo ngay từ đầu đã có cảm giác nhão và phản hồi chậm
  • Mọi người ám ảnh với SIP (System Integrity Protection), nhưng trên thực tế nó không có tác dụng gì trong việc chống ransomware
    Nếu dùng các package manager như npm, pip ở ngoài VM thì còn nguy hiểm hơn cả việc bật SIP

    • Dĩ nhiên chạy bừa ứng dụng từ Internet thì nguy hiểm, nhưng SIP vẫn là một tính năng bảo mật mang lại lợi ích ròng. Nó ngăn người dùng mắc sai lầm
    • SIP bảo vệ hệ điều hành chứ không bảo vệ người dùng. Nếu ứng dụng bên thứ ba chạy rm thì dữ liệu vẫn bay mất
      Nhưng nhờ SIP mà vẫn có thể khởi động vào safe mode để khôi phục
  • Tôi dùng Linux và Windows chia đôi, và vì những lý do như thế này nên không thể dùng Mac làm máy chính
    Dock và cách hoạt động của chế độ toàn màn hình quá kỳ lạ. Việc đóng cửa sổ mà ứng dụng vẫn tiếp tục chạy cũng gây khó hiểu

    • Việc vị trí nút thu nhỏ/phóng to đã bị đổi mà không thể sửa khiến tôi phát điên
    • Nhưng nếu nghĩ ứng dụng và cửa sổ là hai thứ tách biệt thì khá hữu ích. Chỉ cần không bật thu nhỏ vào Dock là ổn
    • Cuối cùng thì đây chỉ là vấn đề quen thuộc. Môi trường thay đổi thì ai cũng thấy bất tiện
  • Tôi thích việc có những người nhận ra các chi tiết nhỏ như thế này. Nhờ khả năng quan sát của họ mà chúng ta cũng có cảm giác được bảo vệ

    • Ngày trước Apple hiểu rất rõ những chi tiết tinh tế như vậy. Dù người dùng không ý thức được, họ vẫn vô thức cảm nhận sự sụp đổ của tính nhất quán và mất niềm tin
    • Những người có xu hướng quá nhạy cảm như tôi thực sự cảm thấy đau đớn vì các thay đổi ở góc như thế này
  • macOS hiện tại giống như thể Harley Davidson và Volvo Truck sáp nhập rồi hợp nhất thiết kế với nhau
    Nó trở thành kết quả của những sự thỏa hiệp để đồng bộ thương hiệu

  • UI của macOS có vẻ được thiết kế dựa trên một kiểu sử dụng trong đó cửa sổ không chạy toàn màn hình mà được mở ở kích thước trung bình
    Nhưng với những ứng dụng dùng màn hình lớn như trình duyệt hay IDE thì đây là một giả định kỳ quặc

    • Đây là một truyền thống lâu đời. Ngày trước nếu cửa sổ không chạm góc màn hình thì tôi thấy bứt rứt, nhưng giờ dùng màn hình ultrawide thì ngược lại lại để cửa sổ nhỏ hơn
    • Nút màu xanh lá của macOS ban đầu không phải là ‘phóng to tối đa’ mà là ‘điều chỉnh theo nội dung’. Mãi sau mới có chế độ toàn màn hình thật sự
      Bây giờ cách để các cửa sổ chồng lên nhau rồi chuyển bằng một cú nhấp còn hiệu quả hơn
    • Tôi cũng không bao giờ dùng cửa sổ ở chế độ toàn màn hình. Nó quá nhiều khoảng trống và kém hiệu quả
      Nhưng UI mới lãng phí không gian nghiêm trọng, và việc kéo góc để đổi kích thước rất khó chịu
    • Tôi dùng màn hình 4K, và nếu mở toàn màn hình thì 3/4 trang web là khoảng trống, nhìn rất xấu
    • Triết lý điều chỉnh kích thước cửa sổ theo nội dung từng rất phù hợp trong quá khứ, nhưng lại không phù hợp với các ứng dụng chuyên nghiệp hiện đại
  • Các tab dạng viên thuốc (pill tabs) là thứ gây khó chịu nhất
    Đó là một thiết kế kỳ quặc, vừa gây rối mắt vừa truyền tải thông tin kém