Closed-lid mode di macOS, tanpa kext

Ya — closed-lid mode di Mac bekerja tanpa kernel extension. Ini adalah toggle pmset disablesleep yang terdokumentasi, tuas yang sama di balik sudo pmset -a disablesleep 1 di Terminal, hanya saja dipegang secara otomatis alih-alih dikelola sendiri secara manual. Berikut versi rincinya: apa sebenarnya yang dilakukan toggle itu, apa yang sudah diberikan caffeinate dan clamshell mode eksternal-display bawaan Apple secara gratis, apa yang bisa salah kalau Anda membalik saklarnya sendiri, dan bagaimana LidRun memegangnya tanpa membuat Mac Anda tersangkut dalam keadaan terjaga.
Mengapa menutup lid membuat Mac tertidur
Tutup lid MacBook tanpa perangkat lain yang tersambung, dan macOS akan tertidur dalam hitungan detik. Itu disebut clamshell sleep, mekanisme yang berbeda dari idle sleep biasa. Cara resmi Apple untuk mengatasinya adalah clamshell mode dengan display eksternal: sambungkan monitor, tetap terhubung ke daya AC, dan Mac akan tetap berjalan dengan lid tertutup tanpa batas waktu, tanpa software pihak ketiga sama sekali — ada layar yang terus digerakkan macOS, jadi lid yang tertutup jadi tidak relevan lagi.
Tanpa display eksternal, tidak satu pun tool keep-awake populer bisa menembus batas itu dengan cara normal. caffeinate, Amphetamine, KeepingYouAwake, Lungo, dan Caffeine semuanya bekerja dengan memegang IOKit power assertion — IOPMAssertionCreateWithName, API terdokumentasi untuk "jangan idle-sleep." Itu nyata, dan memang efektif menjaga display atau seluruh Mac tetap terjaga selama lid terbuka. Tapi assertion hanya memblokir idle sleep. Menutup lid memicu clamshell sleep di level yang lebih dalam, yang tidak bisa dihentikan oleh assertion apa pun, tidak peduli aplikasi mana yang memegangnya — itu batas di level OS, bukan celah pada tool tertentu.
Satu-satunya tuas publik dan terdokumentasi yang benar-benar mengubah perilaku saat lid ditutup tanpa display tersambung adalah pmset disablesleep — pengaturan power management system-wide yang sudah ada di macOS sejak awal.
Opsi-opsi gratis: clamshell mode Apple, caffeinate, dan pmset
Kalau Anda punya display cadangan, pakai saja. Sambungkan, tetap terhubung ke daya, lalu tutup lid — itulah setup closed-lid resmi dan didukung Apple: tanpa software tambahan, tanpa password admin, tidak ada apa pun yang perlu diingat untuk dimatikan kembali. Ini jawaban yang tepat untuk setup meja kerja permanen.


Tidak punya display cadangan? caffeinate adalah tool command-line bawaan Apple (man caffeinate). caffeinate -i memblokir idle sleep, caffeinate -d juga memblokir display sleep, dan caffeinate -s menjaga seluruh sistem tetap terjaga selama daya AC tersambung dan proses masih berjalan. Ini benar-benar berguna untuk script yang tidak boleh idle-sleep — tapi ia mewarisi titik buta clamshell-sleep yang sama dengan semua tool berbasis assertion: tutup lid tanpa display tersambung, dan Mac tetap tertidur di baliknya.
Tuas yang benar-benar bekerja saat lid tertutup, tanpa display, adalah tuas yang sama yang diotomatisasi oleh aplikasi-aplikasi closed-lid: sudo pmset -a disablesleep 1 di Terminal, bisa dicek kapan saja dengan pmset -g | grep SleepDisabled, dan dimatikan kembali dengan sudo pmset -a disablesleep 0. Ini terdokumentasi, gratis, dan sudah ada di Mac Anda.
Panduan terkaitApakah alarm Mac tetap berbunyi saat lid tertutup?Jebakannya: ini pengaturan global, dan tidak mati dengan sendirinya
disablesleep tidak terikat pada sesi Terminal atau script Anda — ini flag persisten yang berlaku system-wide. Setel ke 1, dan nilainya tetap 1 meski aplikasi ditutup, window Terminal ditutup, atau sesi SSH selesai. Lupa mengembalikannya, dan Mac benar-benar tidak bisa tidur sampai ada yang mereset: Anda menjalankan perintahnya lagi, atau reboot.
Itulah risiko sebenarnya yang dimaksud orang saat mereka berhati-hati soal tool closed-lid — laptop yang secara fisik tidak bisa tidur, tersimpan dalam tas, tanpa ada yang mengawasi kondisi termal atau baterai. pmset sendiri tidak tahu apa-apa soal suhu SoC atau sisa baterai. Ia cuma memegang pengaturan itu sampai diperintahkan sebaliknya.
Ini juga persis skenario kegagalan yang membuat lapisan crash-safety perlu ada — karena script atau aplikasi yang menyalakan flag ini lalu crash, di-force-quit, atau kehilangan koneksi SSH-nya, meninggalkan pengaturan yang sama-sama tersangkut.
Cara yang lebih aman menjalankannya secara manual, kalau Anda memilih jalan itu
Kalau Anda nyaman di Terminal dan tidak mau aplikasi tambahan, perlakukan pasangan on/off ini sebagai hal yang tidak bisa ditawar. Setel disablesleep ke 1 tepat sebelum job dimulai, dan taruh disablesleep 0 yang berpasangan di dalam trap on EXIT di bagian atas script, supaya tetap terpicu meski job mati di tengah jalan.


Cek statusnya dulu sebelum Anda percaya begitu saja — pmset -g | grep SleepDisabled menampilkan nilai saat ini dalam satu baris. Layak dijalankan sebelum menutup lid, dan sekali lagi saat berikutnya Anda membukanya.
Aturan fisiknya tetap berlaku, tidak peduli tool mana yang membalik saklarnya: permukaan yang keras, datar, dan berventilasi, jangan pernah di atas kasur atau di dalam tas tertutup, dan sambungkan ke daya listrik untuk apa pun yang lebih lama dari job singkat. Lid yang tertutup membatasi aliran udara di atas keyboard deck, apa pun yang menahannya tetap tertutup.
Di mana posisi LidRun: toggle yang sama, dipegang otomatis
Closed-lid mode di LidRun adalah toggle pmset disablesleep yang sama persis — tanpa kernel extension, tanpa driver DriverKit yang berpura-pura jadi display. Yang berbeda adalah apa yang membungkusnya. LidRun memasangkan setiap enable dengan disable yang cocok saat stop, saat quit, dan sekali lagi saat relaunch, jadi pengaturannya tidak bergantung pada ingatan Anda.


Untuk kasus crash yang tidak bisa dicakup pmset sendirian, LidRun menulis file state kecil bertanda "armed" dengan heartbeat selama closed-lid mode aktif. Kalau aplikasi crash atau di-kill, saat berikutnya dijalankan, LidRun menemukan file itu masih armed, mengenali bahwa sesi sebelumnya tidak pernah beres-beres, lalu mereset disablesleep ke 0 secara otomatis — itulah CrashGuard. Tapi ini hanya terpicu saat relaunch berikutnya: sesi yang crash tanpa ada yang membuka kembali LidRun akan meninggalkan pengaturan itu tetap menyala sampai Anda membukanya, atau sampai reboot — batasan yang sama seperti perintah manual.
Autentikasi admin tidak bisa dihindari — mengubah disablesleep membutuhkan hak administrator, sama seperti dari Terminal. LidRun meminta Anda menyetujui privileged helper sekali saja saat setup; setelah itu, closed-lid mode bisa dinyalakan-matikan tanpa prompt password berulang. Kalau langkah itu dilewati, ia jatuh kembali ke prompt admin setiap kali dipakai. Bagaimanapun caranya, tidak ada yang berjalan tanpa persetujuan eksplisit dari Anda.
Dari sisi termal, LidRun menganggap SoC dalam kondisi kritis begitu suhunya terbaca 100°C atau lebih, atau CPU throttle turun ke 30% atau kurang dari performa normal — mana pun yang lebih dulu terpicu. Kalau kondisi kritis itu bertahan sekitar dua menit dan Anda sedang tidak di depan Mac (tanpa input selama lima menit) atau lid dalam keadaan tertutup secara fisik, LidRun meningkatkan responsnya dari sekadar melepas hold menjadi langsung menidurkan Mac. Pengguna yang hadir dengan lid terbuka tidak pernah dipaksa tidur hanya karena panas — guardrail ini ada supaya sesi aktif tidak tiba-tiba ditarik paksa dari bawah Anda. Di sisi baterai ada batas bawah yang setara: ambang baterai kritis defaultnya 5% dan tidak bisa disetel di bawah 4%, jadi batas keamanan ini bukan sesuatu yang bisa tidak sengaja Anda matikan.
LidRun juga mengecek apakah Anda sudah berada di dalam setup clamshell resmi Apple — display eksternal, bukan built-in, yang aktif menggerakkan desktop — dan menganggap itu sebagai alasan sah untuk tetap terjaga dengan lid tertutup, tanpa perlu toggle-nya sendiri sama sekali. Dan karena closed-lid mode membutuhkan perubahan pmset di level admin itu, ini tidak sandbox-safe untuk Mac App Store; sebagai gantinya, LidRun dirilis sebagai DMG unduhan langsung yang dinotarisasi, jadi tetap dipindai oleh Apple, hanya saja tidak didistribusikan lewat Store.
Filosofi di baliknya: agent sedang berjalan, tetap terjaga; agent selesai atau tidak aman, lepas hold-nya dan biarkan Mac tidur. Closed-lid mode adalah fitur Pro — paket gratis mencakup sejumlah sesi closed-lid terbatas untuk dicoba, sebelum dibutuhkan pembukaan Pro satu kali.
Bagaimana ini dibandingkan dengan Amphetamine, KeepingYouAwake, Lungo, dan Caffeine
Ini semua aplikasi menu-bar yang solid dan dibuat dengan baik, dan untuk tugas sebenarnya — menahan idle sleep atau display sleep, terjadwal, per aplikasi, atau berdasarkan trigger — mereka melakukannya dengan baik. Kalau yang Anda butuhkan adalah "jangan redupkan layar selama panggilan" atau "jangan idle-sleep selagi saya membaca," salah satu dari mereka adalah pilihan yang bagus dan lebih ringan dibanding LidRun.
Yang tidak diubah oleh satu pun dari mereka adalah batas assertion-versus-clamshell di atas: IOPMAssertion, dikonfigurasi bagaimana pun, tidak bertahan saat lid ditutup tanpa display eksternal tersambung. Beberapa tool ini mendokumentasikan opsi closed-lid mereka sendiri secara terpisah dari assertion — layak dibaca persis bagaimana masing-masing mengimplementasikannya sebelum dipercayakan untuk job sungguhan dengan lid tertutup, sama seperti artikel ini menjelaskan bahwa versi LidRun adalah pmset disablesleep, bukan kext.
Perbedaan LidRun bukan pada toggle-nya — tapi pada closed-lid mode sebagai satu hal yang dikerjakan dengan pembungkus keamanan sungguhan (enable/disable berpasangan, crash recovery, auto-stop termal dan baterai), bukan daftar fitur keep-awake serba guna dengan opsi closed-lid yang ditambahkan belakangan.
Trade-off yang jujur sebelum Anda mempercayakan pekerjaan sungguhan pada semua ini
Tidak ada toggle software yang mengubah hukum fisika — pmset disablesleep, versi LidRun darinya, atau perintah Terminal yang diketik manual, semuanya punya efek yang identik terhadap aliran udara: nihil. Lid yang tertutup membatasi aliran udara di atas keyboard deck, jadi job berat di balik lid tertutup berjalan lebih panas dibanding job yang sama dengan lid terbuka. LidRun menampilkan peringatan panas sebelum Anda menyalakan mode ini, jadi Anda mengambil trade-off itu secara sadar, dan thermal governor-nya mengawasi tekanan yang naik serta bisa auto-stop sesi tersebut — ini membantu mengurangi risiko, bukan menghilangkan panasnya.
Penempatan tetap lebih penting daripada pengaturan apa pun: permukaan yang keras, datar, dan berventilasi, jangan pernah di atas kasur atau di dalam tas tertutup, dan sambungkan ke daya listrik untuk apa pun yang lebih lama dari job closed-lid singkat, supaya baterai tidak ikut terkuras di bawah tekanan.
Dan kalau yang sebenarnya Anda butuhkan cuma layar tetap menyala — bukan menutup lid secara fisik lalu pergi — Anda sama sekali tidak butuh closed-lid mode. Assertion keep-awake biasa sudah cukup untuk itu, dan sepenuhnya melewati langkah persetujuan admin/helper. Simpan closed-lid mode untuk saat Anda benar-benar ingin lid tertutup.
LidRun menjaga pekerjaan Anda tetap jalan saat layar tertutup, dengan perlindungan baterai dan suhu bawaan.
Sudah punya LidRun? Baca panduan setup-nya →
Baru kenal LidRun? Lihat harga →
Sering ditanyakan
Tidak. Ini toggle pmset disablesleep yang terdokumentasi — tanpa kext, tanpa display-faker DriverKit. Tuas yang sama juga tersedia dari Terminal lewat sudo pmset -a disablesleep 1, hanya saja dipasangkan dan direkonsiliasi secara otomatis, alih-alih Anda kelola sendiri.
File heartbeat milik CrashGuard yang menangkapnya: saat berikutnya LidRun dijalankan, ia menemukan pengaturan itu masih armed dari sesi yang tidak pernah beres-beres, lalu mereset disablesleep ke 0. Tapi ini hanya terjadi saat relaunch — kalau Anda tidak pernah membuka lagi aplikasinya, atau reboot, Mac tetap tidak bisa tidur sampai Anda melakukannya, batasan yang sama seperti perintah pmset yang diketik manual.
Mengubah pmset disablesleep memang membutuhkan hak administrator — itu aturan macOS, bukan pilihan LidRun. LidRun meminta Anda menyetujui privileged helper sekali saja; setelah itu, closed-lid mode bisa dinyalakan-matikan tanpa prompt password berulang. Kalau langkah itu dilewati, ia jatuh kembali meminta setiap kali dipakai.
Closed-lid mode membutuhkan perubahan pmset disablesleep, yang tidak sandbox-safe — sandbox App Store tidak akan mengizinkannya. Sebagai gantinya, LidRun dirilis sebagai DMG langsung yang dinotarisasi: tetap dipindai oleh Apple, hanya saja tidak didistribusikan lewat Store.
Bisa. caffeinate -s dan pmset -a disablesleep 1 keduanya gratis, bawaan macOS, dan terdokumentasi. caffeinate tidak bisa menghentikan clamshell sleep tanpa display eksternal; perintah pmset mentah bisa, tapi itu pengaturan global yang persisten, tanpa crash recovery dan tanpa kesadaran termal atau baterai, jadi memasangkan on dengan off sepenuhnya jadi tanggung jawab Anda.
Biasanya tidak. Sambungkan display eksternal dan tetap terhubung ke daya AC, dan clamshell mode bawaan macOS akan menjaga Mac tetap berjalan dengan lid tertutup, tanpa toggle pihak ketiga sama sekali. Closed-lid mode di LidRun ada untuk kasus lain — tanpa display eksternal, lid tertutup, tapi tetap ingin pekerjaan terus berjalan.
Itu semua utilitas keep-awake serba guna yang dibangun di atas IOKit power assertion — bagus untuk memblokir idle atau display sleep secara terjadwal atau berdasarkan trigger. Closed-lid mode LidRun adalah versi yang lebih sempit dan dibungkus keamanan, khusus untuk toggle pmset disablesleep: enable/disable berpasangan, crash recovery, dan auto-stop termal serta baterai dibangun di sekelilingnya, bukan daftar fitur keep-awake dengan closed-lid yang ditempelkan belakangan.