我想编写一个 Gnome-Shell 扩展,它可以判断 session 多长时间没有收到任何用户输入。我知道 calling XScreenSaverQueryInfo会给我这些信息,但我找不到从我的 gjs 扩展中调用它的方法。我需要做什么才能让它发挥作用?
最佳答案
可能最简单的方法是使用 D-Bus 调用 /org/gnome/Mutter/IdleMonitor/上的
路径。这将为您提供 shell 没有看到任何用户输入的时间(以毫秒为单位)。org.gnome.Mutter.IdleMonitor.GetIdletime
方法org.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 支持来从您的扩展中调用该方法。有一个example here .
关于javascript - 从 Gnome-Shell 扩展中使用 C 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880825/