import time import map2 # readers intercept all keyboard inputs and forward them reader = map2.Reader(patterns=["/dev/input/by-id/usb-Lite-On_Tech_IBM_USB_Travel_Keyboard_with_Ultra_Nav-event-kbd"]) # mappers change inputs, you can also chain multiple mappers! mapper = map2.Mapper() # writers create new virtual devices we can write into writer = map2.Writer(clone_from = "/dev/input/by-id/usb-Lite-On_Tech_IBM_USB_Travel_Keyboard_with_Ultra_Nav-event-kbd") # finally, link nodes to control the event flow map2.link([reader, mapper, writer]) mapper.map("!j", "{ctrl down}{pagedown}{ctrl up}") mapper.map("!+j", "{ctrl down}{shift down}{pagedown}{shift up}{ctrl up}") mapper.map("!k", "{ctrl down}{pageup}{ctrl up}") mapper.map("!+k", "{ctrl down}{shift down}{pageup}{shift up}{ctrl up}") # keep running indefinitely map2.wait()