bin | ||
data | ||
DEBIAN | ||
keymapper | ||
readme | ||
scripts | ||
tests | ||
.gitignore | ||
.pylintrc | ||
HISTORY.md | ||
LICENSE | ||
MANIFEST.in | ||
README.md | ||
setup.py |
Key Mapper
A tool to change and program the mapping of your input device buttons.
Ubuntu/Debian • Manjaro/Arch • Git
Usage
To open the UI to modify the mappings, look into your applications menu
and search for 'Key Mapper' in settings. You can also start it via
key-mapper-gtk
. It works with both Wayland and X11.
If stuff doesn't work, check the output of key-mapper-gtk -d
and feel free
to open up an issue here.
Macros
It is possible to write timed macros into the center column:
k(1).k(2)
1, 2r(3, k(a).w(500))
a, a, a with 500ms pausem(Control_L, k(a).k(x))
CTRL + a, CTRL + x
Documentation:
r
repeats the execution of the second parameterw
waits in millisecondsk
writes a single keystrokem
holds a modifier while executing the second parameter.
executes two actions behind each other
For a list of supported keystrokes and their names, check the output of
xmodmap -pke
Installation
After your installation, independent of the method, you should add yourself
to the input
and plugdev
groups so that you can read keycodes from them.
You have to start the application via sudo otherwise.
sudo usermod -a -G plugdev,input $USER
# log out and back in or restart, the two groups should be visible with:
groups
Ubuntu/Debian
wget "https://github.com/sezanzeb/key-mapper/releases/"\
"download/0.1.0/python3-key-mapper_0.1.0-1_all.deb"
sudo dpkg -i python3-key-mapper_0.1.0-1_all.deb
Manjaro/Arch
pacaur -S key-mapper-git
Git
git clone https://github.com/sezanzeb/key-mapper.git
sudo pip install key-mapper
Roadmap
- show a dropdown to select valid devices
- creating presets per device
- renaming presets
- show a mapping table
- make that list extend itself automatically
- read keycodes with evdev
- inject the mapping
- keep the system defaults for unmapped buttons
- button to stop mapping and using system defaults
- highlight changes and alert before discarding unsaved changes
- automatically load presets on login for plugged in devices
- make sure it works on wayland
- support timed macros, maybe using some sort of syntax
- add to the AUR, provide .deb file
- automatically load presets when devices get plugged in after login
Tests
pylint keymapper --extension-pkg-whitelist=evdev
sudo pip install . && python3 tests/test.py