Anh em xài Mac cay cú vụ vuốt chuyển màn hình mất cả giây? Cùng hóng cách một pháp sư can thiệp sâu vào macOS để chuyển Spaces tức thì không cần app bên thứ 3.

Anh em xài Mac để code chắc đ*o lạ gì cái vụ vuốt chuyển màn hình (Spaces) đúng không? Nhìn thì mượt đấy, mang ra cà phê loè gái thì xịn xò con bò, nhưng cái animation chết tiệt dài gần 1 giây của pháp sư Tim Cook nhiều lúc làm anh em tụt mood ngang. Đang flow nảy số ầm ầm mà phải ngồi đợi màn hình trượt trượt, cay thật sự.
Dev thì cần nhanh, nảy số liên tục. Đang SSH vào con vps xem log mà giật giật, vội vuốt sang màn hình VSCode để fix bug mà phải chờ cái animation di chuyển chậm rãi, cảm giác như mình đang dùng máy từ thời Tống vậy. Vấn đề là Apple rất độc tài (hoặc gọi mỹ miều là "bảo vệ trải nghiệm người dùng"), họ đ*o cho bạn tắt cái hiệu ứng này đi một cách dễ dàng. Bật Reduce Motion thì nó làm tắt cụ luôn mọi thứ khác, hoặc nó đổi thành hiệu ứng mờ mờ (crossfade) cũng tốn thời gian y hệt.
Nhưng vỏ quýt dày có móng tay nhọn. Một lão dev tên Arhan vừa đăng đàn bài blog "Native Instant Space Switching on macOS" và ăn ngay 463 points trên Hacker News. Không cần cài Yabai (vốn đòi tắt SIP phiền phức), không cần Amethyst cắn RAM. Lão này mò ra cách chọc thẳng vào API ẩn (Private Frameworks) của WindowServer trên macOS để ép nó chuyển đổi Spaces ngay lập tức (instant) mà vẫn giữ lại được sự mượt mà của các thao tác hệ thống khác.
Với số điểm cao ngất ngưởng, topic này rõ ràng gãi đúng chỗ ngứa của hàng ngàn anh em dev khổ dâm với macOS bao năm qua. Dù anh em không comment ở bài gốc của Arhan, nhưng dạo một vòng các thread bàn luận, có thể tóm gọn lại 3 luồng chân khí chính đang choảng nhau xôn xao:
Vụ này rút ra một bài học xương máu cho anh em dev: Dùng đồ Apple sướng thì sướng thật, phần cứng bá đạo, nhưng ecosystem của nó là một cái lồng son. Bạn muốn custom một cái UI cỏn con cho hợp tay? Mời bạn tự đi mà hack, mà reverse engineering.
Với tư cách là một thằng thợ gõ, tôi đánh giá cao những nỗ lực như của Arhan. Đừng bao giờ thỏa hiệp với những cái default "bất di bất dịch" nếu nó cản trở workflow của bạn. Tối ưu công cụ làm việc cũng chính là tối ưu cần câu cơm của mình đấy anh em ạ.
Nguồn tham khảo: