keepresso CLIで、コマンドラインからMacをスリープさせない
Keepressoには小さなコマンドラインツールが付属しており、メニューバーに手を伸ばさなくても、ターミナル、シェルスクリプト、Makefile、CIジョブから操作できます。コマンドはkeepressoで、2通りの使い方があります。メニューバーアプリに指示を送る方法と、標準のcaffeinateのようにそれ自体でMacを起こしておく方法です。
コマンドをインストールする
Homebrewでkeepressoをインストールした場合、keepressoコマンドはすでにPATHに入っているので、何もする必要はありません。
brew install --cask gyorgysh/keepresso/keepresso
DMGからアプリをインストールした場合は、このツールはアプリバンドルの中にあり、PATHはまだそれを認識していません。一度だけリンクしてください。
sudo ln -s /Applications/Keepresso.app/Contents/Helpers/keepresso /usr/local/bin/keepresso
正しく設定されているか確認します。
keepresso version
アプリを操作する
これらのコマンドはKeepressoアプリに送られ、まだ起動していなければ起動します。メニューのスクリプト版だと考えてください。
keepresso start # start an open-ended session
keepresso start --for 90 # start a 90 minute session
keepresso start --until 18:00 # run until a wall-clock time
keepresso stop # end the current session
keepresso toggle # flip it on or off
これにより、長時間のジョブは開始時にMacを起こし、終了時にスリープさせることができます。
keepresso start
make release
keepresso stop
ステータスを確認する
keepresso statusは、セッションが実行中かどうかを教えてくれます。その終了コードはスクリプト内で分岐させるのに便利です。
0Macは起こされている1起こされていない2アプリが実行されていない
keepresso status && echo "awake" || echo "asleep"
機械可読な結果が欲しい場合は--jsonを付けてください。
keepresso status --json
同じセッション状態はファイルにもミラーリングされているので、メニューバーツールやステータスライン、ウィジェットが何も起動せずに読み取ることができます。
~/Library/Application Support/Keepresso/status.json
現在の状態とISO 8601形式のタイムスタンプが記録されています。
アプリなしのスタンドアロン保持
アプリをまったく関与させたくないこともあります。ただこのシェル一つがMacを起こしておいてくれればよく、caffeinateとまったく同じです。このモードではkeepressoプロセス自体がPower Assertionを保持し、終了した瞬間にMacは再びスリープできるようになります。
keepresso -i # hold until you press Ctrl-C
keepresso -t 3600 # hold for a number of seconds
keepresso -w 5123 # hold until process 5123 exits
keepresso -d # also keep the display awake (combine with the above)
keepresso -u # declare user activity: wake the display now
最も便利なパターンは、コマンドやシェルの寿命に起きている状態を結びつけることです。
keepresso -w $$ & # stay awake as long as this shell lives
ffmpeg -i in.mov out.mp4 && keepresso stop
これらの保持は本物のmacOS Power Assertionなので、pmset -g assertionsにも、Keepresso自身のアクティビティペインにも、Macを起こしている他のすべてのアプリと並んで表示されます。
関連記事
- Shortcuts、Raycast、スクリプトからKeepressoを操作するは、Shortcutsアクションとターミナルなしの自動化のための
keepresso://URL schemeを扱っています。 - macOS向けcaffeinateの代替は、Keepressoが標準の
caffeinateコマンドとどう関係しているかを説明しています。
Keepressoの使い方の他の記事