You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
input-remapper/readme/development.md

2.0 KiB

Development

Contributions are very welcome, I will gladly review and discuss any merge requests.

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
  • basic support for gamepads as keyboard and mouse combi
  • executing a macro forever while holding down the key using h
  • mapping D-Pad directions as buttons
  • support for non-GUI TTY environments
  • mapping joystick directions as buttons, making it act like a D-Pad
  • configure joystick purpose via the GUI and store it in the preset
  • automatically load presets when devices get plugged in after login (udev)
  • mapping a combined button press to a key
  • start the daemon in the input group to not require usermod somehow
  • configure locale for preset to provide a different set of possible keys

Tests

pylint keymapper --extension-pkg-whitelist=evdev
sudo pip install . && coverage run tests/test.py
coverage combine && coverage report -m

To read events, evtest is very helpful. Add -d to key-mapper-gtk to get debug output.

Releasing

ssh/login into a ubuntu machine

./scripts/build.sh

this will generate key-mapper/deb_dist/python3-key-mapper_0.3.1-1_all.deb depending on the version configured in setup.py

Badges

sudo pip install git+https://github.com/jongracecox/anybadge
sudo pip install git+https://github.com/dbrgn/coverage-badge
./scripts/badges.sh

new badges, if needed, will be created in readme/ and they just need to be commited.