一定期間アクティビティがない場合は、明るさを最小限に抑えてユーザー操作(マウスまたはキーボード)を検出すると、前の明るさに戻るbashスクリプトを作成しようとします。私はxautolockを使って最初の部分を実行する方法を知っていますが、2番目の部分はわかりません。ありがとう
答え1
xset dpms
おそらく、モニターの電源管理機能を提供することが何であるかを知っているでしょう。明るい徐々にバックライトを変更しても十分ではない場合は、xinput
次の方法を使用してアイドルモードで動きを検出できます。
入力デバイスを一覧表示し、xinput
監視したいマウスとキーボードのIDを見つけます。私の場合は11時と9時です。
Logitech USB Optical Mouse id=11 [slave pointer (2)]
HID 05f3:0007 id=9 [slave keyboard (3)]
xinput --test
その後、各IDの出力を待つことができます。
xinput --test 9 | read stuff & pid1=$!
xinput --test 11 | read stuff & pid2=$!
wait -n
kill -hup $pid1 $pid2 2>/dev/null
echo 'ready'
答え2
試してみることができますバス。具体的に使用dbus-send
GetSessionIdleTime
次のメソッドを呼び出しますorg.freedesktop.ScreenSaver
。
dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call --print-reply=literal /ScreenSaver org.freedesktop.ScreenSaver.GetSessionIdleTime
これにより、4つのスペース、「uint32」、ユーザーが最後にキーを押すか、マウスを動かした後のミリ秒が出力されます。次のコマンドを使用して番号を抽出できます。cut
注文する:
echo $result | cut -d ' ' -f 5
これが必要です投票 dbus
定期的にポーリングの頻度に応じて、ユーザー入力とスクリプト応答の間に遅延が発生します。