Skip to content

Instantly share code, notes, and snippets.

@tg-x
Last active April 2, 2021 21:50
Show Gist options
  • Save tg-x/7dc5ecbccbd51bbe0c56e8fba38d6960 to your computer and use it in GitHub Desktop.
Save tg-x/7dc5ecbccbd51bbe0c56e8fba38d6960 to your computer and use it in GitHub Desktop.
uinput-mapper config for kbd nav layer
from uinputmapper.cinput import *
"""
Configuration for keyboard navigation layer
"""
mods = { }
def set_mod (mod, x):
mods[mod] = x
return 0
def mod_map (mod, key_base, key_mod):
if (mod not in mods or mods[mod] == 0): return key_base
else: return key_mod
config = {
(0, EV_KEY) : {
KEY_CAPSLOCK: {
'type': (0, EV_KEY),
'code': KEY_FN,
'value': lambda x: set_mod('nav', x)
},
KEY_J: {
'type': (0, EV_KEY),
'code': lambda: mod_map('nav', KEY_J, KEY_LEFT),
'codes': [ KEY_J, KEY_LEFT ],
'value': None
}
}
}
names = {
0 : 'Keyboard remapped'
}
def config_merge(c, n):
c.clear()
n.update(names)
for k, v in config.iteritems():
if k in c:
c[k].update(v)
else:
c[k] = v
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment