Как контролировать блокировку / разблокировку экрана в Ubuntu 14.04

Мне нужно реализовать функцию, которая контролирует блокировку / разблокировку экрана. Я сослался на следующую статью:
Запустить скрипт на блокировку / разблокировку экрана

Мой код сценария python отлично работает в Ubuntu 12.04, но он не работает в Ubuntu 14.04:

#!/usr/bin/env python import gobject import dbus from dbus.mainloop.glib import DBusGMainLoop def filter_cb(bus, message): if message.get_member() != "ActiveChanged": return args = message.get_args_list() if args[0] == True: print("Lock Screen") else: print("Unlock Screen") DBusGMainLoop(set_as_default=True) bus = dbus.SessionBus() bus.add_match_string("type='signal',interface='org.gnome.ScreenSaver'") bus.add_message_filter(filter_cb) mainloop = gobject.MainLoop() mainloop.run() 

Я также попробовал команду:

 dbus-monitor --session "interface='org.gnome.ScreenSaver'" 

Он ничего не выводит, когда я блокирую / разблокирую экран вручную.

Как я могу контролировать блокировку / разблокировку экрана в Ubuntu 14.04?

2 Solutions collect form web for “Как контролировать блокировку / разблокировку экрана в Ubuntu 14.04”

Ты прав. Поэтому, чтобы иметь правильный ответ, я изменил ваш код на рабочий (по крайней мере, под Ubuntu 15.10, Unify):

 #!/usr/bin/env python import gobject import dbus from dbus.mainloop.glib import DBusGMainLoop def filter_cb(bus, message): if message.get_member() != "EventEmitted": return args = message.get_args_list() if args[0] == "desktop-lock": print("Lock Screen") elif args[0] == "desktop-unlock": print("Unlock Screen") DBusGMainLoop(set_as_default=True) bus = dbus.SessionBus() bus.add_match_string("type='signal',interface='com.ubuntu.Upstart0_6'") bus.add_message_filter(filter_cb) mainloop = gobject.MainLoop() mainloop.run() 

Я думаю, что нашел ответ:
На Ubuntu 14.014 я должен отслеживать интерфейс «com.ubuntu.Upstart0_6» вместо «org.gnome.ScreenSaver».

  • Pg Dn возвращает тильду (~)
  • Каков правильный способ создания загрузочного образа моей системы?
  • Как использовать tmux при запуске как для OSX, так и для Ubuntu (включая Quake)
  • Случайно удален / bin / su
  • Сетевое обслуживание должно быть перезапущено после отключения кабеля с сетью zeroconf
  • Застрял в bootloop после обновления до Ubuntu 16.04LTS
  • FTP Upload Hook
  • Как настроить сервер ключей и порт навсегда
  • Как установить cron для запуска на фоне?
  • Как обновить все на Ubuntu
  • Обеспечивает ли проверка пакетов повышение безопасности и / или стабильности системы?
  • Linux и Unix - лучшая ОС в мире.