세션에서 사용자 입력을받지 못한 기간을 알 수있는 Gnome-Shell 확장을 작성하고 싶습니다. 나는 calling XScreenSaverQueryInfo이 그 정보를 줄 것이라고 알고 있지만 내 gjs 확장자에서 호출하는 방법을 찾을 수 없습니다. 이 기능을 사용하려면 무엇을해야합니까?Gnome-Shell 확장에서 C 라이브러리 사용
4
A
답변
1
아마도 가장 쉬운 방법은 /org/gnome/Mutter/IdleMonitor/Core
경로의 org.gnome.Mutter.IdleMonitor.GetIdletime
메서드를 호출하기 위해 D-Bus를 사용하는 것입니다. org.gnome.Shell
입니다. 그러면 쉘이 사용자 입력을 보지 못한 시간 (밀리 초)을 알 수 있습니다.
다음을 사용하여 명령 줄에서이를 테스트 할 수 있습니다. true; gdbus call --session --dest org.gnome.Shell --object-path/org/gnome/Mutter/IdleMonitor/Core - 메서드 org.gnome.Mutter.IdleMonitor.GetIdletime; done
GJS의 GIO의 D 버스 지원을 사용하여 확장 프로그램의 메소드를 호출 할 수 있습니다. example here이 있습니다.
+0
6 년 후, 정확히 내가 찾고 있던 것이 었습니다! 나는 오래 전에 다른 경로를 갔다. 그러나 이것은 올바른 해결책이고 훨씬 더 좋으며 기회가된다면 시도해 볼 수도있다. – user37078
Gjs를 사용하는 경우, 인트로 스펙 션을 통해 제공되는 풍부한 GObject 라이브러리에 액세스 할 수 있습니다. 그들 중 누구라도 유휴 시간을보고 할 수 있는지 확인해야하며, 그렇지 않은 경우 자신 만의 시간을 만들어야 할 수도 있습니다 (저는 Vala를 권합니다). – robru