@@ -45,31 +45,13 @@ client receives events, and then forward all un-modified events through
4545your virtual device. It's annoying but unavoidable - you can't hide individual
4646events from other clients.
4747
48- ## Why not evmapd
49-
50- There is an existing project called [ evmapd] ( https://github.com/thkala/evmapd )
51- which is, ostensibly, exactly what we're looking for - a daemon that will
52- take input events from one device, and then generate new events on a different
53- uinput based device. I made a serious attempt at using it but ultimately found
54- it too limiting to rely on:
55- * It doesn't support 1: N mappings, which I particularly care about
56- * eg: Mapping a mouse button to a key combination like ` Super+A `
57- * It relies on an obscure and hard to obtain library for command line
58- argument handling (libcfg+)
59- * It's written in C, which I will always respect, but which doesn't add much
60- value to this kind of program
61- * It's doesn't look actively maintained; it solved whatever problem the author
62- originally had, and that was it.
63-
64- Having said all that, it has a set of capabilities to handle remappings that
65- are not from keys to other keys - particuarly creating virtual joystick axes
66- from key events. If you care about those capabilities, you should use evmapd.
67- I'm not going to expand beyond key to key remappings.
68-
69- ## Requirements
70-
71- * Python >= 3.4 (for [ asyncio] ( https://docs.python.org/3/library/asyncio.html ) )
72- * [ python-daemon] ( https://pypi.python.org/pypi/python-daemon ) >= 2.1.2
73- * [ Python evdev binding] ( https://pypi.python.org/pypi/evdev ) >= 0.7.0
74- * [ pyxdg] ( https://pypi.python.org/pypi/pyxdg ) > 0.25
75- * [ PyYAML] ( https://pypi.python.org/pypi/PyYAML ) >= 3.12
48+ ## libinput's lua plugin based future?
49+
50+ In the years since I first wrote ` evdevremapkeys ` , there wasn'tt been any real
51+ movement towards exposing a meaningful remapping capability from libinput. In
52+ 2025, they started development of a
53+ [ lua] ( https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1192 )
54+ plugin framework, which might turn out to be a real solution. When that lands,
55+ and as long as it doesn't depend on the Wayland compositor to expose access to
56+ it, it might turn out to be a better long term approach. But it's too early to
57+ say right now.
0 commit comments