macOS'ta kext olmadan closed-lid modu

Evet — Mac'te closed-lid modu kext (çekirdek uzantısı) olmadan çalışır. Bu, Terminal'de sudo pmset -a disablesleep 1 komutunun arkasındaki aynı mekanizma olan, belgelenmiş pmset disablesleep anahtarıdır; tek fark bunun elle değil otomatik olarak tutulmasıdır. Şimdi ayrıntısına girelim: bu anahtar gerçekte ne yapar, caffeinate ile Apple'ın kendi harici ekran clamshell modu zaten ücretsiz olarak size ne sağlar, anahtarı kendiniz çevirirseniz neler ters gidebilir ve LidRun bunu Mac'inizi uyanık halde takılı bırakmadan nasıl yönetir.
Kapağı kapatmak Mac'i neden uyutur?
Başka hiçbir şey bağlı değilken bir MacBook'un kapağını kapatın, macOS saniyeler içinde uykuya geçer. Buna clamshell sleep denir ve normal idle sleep'ten farklı bir mekanizmadır. Apple'ın bunun için sunduğu resmi çözüm harici ekran clamshell modudur: bir monitör takarsınız, elektriğe bağlı kalırsınız ve Mac hiçbir üçüncü parti yazılım olmadan kapak kapalıyken süresiz çalışır — macOS'un sürmeye devam edeceği bir ekran vardır, dolayısıyla kapalı kapak artık önemli değildir.
Harici ekran yokken, popüler uyanık-tutma araçlarının hiçbiri bu sınırı normal yoldan aşamaz. caffeinate, Amphetamine, KeepingYouAwake, Lungo ve Caffeine hepsi bir IOKit power assertion tutarak çalışır — "idle-sleep'e geçme" için belgelenmiş API olan IOPMAssertionCreateWithName. Bu gerçek ve kapak açıkken bir ekranı veya tüm Mac'i uyanık tutmakta gerçekten etkili. Ama bir assertion sadece idle sleep'i engeller. Kapağı kapatmak, hiçbir assertion'ın durduramayacağı daha düşük seviyeli bir clamshell sleep tetikler — hangi uygulama tutuyor olursa olsun. Bu belirli bir aracın eksikliği değil, işletim sistemi seviyesinde bir sınır.
Ekran bağlı değilken kapak-kapatma davranışını gerçekten değiştiren tek herkese açık, belgelenmiş anahtar pmset disablesleep'tir — macOS'un kendisiyle birlikte gelen, sistem genelinde bir güç yönetimi ayarı.
Ücretsiz seçenekler: Apple'ın clamshell modu, caffeinate ve pmset
Yedek bir ekranınız varsa kullanın. Bağlayın, elektriğe takılı kalın ve kapağı kapatın — bu Apple'ın gerçek, resmi olarak desteklenen closed-lid kurulumu: ek yazılım yok, admin şifresi yok, sonradan geri kapatmayı hatırlamanız gereken hiçbir şey yok. Kalıcı bir masa düzeni için doğru cevap bu.


Yedek ekranınız yok mu? caffeinate, Apple'ın yerleşik komut satırı aracıdır (man caffeinate). caffeinate -i idle sleep'i engeller, caffeinate -d ayrıca display sleep'i de engeller, caffeinate -s ise süreç çalıştığı sürece elektrikteyken tüm sistemi uyanık tutar. Idle-sleep'e geçmemesi gereken bir script için gerçekten kullanışlıdır — ama assertion tabanlı her araç gibi aynı clamshell-sleep kör noktasını da miras alır: ekran bağlı değilken kapağı kapatırsanız Mac yine de altınızda uykuya dalar.
Ekran olmadan, kapak kapalıyken gerçekten işe yarayan anahtar, closed-lid uygulamalarının otomatikleştirdiği aynı anahtardır: Terminal'de sudo pmset -a disablesleep 1, istediğiniz an pmset -g | grep SleepDisabled ile kontrol edilir, sudo pmset -a disablesleep 0 ile tekrar kapatılır. Belgelenmiş, ücretsiz ve zaten Mac'inizde hazır.
İlgili kılavuzKapak kapalıyken Mac alarmı çalar mı?İnce nokta: bu genel bir ayar ve kendi kendine kapanmıyor
disablesleep, Terminal oturumunuza veya scriptinize bağlı değildir — kalıcı, sistem genelinde bir bayraktır. 1'e ayarlarsanız, uygulama kapatmalarında, Terminal pencereleri kapansa da, SSH oturumları bitse de 1 olarak kalır. Geri ayarlamayı unutursanız Mac gerçekten uyuyamaz hale gelir — ta ki komutu tekrar çalıştırana ya da yeniden başlatana kadar.
İnsanların closed-lid araçları konusunda temkinli olurken kastettiği asıl risk bu — fiziksel olarak uyuyamayan, çantaya kapatılmış, sıcaklık ya da batarya durumunu izleyen hiçbir şeyi olmayan bir dizüstü bilgisayar. pmset'in kendisi SoC sıcaklığının ne olduğu veya bataryanın ne kadar kaldığı hakkında hiçbir fikre sahip değildir. Aksi söylenene kadar sadece ayarı tutar.
Bu aynı zamanda bir çökme-güvenliği katmanının yakalamak için var olduğu tam olarak o hata senaryosudur — çünkü bu bayrağı ayarlayıp sonra çöken, zorla kapatılan veya SSH bağlantısını kaybeden bir script ya da uygulama, arkasında aynı sıkışmış ayarı bırakır.
Elle çalıştıracaksanız daha güvenli bir yol
Terminal'de rahatsanız ve başka bir uygulama istemiyorsanız, eşleştirmeyi pazarlık konusu yapmayın. İş başlamadan hemen önce disablesleep'i 1'e ayarlayın ve scriptin en başına, iş yarı yolda ölse bile tetiklenecek şekilde EXIT üzerinde bir trap içine eşleşen disablesleep 0'ı koyun.


Güvenmeden önce durumu kontrol edin — pmset -g | grep SleepDisabled mevcut değeri tek satırda gösterir. Kapağı kapatmadan önce, sonra tekrar açtığınızda çalıştırmaya değer.
Anahtarı hangi araç çevirmiş olursa olsun fiziksel kurallar geçerlidir: sert, düz, havalandırmalı bir yüzey, asla yatak ya da kapalı bir çanta değil, kısa bir işten uzun her şey için de elektrik bağlantısı. Kapağı kapalı tutan ne olursa olsun, kapalı bir kapak klavye bölümü üzerindeki hava akışını kısıtlar.
LidRun tam olarak nerede devreye giriyor: aynı anahtar, otomatik tutuluyor
LidRun'ın closed-lid modu, birebir aynı pmset disablesleep anahtarıdır — kernel extension yok, bir ekranı taklit eden DriverKit sürücüsü yok. Farklı olan, bunu nasıl sardığı. LidRun her açmayı, durdurmada, çıkışta ve yeniden başlatmada eşleşen bir kapatmayla eşleştirir; böylece ayar sizin hatırlamanıza bağlı kalmaz.


pmset'in tek başına karşılayamadığı çökme senaryosu için, closed-lid modu aktifken LidRun heartbeat'li küçük bir "armed" durum dosyası yazar. Uygulama çökerse ya da öldürülürse, bir sonraki açılış bu dosyayı hâlâ armed bulur, önceki oturumun hiç temizlik yapmadığını anlar ve disablesleep'i otomatik olarak 0'a döndürür — bu CrashGuard'dır. Ancak bu sadece bir sonraki açılışta devreye girer: kimse LidRun'ı yeniden açmadığı sürece çöken bir oturum, siz açana ya da yeniden başlatana kadar ayarı açık bırakır — elle çalıştırılan komutun sahip olduğu aynı sınırlama.
Admin kimlik doğrulaması kaçınılmazdır — disablesleep'i değiştirmek, tıpkı Terminal'den yapıldığında olduğu gibi yönetici haklarına ihtiyaç duyar. LidRun, kurulum sırasında bir kez ayrıcalıklı bir helper'ı onaylamanızı ister; bundan sonra closed-lid modu tekrar tekrar şifre sormadan açılıp kapanır. Bu adımı atlarsanız, her kullanımda admin isteğine geri döner. Her iki durumda da açık onayınız olmadan hiçbir şey çalışmaz.
Isı tarafında LidRun, SoC sıcaklığı 100°C veya üzerine çıktığında ya da CPU normal performansının %30'una veya altına düştüğünde — hangisi önce tetiklenirse — durumu kritik kabul eder. Bu kritik durum yaklaşık iki dakika sürer ve siz uzaklaşmışsanız (beş dakikadır giriş yok) ya da kapak fiziksel olarak kapalıysa, LidRun tutuşunu bırakmaktan doğrudan Mac'i uyutmaya yükseltir. Kapak açıkken bilgisayar başında biri varsa, sadece ısı yüzünden asla zorla uyutulmaz — bu koruma, aktif bir oturumun ayaklarınızın altından çekilip alınmaması için var. Batarya tarafında da eşleşen bir taban değer var: kritik batarya eşiği varsayılan olarak %5'tir ve %4'ün altına ayarlanamaz, dolayısıyla bu güvenlik tabanı yanlışlıkla kapatabileceğiniz bir şey değildir.
LidRun ayrıca zaten Apple'ın kendi clamshell kurulumunda olup olmadığınızı da kontrol eder — masaüstünü aktif olarak süren, harici, dahili olmayan bir ekran — ve bunu, kendi anahtarına hiç ihtiyaç duymadan kapak kapalıyken uyanık olmak için geçerli bir sebep sayar. Ve closed-lid modu bu admin seviyesindeki pmset değişikliğine ihtiyaç duyduğu için Mac App Store sandbox kurallarına uygun değildir; LidRun bunun yerine notarize edilmiş, doğrudan indirilebilir bir DMG olarak dağıtılır — yani hâlâ Apple tarafından taranır, sadece Store üzerinden dağıtılmaz.
Bunun altındaki felsefe şu: agent çalışıyorsa uyanık kal; agent bittiyse ya da güvensizse bırak ve Mac'in uyumasına izin ver. Closed-lid modu bir Pro özelliğidir — ücretsiz plan, tek seferlik Pro açma gerekmeden önce deneyebileceğiniz sınırlı sayıda closed-lid oturumu içerir.
Bu, Amphetamine, KeepingYouAwake, Lungo ve Caffeine ile nasıl karşılaştırılıyor
Bunlar sağlam, iyi yapılmış menü çubuğu uygulamaları ve asıl işleri için — bir zamanlamaya göre, uygulama başına ya da bir tetikleyiciyle idle sleep veya display sleep'i tutmak — işlerini iyi yapıyorlar. İhtiyacınız "görüşme sırasında ekranı karartma" veya "okurken idle-sleep'e geçme" ise, bunların herhangi biri LidRun'a göre iyi, daha hafif bir seçim.
Hiçbirinin değiştirmediği şey yukarıdaki assertion-clamshell sınırıdır: bir IOPMAssertion, nasıl yapılandırılırsa yapılandırılsın, harici ekran olmadan kapak kapatıldığında hayatta kalmaz. Bu araçlardan birkaçı kendi closed-lid seçeneklerini assertion'dan ayrı olarak belgeliyor — gerçek bir işi ve kapalı bir kapağı ona emanet etmeden önce her birinin bunu tam olarak nasıl uyguladığını okumaya değer, tıpkı bu makalenin LidRun'ın versiyonunun bir kext değil pmset disablesleep olduğunu açıkça belirttiği gibi.
LidRun'ın farkı anahtar değil — closed-lid modunun, sonradan eklenmiş bir seçenek olan genel amaçlı bir uyanık-tutma özellik listesi yerine, gerçek bir güvenlik sarmalıyla (eşleşen açma/kapama, çökme kurtarma, ısı ve batarya otomatik durdurma) yaptığı tek şey olması.
Gerçek işlerinizi emanet etmeden önce dürüst ödünleşimler
Hiçbir yazılım anahtarı fiziği değiştirmez — pmset disablesleep, LidRun'ın versiyonu ya da elle yazılan bir Terminal komutu, hava akışı üzerinde birebir aynı etkiye sahiptir: hiç. Kapalı bir kapak, klavye bölümü üzerindeki hava akışını kısıtlar, dolayısıyla kapalı kapak arkasındaki ağır bir iş, kapak açıkken çalışan aynı işten daha sıcak çalışır. LidRun, modu açmadan önce bir ısı uyarısı gösterir, böylece bu ödünleşimi bilerek kabul edersiniz; ısı denetleyicisi de artan baskıyı izler ve oturumu otomatik durdurabilir — bu riski azaltmaya yardımcı olur, ısıyı yok etmez.
Yerleşim hâlâ herhangi bir ayardan daha önemlidir: sert, düz, havalandırmalı bir yüzey, asla yatak ya da kapalı bir çanta değil, kısa bir closed-lid işinden uzun her şey için de elektrik bağlantısı — böylece batarya da baskı altında boşalmaz.
Ve gerçekten tek ihtiyacınız ekranın açık kalması ise — kapağı fiziksel olarak kapatıp uzaklaşmak değil — closed-lid moduna hiç ihtiyacınız yok. Basit bir keep-awake assertion bu işi görür ve admin/helper onay adımını tamamen atlar. Closed-lid modunu gerçekten kapağı kapalı istediğiniz zamanlar için saklayın.
LidRun, işinizi kapak kapalıyken, pil ve sıcaklık koruması yerleşik biçimde çalışır tutar.
LidRun zaten sizde mi? Kurulum rehberini okuyun →
LidRun'u yeni mi tanıdınız? Fiyatlara bakın →
Sık sorulanlar
Hayır. Bu, belgelenmiş pmset disablesleep anahtarıdır — kext yok, ekranı taklit eden DriverKit yok. Bu, Terminal'de sudo pmset -a disablesleep 1 ile kullanılabilen aynı mekanizmadır; tek fark sizin yönetmeniz yerine otomatik olarak eşleştirilip uzlaştırılmasıdır.
CrashGuard'ın heartbeat dosyası bunu yakalar: LidRun bir sonraki açıldığında, temizlik yapmamış bir oturumdan kalan hâlâ armed durumdaki ayarı bulur ve disablesleep'i 0'a döndürür. Ancak bu sadece yeniden açılışta gerçekleşir — uygulamayı hiç yeniden açmazsanız ya da yeniden başlatmazsanız, Mac siz bunu yapana kadar uyuyamaz halde kalır; elle yazılan bir pmset komutunun sahip olduğu aynı sınırlama.
pmset disablesleep'i değiştirmek gerçekten yönetici haklarına ihtiyaç duyar — bu bir macOS kuralıdır, LidRun'ın tercihi değil. LidRun bir kez ayrıcalıklı bir helper'ı onaylamanızı ister; bundan sonra closed-lid modu tekrar tekrar şifre sormadan açılıp kapanır. Bu adımı atlarsanız, her seferinde sormaya geri döner.
Closed-lid modu, sandbox'a uygun olmayan pmset disablesleep değişikliğine ihtiyaç duyar — App Store sandbox'ı buna izin vermez. LidRun bunun yerine notarize edilmiş, doğrudan bir DMG olarak dağıtılır: hâlâ Apple tarafından taranır, sadece Store üzerinden dağıtılmaz.
Evet. caffeinate -s ve pmset -a disablesleep 1 ikisi de ücretsiz, macOS'a yerleşik ve belgelenmiş. caffeinate, harici ekran olmadan clamshell sleep'i durduramaz; ham pmset komutu durdurabilir ama bu, çökme kurtarması ya da ısı/batarya farkındalığı olmayan kalıcı, genel bir ayardır — dolayısıyla açmayı kapamayla eşleştirmek tamamen size kalır.
Genellikle hayır. Harici bir ekran bağlayıp elektriğe takılı kalırsanız, macOS'un kendi clamshell modu hiçbir üçüncü parti anahtar olmadan Mac'i kapak kapalıyken çalışır tutar. LidRun'daki closed-lid modu diğer durum için var — harici ekran yok, kapak kapalı, yine de işin devam etmesini istiyorsunuz.
Onlar, IOKit power assertion'lar üzerine kurulmuş genel amaçlı uyanık-tutma araçları — bir zamanlamaya ya da tetikleyiciye göre idle veya display sleep'i engellemekte iyiler. LidRun'ın closed-lid modu ise özellikle pmset disablesleep anahtarının daha dar, güvenlik sarmalı bir versiyonu: sonradan eklenmiş bir closed-lid seçeneği olan uyanık-tutma özellik listesi yerine, etrafına eşleşen açma/kapama, çökme kurtarma ve ısı/batarya otomatik durdurma inşa edilmiş.