Fli*_*int 5 python programming unity dbus idle
最近的Ubuntu中通过dbus获取会话空闲时间的方法是否发生了变化,或者我这里的dbus代码是错误的?
#!/usr/bin/env python
import dbus
bus_name = 'org.gnome.ScreenSaver'
obj_path = '/org/gnome/ScreenSaver'
session_bus = dbus.SessionBus()
gs_obj = session_bus.get_object(bus_name, obj_path)
gs_iface = dbus.Interface(gs_obj, bus_name)
print gs_iface.GetSessionIdleTime()
# dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: No such method 'GetSessionIdleTime'
Run Code Online (Sandbox Code Playgroud)
小智 1
这是一个老问题,但我一直在为 Gnome3 寻找类似的解决方案。仅在使用 Python 3.8.5 的 Ubuntu 20.04 上进行了测试。
import dbus
session_bus = dbus.SessionBus()
bus_object = session_bus.get_object('org.gnome.Mutter.IdleMonitor', '/org/gnome/Mutter/IdleMonitor/Core')
bus_interface = dbus.Interface(bus_object, 'org.gnome.Mutter.IdleMonitor')
print(bus_interface.GetIdletime() / 1000)
Run Code Online (Sandbox Code Playgroud)