Go to file
2020-11-29 14:07:25 +01:00
bin macro parser 2020-11-28 17:49:32 +01:00
data more space for macros by resizing the window 2020-11-27 21:29:00 +01:00
DEBIAN debian package 2020-11-29 13:30:16 +01:00
keymapper wip debian package 2020-11-29 10:42:20 +01:00
readme more work on distribution 2020-11-29 13:55:37 +01:00
scripts more work on distribution 2020-11-29 13:55:37 +01:00
tests testing connecting to the dbus 2020-11-29 01:44:14 +01:00
.gitignore gitignore tmp png 2020-11-26 21:37:36 +01:00
.pylintrc pylint 9.70 2020-11-22 21:41:29 +01:00
HISTORY.md update HISTORY.md 2020-11-29 12:49:22 +01:00
LICENSE outlined some stuff 2020-10-26 23:45:55 +01:00
MANIFEST.in more work on distribution 2020-11-29 13:55:37 +01:00
README.md Update README.md 2020-11-29 14:07:25 +01:00
setup.py debian package 2020-11-29 13:30:16 +01:00

Key Mapper

A Linux tool to change and program the mapping of your input device buttons.

Ubunut/Debian Manjaro/Arch Git


Usage

After installing, you should log out and back in for the changed user groups to take effect and for the background service to start.

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.

Macros

It is possible to write timed macros into the center column:

  • k(1).k(2) 1, 2
  • r(3, k(a).w(500)) a, a, a with 500ms pause
  • m(Control_L, k(a).k(x)) CTRL + a, CTRL + x

Documentation:

  • r repeats the execution of the second parameter
  • w waits in milliseconds
  • k writes a single keystroke
  • m 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

Ubunut/Debian

dpkg -i $(wget TODO)
usermod -a -G input $USER
usermod -a -G plugdev $USER

Manjaro/Arch

pacaur -S key-mapper-git

Git

git clone https://github.com/sezanzeb/key-mapper.git
cd key-mapper
sudo python3 setup.py install
usermod -a -G input $USER
usermod -a -G plugdev $USER

Depending on how those packages are called in your distro, you need the following dependencies:

python3-setuptools python3-evdev python3-dbus

Tests

pylint keymapper --extension-pkg-whitelist=evdev
sudo python3 setup.py install && python3 tests/test.py

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