5

我想编写一个 Gnome-Shell 扩展,它可以告诉会话多久没有收到任何用户输入。我知道调用 XScreenSaverQueryInfo会给我该信息,但我找不到从我的 gjs 扩展中调用它的方法。我需要做什么才能使其正常工作?

4

1 回答 1

3

可能最简单的方法是使用 D-Bus 调用路径org.gnome.Mutter.IdleMonitor.GetIdletime上的方法。这将为您提供 shell 没有看到任何用户输入的毫秒时间。/org/gnome/Mutter/IdleMonitor/Coreorg.gnome.Shell

您可以使用以下命令在命令行上对此进行测试:

while true; do
  gdbus call --session --dest org.gnome.Shell \
    --object-path /org/gnome/Mutter/IdleMonitor/Core \
    --method org.gnome.Mutter.IdleMonitor.GetIdletime
done

您可以使用 GJS 的 GIO 的 D-Bus 支持从您的扩展中调用该方法。这里有一个例子

于 2017-10-03T08:06:26.013 回答