web-dev-qa-db-ja.com

ユーザーがWaylandでアイドル状態であるかどうかを確認するにはどうすればよいですか?

X-Serverベースのシステムでは、ユーティリティxprintidleは、ユーザーがアイドル状態であったミリ秒数を返します。 Waylandにも同様の機能がありますか?

コンピューターの使用方法や生産性などを測定する方法として、アプリケーションの焦点を1日を通して記録する小さなプログラムを作成しようとしています。
マシンがアイドル状態のときにプログラムにアクティビティを記録させたくありません。 xprintidleを使用すると、ユーザーがX-Serverセッションでアイドル状態になっている時間を判断するのは簡単ですが、このユーティリティは保守されていないようで、Waylandでは機能しません。

ディストリビューションはWaylandに向かっているように見えます。たとえば、次のUbuntu 17.10はデフォルトでWaylandを使用しているため、xprintidleはもはや実行可能なソリューションではありません。

Waylandには、キーボードとマウスのアクティビティを常にポーリングするなどの非効率的なものがない限り、ユーザーがアイドル状態であるかどうかを判断するメカニズムがありますか?

4
GetOperational

ユニバーサルメソッドがあるかどうかはわかりませんが、gnome-systemsの場合は、次のdbus呼び出しを使用できます。

dbus-send --print-reply --dest=org.gnome.Mutter.IdleMonitor /org/gnome/Mutter/IdleMonitor/Core org.gnome.Mutter.IdleMonitor.GetIdletime

出典: https://dev.gajim.org/gajim/gajim/issues/8839

2
olejorgenb