2011-10-24 44 views
4

我想編寫一個Gnome-Shell擴展,它可以告訴一個會話多長時間沒有收到任何用戶輸入。我知道calling XScreenSaverQueryInfo會給我這些信息,但我找不到從我的gjs擴展名中調用它的方法。我需要做些什麼來實現這個目標?使用Gnome-Shell擴展中的C庫

+0

如果您使用的是Gjs,那麼您可以通過自省訪問提供給您的豐富的GObject庫。你應該看看他們中的任何人是否可以報告空閒時間,如果沒有,你可能不得不創建自己的(我會推薦Vala)。 – robru

回答

1

可能最容易的方法是使用D-Bus調用org.gnome.Mutter.IdleMonitor.GetIdletime方法/org/gnome/Mutter/IdleMonitor/Core路徑org.gnome.Shell。這會給你毫秒的時間,shell沒有看到任何用戶輸入。

您可以在命令行上使用: 進行測試,但爲true;做gdbus調用--session - 最後org.gnome.Shell --object-path/org/gnome/Mutter/IdleMonitor/Core --method org.gnome.Mutter.IdleMonitor.GetIdletime;完成

您可以使用GIO的GIO支持從您的擴展調用該方法。有一個example here

+0

6年過去了,正是我在找的!我走了一條與此不同的路線,但這是正確的解決方案,更好,如果我有機會,我可以嘗試。 – user37078