# Copyright 2021 (c) Anna Schumaker. from gi.repository import Gtk, Gdk import audio Event = Gtk.EventControllerKey() Event.set_propagation_phase(Gtk.PropagationPhase.CAPTURE) Shortcuts = dict() def initialize(): Shortcuts.clear() Shortcuts.update({ "Return" : audio.Player.next, "BackSpace" : audio.Player.previous, "space" : audio.Player.playpause, "plus" : audio.Player.Autopause.increment, "KP_Add" : audio.Player.Autopause.increment, "minus" : audio.Player.Autopause.decrement, "KP_Subtract" : audio.Player.Autopause.decrement, }) initialize() def on_key_released(controller, keyval, keycode, state): window = Event.get_widget() name = Gdk.keyval_name(keyval) if name == "Escape": window.set_focus(None) elif not isinstance(window.get_focus(), Gtk.Text): if func := Shortcuts.get(name): func() return True #else: # print(name) return False Event.connect("key-released", on_key_released)