Chế độ đóng nắp trên macOS, không cần kext
Nhiều công cụ hứa giữ MacBook chạy khi nắp đã gập, và hỏi xem chúng làm thế nào là hợp lý. Đây là phiên bản thành thật về cách LidRun làm chế độ đóng nắp trên macOS không cần kext — toggle đó thực ra là gì, vì sao nó luôn tự hoàn tác, và những đánh đổi bạn nên biết trước khi tin tưởng nó.
Chế độ đóng nắp thực ra bật-tắt cái gì
Khi bạn gập nắp MacBook, macOS thường ngủ trong vòng vài giây trừ khi có màn hình ngoài và thiết bị nhập đang điều khiển một phiên clamshell desktop thực thụ. Để giữ công việc chạy với nắp đã gập mà không gắn thêm gì, phải có thứ gì đó bảo hệ thống đừng ngủ khi đóng nắp.
LidRun làm điều đó bằng toggle pmset disablesleep có tài liệu. Không có kernel extension, và không có driver DriverKit giả vờ rằng có một màn hình đang kết nối. Đây chính là cần gạt quản lý nguồn được hỗ trợ mà Apple cung cấp, bật lên trong suốt phiên rồi tắt lại sau đó.
Lựa chọn đó là có chủ đích. Một kext hay cách giả lập màn hình có thể hỏng khi cập nhật hệ điều hành và đòi hỏi sự tin tưởng sâu vào hệ thống; còn toggle có tài liệu hẹp hơn, dễ đoán hơn, và làm đúng một việc — bảo macOS đừng ngủ khi nắp gập lại.
Vì sao nó luôn tự hoàn tác
Một toggle như thế này chỉ an toàn nếu luôn được đảo ngược. Mối nguy là để lại một chiếc Mac về mặt vật lý không thể ngủ — đó là cách một chiếc laptop bị nướng chín trong túi. Nên LidRun luôn ghép việc bật với một lần tắt tương ứng: bật lên để bắt đầu phiên, tắt lại khi bạn dừng, khi bạn thoát, và một lần nữa khi ứng dụng khởi động lại và đối soát trạng thái.
Nhưng ứng dụng có thể crash, và một lần crash về lý thuyết có thể để toggle kẹt ở trạng thái bật. Đó là việc của CrashGuard. Ở lần khởi động kế tiếp, LidRun đối soát thiết lập disablesleep trở về trạng thái an toàn, nên một lần crash không để Mac mất khả năng ngủ. Bất biến rất đơn giản: lần bật không bao giờ bị bỏ lửng.
Đây cũng là lý do LidRun hiện một cảnh báo nhiệt và yêu cầu xác thực admin trước khi bật chế độ đóng nắp. Thay đổi thiết lập này cần quyền admin, và cảnh báo tồn tại vì một chiếc nắp gập theo thiết kế sẽ giữ lại một phần nhiệt — bạn nên đồng ý khi đã biết điều đó, chứ không vô tình bước vào.
Hướng dẫn liên quanMột quy trình làm việc đóng nắp cho lập trình viên dùng MacBookVì sao điều này nghĩa là DMG trực tiếp, không phải App Store
Toggle pmset disablesleep cần xác thực quản trị viên và không an toàn với sandbox của Mac App Store. Sandbox mà App Store đòi hỏi sẽ không cho LidRun gạt thiết lập đó, nên chế độ đóng nắp đơn giản là không thể tồn tại bên trong nó.
Đó là lý do LidRun phát hành dưới dạng DMG trực tiếp đã được notarize thay vì qua App Store. Đây là một đánh đổi: bạn tự tải về và cài đặt thay vì lấy từ một mục niêm yết trên cửa hàng. Ở lần mở đầu tiên ngoài App Store, bạn có thể cần vào System Settings, rồi Privacy and Security, rồi Open Anyway — hoặc trên macOS cũ hơn, nhấp chuột phải và chọn Open.
Notarize nghĩa là Apple đã quét bản build để tìm mã độc dù nó không phân phối qua cửa hàng. Vậy nên bạn vẫn có lần kiểm tra đó; bạn chỉ là đồng ý dùng một khả năng mà sandbox sẽ cấm.
Những đánh đổi thành thật trước khi dựa vào nó
Không toggle phần mềm nào thay đổi được vật lý. Một chiếc nắp gập hạn chế luồng khí trên mặt bàn phím và giữ lại một phần nhiệt, nên một job nặng sau nắp đóng chạy nóng hơn cùng job đó khi mở nắp. Bộ điều phối an toàn của LidRun theo dõi mức pin và trạng thái nhiệt, và sẽ để Mac ngủ nếu áp lực leo quá cao, điều này giúp giảm rủi ro — nhưng nó không làm nhiệt biến mất.
Cách đặt máy vẫn quan trọng hơn bất kỳ thiết lập nào. Hãy chạy trên mặt phẳng cứng, thoáng khí, không bao giờ trên giường hay trong túi đóng kín, và ưu tiên nguồn điện cho các job đóng nắp dài để loại bỏ chuyện hao pin.
Nếu tất cả những gì bạn cần chỉ là giữ màn hình sáng, bạn không cần chế độ đóng nắp gì cả — một assertion giữ thức đơn thuần là đủ và tránh hẳn lời nhắc admin. Chỉ dùng tới chế độ đóng nắp khi bạn thực sự muốn gập máy lại và bước đi.
LidRun giữ công việc của bạn chạy tiếp khi đóng nắp, với cơ chế bảo vệ pin và nhiệt tích hợp sẵn.
Câu hỏi thường gặp
Không. Nó dùng toggle pmset disablesleep có tài liệu — không kext và không giả lập màn hình bằng DriverKit. Đó là một cần gạt hẹp hơn, dễ đoán hơn so với một kernel extension.
CrashGuard đối soát thiết lập disablesleep trở về trạng thái an toàn ở lần khởi động kế tiếp, nên một lần crash không để Mac mất khả năng ngủ. Lần bật luôn được ghép với một lần tắt tương ứng khi dừng, thoát và khởi động lại.
Thay đổi thiết lập pmset disablesleep cần xác thực quản trị viên. LidRun cũng hiện một cảnh báo nhiệt cùng lúc, vì một chiếc nắp gập giữ lại một phần nhiệt và bạn nên đồng ý khi đã biết điều đó.
Chế độ đóng nắp cần toggle pmset, vốn không an toàn với sandbox của App Store. Thay vào đó LidRun phát hành dưới dạng DMG trực tiếp đã notarize, nên vẫn được Apple quét nhưng có thể cung cấp một khả năng mà sandbox sẽ cấm.