設定は次のようにHandleLidSwitch
定義されます/etc/systemd/logind.conf
。
HandleLidSwitch=<hibernate,ignore,...>
起動時に設定が正常に適用されます。ただし、AC状態に応じて実行時に設定を変更したいと思います。
私のラップトップが充電中の場合を使用し、ノートブックがHandleLidSwitch=ignore
バッテリーを使用している場合を使用します HandleLidSwitch=suspend
。
現在のsystemdでこれは可能ですか?
答え1
ログインはサプレッサロックユーザーソフトウェアがシステムポリシーを無視できるようにするメカニズム。たとえば、Gnomeが有効になっている間、GnomeはすべてのACPIボタンとスイッチを制御できます。デバイスが接続されているときに「ハンドルカバースイッチ」を抑制し、プラグを抜くときにロックを解除するために使用できます。
最善のアプローチは、DBusバインディングを持つ言語でスクリプトを作成し、logindの方法を使用することですが、systemdはシェルスクリプトで使用できるコマンドをInhibit()
提供します。systemd-inhibit
子プロセスが終了するまでロックを保持するラッパーとして使用するためのものです。
systemd-inhibit --what=handle-lid-switch SOME_COMMAND_HERE
PSこれはすべて、「ノブ - ふた - スイッチ」がブロックされたデスクトップ環境を使用していないと仮定します。パラメータなしで実行すると、既存のsystemd-inhibit
阻害剤が一覧表示されます。