コンピュータをしばらく離れるときは、ディスプレイを省電力/スタンバイモードにするのが好きです。過敏なマウスがいなくても大丈夫でしょう。時々、ドライバーは肉眼では見えない動き(つまりカーソル)を読み取り、省電力を破ります。スタンバイに戻る前に、さらに10分間待機します。
私の回避策は、C-S-q
にバインドされた次のスクリプトです。
xlock -startCmd 'xset dpms 2 2 2' -endCmd 'xset dpms 600 1200 1300' -mode blank -echokeys -timeelapsed +usefirst
xset
を使用して、スタンバイに移行する前に値をそれぞれ2秒に設定しました。とにかく、それはいいことではありません。パスワードを入力する前に読みたいクールな運命がある場合があります。カーソルを動かし続けることはできましたが、不器用です。 (ちなみに、xlockのオプションmousemotion
は役に立ちません。カーソルを非表示にするだけですが、それでもディスプレイは起動します。)
だから質問:ディスプレイをスタンバイ状態にして、キーボードのキーが押されるまでそこにとどまる方法はありますか?私はgentooと最近のXorgを実行していますが、答えがディストロ固有である必要はないことを願っています。
基本的に答えはコマンドライン内でマウスを有効/無効にする方法と同じくらい簡単です。 DPMSがその考えを知らなければ、それでうまくいくと思います。
Unix SEサイトには、これをカバーする@pbmによる すばらしい投稿 があります。
つまり、最初にxinput list
を使用してマウスのデバイスIDを取得してから、
xinput --set-prop [ID#] "Device Enabled" "0"
そして
xinput --set-prop [ID#] "Device Enabled" "1"
マウスを無効および有効にします。
ここでは、マウスを無効にしてからxset dpms force standby
を呼び出すことにより、これらをテストしました。マウスを数秒間振っても画面が乱れることはありませんでしたが、1つのキーを押すだけで問題なく動作しました。次に、2番目のコマンドを使用すると、デフォルトの起動スクリプトで設定された「一定の減速」設定を含め、マウスが通常の状態に戻りました。
これらの2つのコマンドを-startCmd
および-endCmd
オプションのxlock
に渡して、目的の情報を取得できるはずです。
私はUbuntuでこのようにしています:
#!/bin/bash
# allow only one instance
r=$(pidof -x -o $$ ssmonoff.sh)
set -- $r
if [ "${#@}" -ge 1 ]; then
echo "Script already running. Exit..."
exit
fi
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | ( while read line; do
if echo $line | grep "boolean true" &> /dev/null; then
xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "0"
xset dpms force off
else
xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "1"
fi
done )
いくつかの注意:
これがお役に立てば幸いです。