Ubuntu10.10を使用します。 XMonadウィンドウマネージャーをプライマリとして使用します。 CommandKey + Sをスクリーンセーバーとロックを表示するbashファイルにマップし、PCをスリープ状態にします(再開時にパスワードを入力する必要があります)。
#/bin/bash
gnome-screensaver-command -a
gnome-screensaver-command -l
dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend
これは正常に機能します。ただし、キーボード/マウスを操作しなかったX分間後に、XMonadでそのスクリプトを自動的に実行(つまり、画面をロックして一時停止)したいと思います。
私はそれ(基本的なスクリーンセーバー/ロック/サスペンド)を他のデスクトップ/ウィンドウマネージャーで当然のことと思っています。
これを行うには、xautolockを使用できます。例えば、
xautolock -time 1 -locker "gnome-screensaver-command -l" -notify 10 \
-notifier "notify-send -t 5000 -i gtk-dialog-info 'Locking in 10 seconds'"
これにより、アイドル時間の1分後に画面がロックされ、ロックされる10秒前に通知(5秒間続く)が表示されます。これはXmonadでは問題なく機能します。
通知送信を使用するには、次のことが必要になる場合があります
Sudo apt-get install libnotify-bin
またはそのようなもの。 xscreensaverなどの代わりにgnome-screensaverを使用することもできると思います。