Redhat 6.6でスクリーンセーバーが有効になっているときにスクリーンがロックされていることをどのように検出しますか?

Redhat 6.6でスクリーンセーバーが有効になっているときにスクリーンがロックされていることをどのように検出しますか?

2つのスクリーンセーバーオプションがありますRed Hat 6.6メニュー「システム->基本設定->スクリーンセーバー」:

  1. 「コンピュータがアイドル状態のときにスクリーンセーバーを有効にする」オプション。このオプションを選択すると、アイドルタイムアウトに達するとスクリーンセーバーが有効になります。
  2. 「スクリーンセーバーがアクティブなときに画面をロックする」オプション。このオプションを選択すると、スクリーンセーバーがアクティブになると画面がロックされます。そうしないと、スクリーンセーバーが有効になっても画面がロックされません。

私の質問は、オプション(1)を選択した場合の画面ロック/ロック解除をどのように監視できますか? dbusコマンドを使ってみました。

dbus-monitor --session "interface='org.gnome.ScreenSaver'"  

残念ながら、オプション(2)を選択して画面が実際にロックされていても、「ActiveChanged」メッセージのみをキャプチャするため、結果が正しくありません。

signal sender=:1.37 -> dest=(null destination) serial=25 path=/org/gnome/ScreenSaver;
interface=org.gnome.ScreenSaver; member=ActiveChanged

ブール真

コマンドを手動で実行すると、gnome-screensaver-command -ldbus-monitorは次のメッセージをキャプチャできます。

method call sender=:1.99 -> dest=org.gnome.ScreenSaver serial=3 path=/org/gnome/ScreenSaver;
interface=org.gnome.ScreenSaver; member=Lock  
signal sender=:1.37 -> dest=(null destination) serial=23 path=/org/gnome/ScreenSaver;
interface=org.gnome.ScreenSaver; member=ActiveChanged
boolean true  

org.gnome.ScreenSaverのドキュメントを参照しました。
https://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html
「ロック」メソッド呼び出しは、「ロック画面の要求」を意味するようです。
「ActiveChanged」信号は、スクリーンセーバーが有効になっているかどうかを示します。

だから私はこれですRed Hat 6.6バグ:
スクリーンセーバーが有効になっていて、上記の2つのオプションで画面がロックされている場合は、「ロック」メッセージがありません。
これにより、この状況で画面がロックされているかどうかを検出できなくなります。

この問題に対する解決策はありますか?上記の2つのオプションが保存されている設定ファイルを読むことはできますか?

ありがとうございます。

答え1

実行すると、gconftool-2 --get /apps/gnome-screensaver/lock_enabled現在のユーザーが画面ロックを有効にしたかどうかを示すブール値が返されます。その場合、true「ActiveChanged」シグナルがtrueのときに画面もロックされることがわかります。

両方のオプションの設定ファイルについて問い合わせたので、スクリーンセーバーがgconftool-2 --get /apps/gnome-screensaver/idle_activation_enabled

関連情報