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.md

91 lines
2.4 KiB
Markdown

4 years ago
<h1 align="center">Key Mapper</h1>
4 years ago
<p align="center">A Linux tool to change and program the mapping of your input device buttons.</p>
4 years ago
<p align="center"><img src="readme/pylint.svg"/> <img src="readme/coverage.svg"/></p>
4 years ago
<p align="center">
<img src="readme/screenshot.png"/>
</p>
4 years ago
<br/>
4 years ago
## Usage
4 years ago
To open the UI to modify the mappings, use:
4 years ago
```bash
4 years ago
key-mapper-gtk
4 years ago
```
4 years ago
You can also start it via your applications menu.
4 years ago
To keep injecting the mapping after closing the window, the daemon needs to
4 years ago
be running. If it doesn't already after logging in, you can use:
4 years ago
```bash
4 years ago
key-mapper-service
4 years ago
```
## Macros
It is possible to write timed macros into the center column:
4 years ago
- `k(1).k(2)` 12
- `k(1).w(10).k(2)` 12
4 years ago
- `r(3, k(a).w(10))` aaa
- `r(2, k(a).k(-)).k(b)` a-a-b
- `w(1000).m(SHIFT_L, r(2, k(a))).w(10).k(b)` AAb
Documentation:
4 years ago
- `r` repeats the execution of the second parameter
- `w` waits in milliseconds
4 years ago
- `k` writes a single keystroke
- `m` holds a modifier while executing the second parameter
- `.` executes two actions behind each other
4 years ago
For a list of supported keystrokes and their names, check the output of `xmodmap -pke`
Maybe you shouldn't use this feature in online PVP though. Might even get
detected by the game.
4 years ago
## Git Installation
4 years ago
```bash
4 years ago
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
```
4 years ago
Depending on how those packages are called in your distro,
you need the following dependencies:
4 years ago
`python3-distutils-extra` `python3-evdev` `python3-dbus`
It works with both Wayland and X11.
4 years ago
## Tests
```bash
4 years ago
pylint keymapper --extension-pkg-whitelist=evdev
sudo python3 setup.py install && python3 tests/test.py
```
4 years ago
4 years ago
## Roadmap
4 years ago
- [x] show a dropdown to select valid devices
4 years ago
- [x] creating presets per device
- [x] renaming presets
4 years ago
- [x] show a mapping table
4 years ago
- [x] make that list extend itself automatically
4 years ago
- [x] read keycodes with evdev
- [x] inject the mapping
4 years ago
- [x] keep the system defaults for unmapped buttons
4 years ago
- [x] button to stop mapping and using system defaults
- [x] highlight changes and alert before discarding unsaved changes
4 years ago
- [x] automatically load presets on login for plugged in devices
- [x] make sure it works on wayland
- [ ] support timed macros, maybe using some sort of syntax
4 years ago
- [ ] add to the AUR, provide .deb and .appimage files
4 years ago
- [ ] automatically load presets when devices get plugged in after login