高度な情報
MacBook 合蓋スリープ向けターミナル回避策
このページは、Mac App Store 版の Rouse とは別に、pmset で MacBook の合蓋スリープを手動制御するための高度なターミナル回避策をまとめたものです。
これはターミナルレベルの回避策であり、macOS の正式 API でも、Mac App Store 版 Rouse の機能でもありません。システム全体の電源設定を変更するため、管理者権限が必要です。挙動は Mac の機種や macOS のバージョンによって異なる場合があります。
この回避策は管理者権限での pmset による電源設定変更に依存するため、Mac App Store 版では機能として同梱できません。
クイックコマンド
~/.zshrc などのシェル設定に次の関数を追加します。
rouse() {
case "$1" in
on)
sudo pmset -a disablesleep 1
pmset -g | awk '/^[[:space:]]*SleepDisabled[[:space:]]/ { print "SleepDisabled =", $2 }'
;;
off)
sudo pmset -a disablesleep 0
pmset -g | awk '/^[[:space:]]*SleepDisabled[[:space:]]/ { print "SleepDisabled =", $2 }'
;;
status)
pmset -g | awk '/^[[:space:]]*SleepDisabled[[:space:]]/ { print "SleepDisabled =", $2 }'
;;
*)
echo "usage: rouse {on|off|status}"
return 1
;;
esac
}
シェルを再読み込みしたら、rouse on、rouse off、rouse status を使えます。
実際にやっていること
rouse onはsudo pmset -a disablesleep 1を実行します。rouse offはsudo pmset -a disablesleep 0で通常のスリープに戻します。rouse statusは現在のSleepDisabled状態を読みやすい形式で表示します。- 想定している用途は MacBook の合蓋スリープであり、一般的なデスクトップ向けのスリープ切り替えではありません。
disablesleep=1 はアイドルスリープと合蓋スリープの両方を止めるため、デスク上で放置した Mac もスリープしません。使い終わったらできるだけ早く rouse off を実行してください。
境界
- これは高度なターミナル回避策であり、正式に出荷する製品機能ではありません。
- 影響するのは合蓋時だけでなく、システム全体のスリープ設定です。
- Mac App Store 版の Rouse とは別物です。
- Mac App Store 版では、この経路をサポート機能として提供できません。
- この設定は再起動後も保持されます。
rouse offを実行し忘れると、再起動後も Mac はアイドルスリープをスキップし続けます。 - 使い終わったら早めに
rouse offに戻すことを勧めます。
削除するには
- 現在の状態が
SleepDisabled = 1のままなら、先にrouse offを実行してください。関数を消してしまった場合は、sudo pmset -a disablesleep 0を直接実行しても戻せます。 ~/.zshrcなどのシェル設定からrouse()を削除し、シェルを再読み込みします。
このページについて
Mac App Store 版の Rouse は、App Sandbox の範囲内で動作します。このページは、システム電源設定の変更に慣れた上級ユーザー向けに、ターミナルでの手順を記したものです。このページの rouse シェル関数はシェル設定に置く独立したヘルパーであり、Mac App Store 版 Rouse の CLI ではありません。