Bu ideal değil, ama işte bir çözüm. Kapak kapalıyken ve pille çalışırken dizüstü bilgisayarın uyumasını önlemek için aşağıdaki komutları uygulayın:
sudo pmset -b sleep 0; sudo pmset -b disablesleep 1
Kapak kapalıyken ve pille çalışıyorsanız dizüstü bilgisayar uyku modunu yeniden etkinleştirmek için aşağıdaki komutları çalıştırın:
sudo pmset -b sleep 5; sudo pmset -b disablesleep 0
İkinci komut grubundaki "5", batarya ile uyumadan önceki dakika sayısını gösterir; dizüstü bilgisayarınız için istediğiniz şekilde ayarlayın.
Bu biraz tehlikelidir, çünkü ayarlarınızı tekrar etkinleştirmeyi unutursanız, dizüstü bilgisayar pille çalışırken asla uyumaz. Bu nedenle, ayarları otomatik olarak yeniden etkinleştirmek için bir kabuk betiği yazdım:
#!/bin/bash
#***************************************************************************
#*** noz - prevent laptop from sleeping when lid is closed
#***************************************************************************
#***** set some defaults *****
BATTERY_SLEEP=5 # in minutes
DEF_WAKE_LEN=300 # in seconds
#***** determine timeout value *****
timeout_len=${1:-$DEF_WAKE_LEN}
function prevent_sleep() {
echo
echo -n "Preventing sleep for $timeout_len seconds; press <enter> to continue..."
sudo pmset -b disablesleep 1
sudo pmset -b sleep 0
}
function enable_sleep() {
# $1: <enter> = 0, timeout = 1, Ctrl-C = undef
#----- insert a newline for timeout or Ctrl-C -----
if [[ ${1:-1} -eq 1 ]]; then echo; fi
echo "Restoring previous battery sleep setting: $BATTERY_SLEEP"
sudo pmset -b disablesleep 0
sudo pmset -b sleep $BATTERY_SLEEP
#----- sleep on timeout only -----
if [[ ${1:--1} -eq 1 ]]; then sudo pmset sleepnow; fi
exit
}
#***** prevent it from sleeping *****
prevent_sleep
#***** trap Ctrl-C *****
trap enable_sleep INT
#***** wait for an enter *****
read -t $timeout_len
rc=$?
#***** re-enable normal sleep *****
enable_sleep $rc
Eğer çarpana kadar kabuk komut dosyası uyku devre dışı bırakacaktır Enteruyku ayarlarını yeniden etkinleştirmek noktadaki anahtarı (dönüşümlü, sen vurabilir Ctrl- Cve aynı şeyi başarmak). Ayrıca, uyku ayarlarının otomatik olarak tekrar etkinleştirileceği ve dizüstü bilgisayar uyku moduna geçmeye zorlanacağı zaman aşımı süresini (varsayılan olarak 300 saniye / 5 dakika) ayarlayacaktır. Dizüstü bilgisayarınızı bir toplantıda kullanıyorsanız bu bir acı olsa da, eve gitmek için dizüstü bilgisayarınızı unutup çantanıza koyarsanız cankurtaran olur.
Zeki okuyucular, bu komutların gerektirdiğini not edecektir sudo
; ne yazık ki, bu kaçınılmaz AFAIK. Sistemimde yaptığım şey pmset
root yapmak için şifremi girmek zorunda kalmamamı sağlamak. Bunu yapmak için sudoers
dosyayı ( sudo visudo
) düzenleyin ve bu satırı ekleyin:
joe ALL=(ALL) NOPASSWD: /usr/bin/pmset
"joe" yerine kullanıcı adınızı girin. SETUID kabuk betiğini çalıştırarak muhtemelen aynı sonucu elde edebilirsiniz (örn. Betiği şifrenizi girmeden çalıştırmak), ancak bunu yapmaktan hoşlanmıyorum; sudo'lar aracılığıyla bu tek komutu açmak benim için daha az riskli görünüyor.
Komut dosyasını çalıştırmak için, dizininize yapıştırın PATH
ve şu şekilde çağırın:
noz [<timeout in seconds>]
Gittiğiniz yere ulaştığınızda, sadece Enterveya Ctrl- tuşuna basın Cve gitmeniz iyi olur. Ve unutursanız, otomatik olarak sıfırlanır ve uyur.
Bunların hepsini AppleScript ile elde etmenin muhtemelen bir yolu vardır, böylece daha sonra bir kısayol tuşu atayabilirsiniz; Bunu komut satırından çalıştırmaktan hiç yorulmazsam deneyeceğim.