input-remapper/readme/development.md

65 lines
2.0 KiB
Markdown
Raw Normal View History

2020-12-19 15:09:24 +00:00
# Development
2020-12-19 15:15:05 +00:00
Contributions are very welcome, I will gladly review and discuss any merge
requests.
2020-12-19 15:09:24 +00:00
## Roadmap
- [x] show a dropdown to select valid devices
- [x] creating presets per device
- [x] renaming presets
- [x] show a mapping table
- [x] make that list extend itself automatically
- [x] read keycodes with evdev
- [x] inject the mapping
- [x] keep the system defaults for unmapped buttons
- [x] button to stop mapping and using system defaults
- [x] highlight changes and alert before discarding unsaved changes
- [x] automatically load presets on login for plugged in devices
- [x] make sure it works on wayland
- [x] support timed macros, maybe using some sort of syntax
- [x] add to the AUR, provide .deb file
- [x] basic support for gamepads as keyboard and mouse combi
- [x] executing a macro forever while holding down the key using `h`
- [x] mapping D-Pad directions as buttons
- [ ] support for non-GUI TTY environments
2020-12-19 15:15:47 +00:00
- [ ] mapping joystick directions as buttons, making it act like a D-Pad
2020-12-19 15:09:24 +00:00
- [ ] 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
```bash
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`
2020-12-19 15:12:55 +00:00
to get debug output.
## Releasing
ssh/login into a ubuntu machine
```bash
./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
```bash
sudo pip install git+https://github.com/jongracecox/anybadge
sudo pip install git+https://github.com/dbrgn/coverage-badge
./scripts/badges.sh
```
2020-12-19 15:14:01 +00:00
new badges, if needed, will be created in `readme/` and they
just need to be commited.