from gi.repository import Gtk from lib.config import Config if hasattr(Gtk, "ShortcutsWindow"): def show_shortcuts(win): shortcuts_window = ShortcutsWindow(win) shortcuts_window.show() class ShortcutsWindow(Gtk.ShortcutsWindow): def __init__(self, win): Gtk.ShortcutsWindow.__init__(self) self.build() self.set_position(Gtk.WindowPosition.CENTER_ALWAYS) self.set_transient_for(win) self.set_modal(True) def build(self): section = Gtk.ShortcutsSection() section.show() compose_group = Gtk.ShortcutsGroup(title="Composition modes") compose_group.show() for accel, desc in [("F1", "Select fullscreen mode"), ("F2", "Select Picture in Picture mode"), ("F3", "Select Side-by-Side Equal mode"), ("F4", "Select Side-by-Side Preview mode"), ("F5", "Select Matrix Two-by-two mode")]: short = Gtk.ShortcutsShortcut(title=desc, accelerator=accel) short.show() compose_group.add(short) section.add(compose_group) source_group = Gtk.ShortcutsGroup(title="Source Selection") source_group.show() num = len(Config.getlist('mix', 'sources')) source_items = [ ("1...{}".format(num), "Select Source as A-Source"), ("1...{}".format(num), "Select Source as B-Source"), ("1...{}".format(num), "Select Source as Fullscreen") ] for accel, desc in source_items: short = Gtk.ShortcutsShortcut(title=desc, accelerator=accel) short.show() source_group.add(short) section.add(source_group) if Config.getboolean('misc', 'cut'): other_group = Gtk.ShortcutsGroup(title="Other") other_group.show() short = Gtk.ShortcutsShortcut(title="Send Cut message", accelerator="t") short.show() other_group.add(short) section.add(other_group) self.add(section) else: def show_shortcuts(win): pass