Skip to content

Instantly share code, notes, and snippets.

@Neoklosch
Created July 15, 2015 15:31

Revisions

  1. Neoklosch created this gist Jul 15, 2015.
    27 changes: 27 additions & 0 deletions keybinder.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    from Xlib.display import Display
    from Xlib import X

    class KeyBinder(object):
    def __init__(self):
    self.cancel = False
    self.xdisp = Display()
    self.xroot = self.xdisp.screen().root
    self.key_code = 71 # F5

    def handle_event(self, event):
    keycode = event.detail
    if event.type == X.KeyPress:
    print ">>> event captured"
    self.cancel = True

    def start(self):
    self.xroot.change_attributes(event_mask = X.KeyPressMask)
    self.xroot.grab_key(self.key_code, X.AnyModifier, 1, X.GrabModeAsync, X.GrabModeAsync)

    while not self.cancel:
    event = self.xroot.display.next_event()
    self.handle_event(event)

    if __name__ == '__main__':
    keybinder = KeyBinder()
    keybinder.start()