Я хочу прослушать нажатие клавиши, скажем, Ctrl kbd> + W kbd> в Rhythmbox, и вызвать функцию, если это произойдет. Как я могу сделать это в Python?
Вот база для начала:
import dbus
import gobject
from dbus.mainloop.glib import DBusGMainLoop
def on_visibility_changed(visible):
if visible:
print "Rhythmbox Shown"
else:
print "Rhythmbox Hidden"
DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
rhythmbox = bus.get_object('org.gnome.Rhythmbox',
'/org/gnome/Rhythmbox/Shell')
rhythmbox = dbus.Interface(rhythmbox,
'org.gnome.Rhythmbox.Shell')
rhythmbox.connect_to_signal("visibilityChanged", on_visibility_changed)
loop = gobject.MainLoop()
loop.run()
Два важных бита определяют функцию, смотрите документацию по API, какие аргументы она должна принимать, и подключают сигнал к ней. Опять же, API перечисляет эти сигналы.
Если вы хотите поймать сигнал, определенный в RBPlayer, например, вы бы подключили сессионную шину к Player, а не к Shell. К сожалению, API довольно сложный и не так легко объяснить здесь. Хорошо покопайтесь в Документации , и вы, вероятно, найдете то, что вам нужно.
Я предполагаю, что вы создаете какой-то плагин. Плагины могут быть написаны на C или Python. Я не знаю, как это сделать, но я знаю, где вы могли бы узнать эту информацию: