🎮 An easy to use tool to change the mapping of your input device buttons.

Overview

Input Remapper

Formerly Key Mapper

An easy to use tool to change the mapping of your input device buttons.
Supports mice, keyboards, gamepads, X11, Wayland, combined buttons and programmable macros.
Allows mapping non-keyboard events (click, joystick, wheel) to keys of keyboard devices.

Usage - Macros - Installation - Development - Screenshots - Examples

Installation

Manjaro/Arch
pacaur -S input-remapper-git
Ubuntu/Debian

Get a .deb file from the release page or install the latest changes via:

sudo apt install git python3-setuptools gettext
git clone https://github.com/sezanzeb/input-remapper.git
cd input-remapper && ./scripts/build.sh
sudo apt install ./dist/input-remapper-1.2.2.deb

input-remapper is now part of Debian Unstable

pip
sudo pip uninstall key-mapper
sudo pip install --no-binary :all: git+https://github.com/sezanzeb/input-remapper.git
sudo systemctl enable input-remapper
sudo systemctl restart input-remapper

If it doesn't seem to install, you can also try sudo python3 setup.py install

Screenshots

Comments
  • Drawing tablet cursor not moving if stylus button mapped

    Drawing tablet cursor not moving if stylus button mapped

    Hi, when trying to apply a profile on a drawing tablet, key-mapper starts to make the tablet behave like a relative device. This should be changed in order to be able to use this software to remap buttons on a drawing tablet and its pencil. Thanks in advance.

    help wanted environment incompatibility 
    opened by CarlosEkisde 56
  • AUR installation fails

    AUR installation fails

    I normally use the AUR package and input-remapper used to work as expected a few days ago. Then today I updated my Arch system and after a reboot, input-remapper didn't start at login and my keyboard layout is back to the default QWERTY. systemctl log is shown further below. I tried uninstalling and reinstalling the AUR package and noticed these messages near the end:

    [...]
    (1/1) installing input-remapper-git                                                                                [####################################################################] 100%
    warning: directory permissions differ on /home/tai/
    filesystem: 700  package: 755
    Failed to stop key-mapper.service: Unit key-mapper.service not loaded.
    Failed to disable unit: Unit file key-mapper.service does not exist.
    Failed to enable unit: Refusing to operate on alias name or linked unit file: input-remapper.service
    Failed to start input-remapper.service: Unit input-remapper.service failed to load properly, please adjust/correct and reload service manager: Device or resource busy
    See system logs and 'systemctl status input-remapper.service' for details.
    error: command failed to execute correctly
    :: Running post-transaction hooks...
    [...]
    

    They might have been there when I did the routine system upgrade earlier today as well but I didn't see it since paru (my AUR helper) didn't mention it at the end when it was done with the upgrades.

    I tried installing from source using the setup.py but same issue.

    System Information and logs

    1. input-remapper-control --version
    Traceback (most recent call last):
      File "/usr/bin/input-remapper-control", line 30, in <module>
        from inputremapper.logger import logger, update_verbosity, log_info
    ModuleNotFoundError: No module named 'inputremapper'
    
    1. which linux distro (ubuntu 20.04, manjaro, etc.) Arch, kernel 6.0.5-arch1-1
    2. which desktop environment (gnome, plasma, xfce4, etc.) Gnome
    3. sudo ls -l /proc/1/exe to check if you are using systemd
    lrwxrwxrwx 1 root root 0 Oct 30 12:14 /proc/1/exe -> /usr/lib/systemd/systemd
    
    1. systemctl status input-remapper -n 50 the service has to be running
    × input-remapper.service - Service to inject keycodes without the GUI application
         Loaded: loaded (/usr/lib/systemd/system/input-remapper.service; bad; preset: disabled)
         Active: failed (Result: exit-code) since Sun 2022-10-30 12:14:31 CET; 43min ago
       Main PID: 520 (code=exited, status=1/FAILURE)
            CPU: 57ms
    
    Oct 30 12:14:30 bluefalcon systemd[1]: Starting Service to inject keycodes without the GUI application...
    Oct 30 12:14:31 bluefalcon input-remapper-service[520]: Traceback (most recent call last):
    Oct 30 12:14:31 bluefalcon input-remapper-service[520]:   File "/usr/bin/input-remapper-service", line 28, in <module>
    Oct 30 12:14:31 bluefalcon input-remapper-service[520]:     from inputremapper.logger import update_verbosity, log_info
    Oct 30 12:14:31 bluefalcon input-remapper-service[520]: ModuleNotFoundError: No module named 'inputremapper'
    Oct 30 12:14:31 bluefalcon systemd[1]: input-remapper.service: Main process exited, code=exited, status=1/FAILURE
    Oct 30 12:14:31 bluefalcon systemd[1]: input-remapper.service: Failed with result 'exit-code'.
    Oct 30 12:14:31 bluefalcon systemd[1]: Failed to start Service to inject keycodes without the GUI application.
    

    When I try to enable/start the service:

    $ systemctl enable input-remapper.service
    Failed to enable unit: Refusing to operate on alias name or linked unit file: input-remapper.service
    
    $ systemctl start input-remapper.service
    Job for input-remapper.service failed because the control process exited with error code.
    See "systemctl status input-remapper.service" and "journalctl -xeu input-remapper.service" for details.
    

    edit by me, sezanzeb: removed information that was not needed

    opened by Munzu 50
  • Automatically loading for bluetooth devices

    Automatically loading for bluetooth devices

    I've mapped some keys in your app, named, saved and applied the settings with autoload enabled, but after restarting Ubuntu the mapped keys stop working. key-mapper-autoload is enabled in the autostart settings of Ubuntu.

    How to debug this?

    I'm using v0.6.0 installed with .deb on Ubuntu 20.10 with Xorg.

    opened by sojusnik 34
  • Keyboard/mouse not working after reboot on arch based distros

    Keyboard/mouse not working after reboot on arch based distros

    Installed key-mapper-git from AUR. After setting it up and rebooting the mouse doesn't work. It starts working after couple of minutes but then the keyboard stops working. Uninstalling the package fixes the issue.

    Both manjaro and endeavouros show this behavior. I am using KDE.

    Attaching a journalctl log if that helps... eos-log-tool.log

    opened by saikat0511 33
  • Macro editor

    Macro editor

    • [x] show a multiline editor featuring a monospace font and line-numbers
    • [x] figure out if the current syntax offers everything that is needed for a clean way to put this stuff into multiple lines
    • [x] offer human-readable function names because now there is enough space for that
    • [x] syntax highlighting
    • [x] how is the editor opened? Is there a button in each line or is it mandatory to open the popup to configure anything?
    • [x] comment support for macros
    • [x] autocomplete for functions and keys

    In the future the macro editor might get multiple tabs if plugins are to be configured for a certain button, becoming an advanced-editor instead.

    feature request 
    opened by sezanzeb 32
  • key_f13 -> key_f24 seem to be incorrect

    key_f13 -> key_f24 seem to be incorrect

    I usually try to map mouse buttons to f13 -> f24 since they are pretty much unused, but using key_f13 does not provide a valid f13 for the games that normally accept f13 without problems (tried World of Warcraft and Minecraft).

    I tried the same with key_f2 rather than the normal f2 mapping and it has the same issue. I'm not sure if mappings with "key_" are meant to be different, but they seem to be different at least for games.

    So would it be possible to get similar mappings as f1 -> f12, for f13 -> f24 (aka where there isn't a "key_" prefix)?

    Best regards, Mauritz

    opened by mauritzn 31
  • space on release if not part of combination + input lags

    space on release if not part of combination + input lags

    Hello, I want to bind Space+J=Left Space+K=Down Space+L=Right Space+I=Up but Space=Space So If I just press down Space and release it, it will send normal Spacebar key " " as expected. Is it possible with your tool?

    feature request environment incompatibility 
    opened by LexRiver 30
  • Refactored injection

    Refactored injection

    New Features

    • Multiple Trigger points for mapping EV_ABS or EV_REL to buttons
    • Simultaneous mapping of EV_ABS or EV_REL to buttons and other analog axis
    • All EV_ABS event codes can be mapped to axis and or buttons
      • No limitation for mapping only joystick to mouse or scroll wheel
    • Individually (per mapping) configurable mapping parameters
      • trigger point, deadzone, gain, expo

    Changes

    1. replaced all Consumer classes with multiple MappingHandler classes
    2. injecting release events to the forwarded UInput before combinations trigger
    3. reworked macro if_singel to work with new injection architecture
    4. renamed Mapping class to Preset
    5. created new Mapping class responsible for mapping a event or event combination to an output action
    6. moved multiple configuration classes to new configs directory
    7. renamed ConsumerControl to EventReader
    8. replaced all evdev.InputEvent objects with custom inputremapper.InputEvent objects
    9. Replaced the Key class with a EventCombination class of type Tuple[InputEvent]

    TODO

    • [x] Integrate the new Mapping class into the Preset
    • [x] Implement Setting for automatic key release see also #229
    • [ ] make the Editor-Part of the GUI interact with the new Mapping instead of the Preset
    • [ ] Patch the GUI to create Mapping objects for Joystick to Mouse
    • [x] modify Injector._grab_device to purely rely on mappings, no longer use maps_joystick()
    • [x] expose the Mapping in the preset files
    • [x] rework the mapping_parser
    • [x] migrations
    • [x] make sure to release any keys, center any axis before stopping the injection
    • [ ] Tests, Tests, Tests, Tests
    • [ ] Update documentation

    Future (probably not this PR)

    • Update GUI To expose the new functionality
    • Implement RelToAbsHandler
    • Implement RelToRelHandler
    • Implement AbsToAbsHandler
    • Implement Offset for axis to axis handlers
    opened by jonasBoss 28
  • After upgrading python to 3.10 Key-Mapper is not working anymore

    After upgrading python to 3.10 Key-Mapper is not working anymore

    Installation using deb fails with error code 0, installation using source code and setup.py install does work but the application doesn't launch. A question mark icon shows up on the taskbar for a few seconds before disappearing. Happened after I upgraded my python version from 3.8 to 3.10.

    opened by TheTRCG 28
  • Key detection almost unusable with bluetooth VR controller

    Key detection almost unusable with bluetooth VR controller

    I am using EMV101 VR controller via bluetooth obrázok

    The system sees the device as EGV101:

    /dev/input/event23:	EGV101 Mouse
    /dev/input/event24:	EGV101 Keyboard
    /dev/input/event25:	EGV101 Consumer Control
    /dev/input/event26:	EGV101
    

    When I click 'click here' to pick up the button and then press some key on the controller I can see that it's picked by Gnome (audio is muted or volume is increased/decreased) but the button just flashes briefly. Here's an example:

    https://user-images.githubusercontent.com/1406222/112552108-8cc7ac80-8dc2-11eb-9d67-94ab5bb07ff5.mp4

    It all works fine when configuring my extra mouse buttons. As a workaround I used evtest with EGV101 Consumer Control and manually populated the .json file key-mapper is using. Injecting part of key-mapper then does it job.

    Here's what evtest produces on a single press of a button:

    Event: time 1616711773.811813, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00cd
    Event: time 1616711773.811813, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
    Event: time 1616711773.811813, -------------- SYN_REPORT ------------
    Event: time 1616711773.924108, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00cd
    Event: time 1616711773.924108, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
    Event: time 1616711773.924108, -------------- SYN_REPORT ------------
    
    opened by jose1711 28
  • Logitech mouse buttons 6 and 7

    Logitech mouse buttons 6 and 7

    Good day sir, I'm trying to set up a couple mouse buttons using a Logitech M705 mouse. In the Device drop down window I can choose Logitech M705. Left clicking under the Key column with button #2 I get BTN_MIDDLE and I can enter super_l in the mapping column. After saving and applying, I can press the middle button and the super_l is simulated which opens and closes the Activities Overview window perfectly. After pressing the Apply Defaults button and I press button 6 or 7 in the Key column nothing happens. If I execute the command 'xev' button 6 and 7 are recognized.

    Looking forward to the feature of combining keys that you stated is getting close. I will be adding two modifiers and a key for button 6 and 7. Everything else is working fine. In fact using your program to simulate button 2 works exactly as if I was using the Super key. Xdotool and xte do not give me the same results pressing button #2

    I'm running your software on a laptop that has POP_OS 20.04 installed. There will be some differences between button 2 and buttons 6 and 7. Using 'xev' when I press button 2 down I get one response and I get a second response when I release button 2. If I hold down button 6 or 7 down the buttons do a repeat until I release them.

    Jim

    opened by jim8989 28
  • systemd-udevd services is getting failed with exit code 2 warning

    systemd-udevd services is getting failed with exit code 2 warning

    I have not done anything to input-remapper-control but install it on by Debian Bookworm.

    I'm getting the following warning when I list the systemd-udevd service. First I want to ask, is that a normal behaviour? If no, what can I do to get rid of the warning messages? I tried to search for solution but did not find any.

    I did run some debugging to see if I notice something obvious but did not.

    The udev service warnings:

    journalctl -u systemd-udevd.service -b
    ....
    magnetron systemd-udevd[534]: input7: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[541]: input0: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron mtp-probe[639]: checking bus 1, device 7: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8"
    Jan 04 10:24:31 magnetron mtp-probe[639]: bus: 1, device: 7 was not an MTP device
    Jan 04 10:24:31 magnetron systemd-udevd[549]: input14: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[536]: input5: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[558]: input19: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[554]: input20: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[539]: input13: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[538]: input8: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[548]: input10: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[555]: input12: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[579]: input31: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[559]: input6: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[578]: input17: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[547]: input18: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[551]: input15: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:31 magnetron systemd-udevd[545]: input11: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:32 magnetron systemd-udevd[555]: input32: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[553]: input35: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[535]: input33: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[533]: input40: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[542]: input34: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[560]: input47: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[547]: input36: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[582]: input46: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[534]: input38: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[540]: input41: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:33 magnetron systemd-udevd[546]: input37: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:34 magnetron systemd-udevd[554]: input44: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:34 magnetron systemd-udevd[557]: input43: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:34 magnetron systemd-udevd[552]: input39: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:34 magnetron systemd-udevd[551]: input42: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:34 magnetron systemd-udevd[556]: input48: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:34 magnetron systemd-udevd[558]: input45: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:41 magnetron systemd-udevd[2251]: input49: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:41 magnetron systemd-udevd[2252]: input50: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 10:24:41 magnetron systemd-udevd[2251]: mouse6: Process '/bin/input-remapper-control --command autoload --device /dev/input/mouse6' failed with exit cod>
    Jan 04 10:24:41 magnetron systemd-udevd[2268]: event19: Process '/bin/input-remapper-control --command autoload --device /dev/input/event19' failed with exit c>
    Jan 04 10:24:42 magnetron systemd-udevd[2252]: mouse6: Process '/bin/input-remapper-control --command autoload --device /dev/input/mouse6' failed with exit cod>
    Jan 04 10:24:42 magnetron systemd-udevd[2268]: event19: Process '/bin/input-remapper-control --command autoload --device /dev/input/event19' failed with exit c>
    Jan 04 11:45:54 magnetron systemd-udevd[55233]: input51: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
    Jan 04 11:45:54 magnetron systemd-udevd[55233]: event30: Process '/bin/input-remapper-control --command autoload --device /dev/input/event30' failed with exit >
    

    The version:

    root@magnetron:~# input-remapper-control --version
    input-remapper 1.5.0  https://github.com/sezanzeb/input-remapper
    python-evdev 1.6.0
    

    The simple test:

    root@magnetron:~# input-remapper-control --command hello
    Connected to the service
    Daemon answered with "hello"
    

    Running the gtk client in the debug mode:

    sudo input-remapper-gtk -d
    12:27:49.786261 69296 GUI INFO logger.py:220: input-remapper-gtk 1.5.0  https://github.com/sezanzeb/input-remapper
    12:27:49.786392 69296 GUI INFO logger.py:228: python-evdev 1.6.0
    12:27:49.786468 69296 GUI WARNING logger.py:231: Debug level will log all your keystrokes! Do not post this output in the internet if you typed in sensitive or private information with your device!
    12:27:49.786553 69296 GUI DEBUG input-remapper-gtk:55: Using locale directory: /usr/share/input-remapper/lang
    12:27:49.791950 69296 GUI DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-tukan/results"
    12:27:49.792512 69296 GUI DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-tukan/commands"
    12:27:49.806519 69296 GUI INFO global_config.py:105: Loaded config from "/home/tukan/.config/input-remapper/config.json"
    12:27:49.810399 69296 GUI INFO daemon.py:199: Connected to the service
    12:27:49.810514 69296 GUI DEBUG daemon.py:235: Telling service about "/home/tukan/.config/input-remapper"
    Loaded config from "/home/tukan/.config/input-remapper/config.json"
                                                                       12:27:49.811902 69296 GUI DEBUG user_interface.py:246: Running `pkexec input-remapper-control --command helper  -d`
    12:27:50.021419 69309 Control DEBUG input-remapper-control:230: Call for "['/usr/bin/input-remapper-control', '--command', 'helper', '-d']"
    12:27:50.028662 69309 Control DEBUG input-remapper-control:212: Booting finished
    12:27:50.029498 69309 Control INFO input-remapper-control:260: Done
    12:27:50.056475 69296 GUI DEBUG global_uinputs.py:80: creating fake UInput device: 'input-remapper keyboard'
    12:27:50.056590 69296 GUI DEBUG global_uinputs.py:80: creating fake UInput device: 'input-remapper gamepad'
    12:27:50.056666 69296 GUI DEBUG global_uinputs.py:80: creating fake UInput device: 'input-remapper mouse'
    12:27:50.056733 69296 GUI DEBUG global_uinputs.py:80: creating fake UInput device: 'input-remapper keyboard + mouse'
    12:27:50.220032 69296 GUI DEBUG groups.py:337: Discovering device paths
    12:27:50.220861 69296 GUI DEBUG groups.py:378: Found "0_0_0_-", "/dev/input/event19", "LogiOps Virtual Input", type: keyboard
    12:27:50.269740 69314 GUI-Helper DEBUG pipe.py:79: Using existing pipe for "/tmp/input-remapper-tukan/results"
    12:27:50.269918 69314 GUI-Helper DEBUG pipe.py:79: Using existing pipe for "/tmp/input-remapper-tukan/commands"
    12:27:50.270022 69314 GUI-Helper DEBUG helper.py:110: Sending groups
    12:27:50.272653 69314 GUI-Helper DEBUG groups.py:337: Discovering device paths
    12:27:50.273460 69314 GUI-Helper DEBUG groups.py:378: Found "0_0_0_-", "/dev/input/event19", "LogiOps Virtual Input", type: keyboard
    12:27:50.699361 69296 GUI DEBUG groups.py:378: Found "25_0_0_wmi", "/dev/input/event18", "HP WMI hotkeys", type: unknown
    12:27:50.795077 69296 GUI DEBUG groups.py:378: Found "24_1102_4636_i2c-ALP0017:00", "/dev/input/event15", "ALP0017:00 044E:121C UNKNOWN", type: unknown
    12:27:50.803350 69314 GUI-Helper DEBUG groups.py:378: Found "25_0_0_wmi", "/dev/input/event18", "HP WMI hotkeys", type: unknown
    12:27:50.815078 69296 GUI DEBUG groups.py:378: Found "24_1102_4636_i2c-ALP0017:00", "/dev/input/event14", "ALP0017:00 044E:121C Touchpad", type: touchpad
    12:27:50.835077 69296 GUI DEBUG groups.py:378: Found "24_1102_4636_i2c-ALP0017:00", "/dev/input/event13", "ALP0017:00 044E:121C Mouse", type: mouse
    12:27:50.851343 69296 GUI DEBUG groups.py:378: Found "3_1133_16514_usb-0000:00:14.0-4.4", "/dev/input/event12", "Logitech MX Master 3", type: mouse
    12:27:50.879069 69296 GUI DEBUG groups.py:378: Found "3_10730_864_usb-0000:00:14.0-4.3", "/dev/input/event11", "Kinesis Kinesis Adv360 System Control", type: unknown
    12:27:50.895079 69314 GUI-Helper DEBUG groups.py:378: Found "24_1102_4636_i2c-ALP0017:00", "/dev/input/event15", "ALP0017:00 044E:121C UNKNOWN", type: unknown
    12:27:50.911173 69296 GUI DEBUG groups.py:378: Found "3_10730_864_usb-0000:00:14.0-4.3", "/dev/input/event10", "Kinesis Kinesis Adv360 Consumer Control", type: unknown
    12:27:50.938845 69314 GUI-Helper DEBUG groups.py:378: Found "24_1102_4636_i2c-ALP0017:00", "/dev/input/event14", "ALP0017:00 044E:121C Touchpad", type: touchpad
    12:27:50.938985 69296 GUI DEBUG groups.py:378: Found "3_10730_864_usb-0000:00:14.0-4.3", "/dev/input/event9", "Kinesis Kinesis Adv360", type: keyboard
    12:27:50.958778 69296 GUI DEBUG groups.py:378: Found "3_10730_864_usb-0000:00:14.0-4.3", "/dev/input/event8", "Kinesis Kinesis Adv360", type: mouse
    12:27:50.962746 69314 GUI-Helper DEBUG groups.py:378: Found "24_1102_4636_i2c-ALP0017:00", "/dev/input/event13", "ALP0017:00 044E:121C Mouse", type: mouse
    12:27:50.978761 69296 GUI DEBUG groups.py:378: Found "17_2_8_isa0060", "/dev/input/event7", "AlpsPS/2 ALPS GlidePoint", type: touchpad
    12:27:50.978832 69314 GUI-Helper DEBUG groups.py:378: Found "3_1133_16514_usb-0000:00:14.0-4.4", "/dev/input/event12", "Logitech MX Master 3", type: mouse
    12:27:50.998879 69296 GUI DEBUG groups.py:378: Found "17_2_1_isa0060", "/dev/input/event6", "PS/2 Generic Mouse", type: unknown
    12:27:51.006771 69314 GUI-Helper DEBUG groups.py:378: Found "3_10730_864_usb-0000:00:14.0-4.3", "/dev/input/event11", "Kinesis Kinesis Adv360 System Control", type: unknown
    12:27:51.018771 69296 GUI DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event5", "Video Bus", type: unknown
    12:27:51.026770 69314 GUI-Helper DEBUG groups.py:378: Found "3_10730_864_usb-0000:00:14.0-4.3", "/dev/input/event10", "Kinesis Kinesis Adv360 Consumer Control", type: unknown
    12:27:51.050864 69314 GUI-Helper DEBUG groups.py:378: Found "3_10730_864_usb-0000:00:14.0-4.3", "/dev/input/event9", "Kinesis Kinesis Adv360", type: keyboard
    12:27:51.078825 69314 GUI-Helper DEBUG groups.py:378: Found "3_10730_864_usb-0000:00:14.0-4.3", "/dev/input/event8", "Kinesis Kinesis Adv360", type: mouse
    12:27:51.094870 69314 GUI-Helper DEBUG groups.py:378: Found "17_2_8_isa0060", "/dev/input/event7", "AlpsPS/2 ALPS GlidePoint", type: touchpad
    12:27:51.102788 69296 GUI DEBUG groups.py:378: Found "25_0_3_PNP0C0E", "/dev/input/event1", "Sleep Button", type: unknown
    12:27:51.110850 69314 GUI-Helper DEBUG groups.py:378: Found "17_2_1_isa0060", "/dev/input/event6", "PS/2 Generic Mouse", type: unknown
    12:27:51.118988 69296 GUI DEBUG groups.py:378: Found "17_1_1_isa0060", "/dev/input/event0", "AT Translated Set 2 keyboard", type: keyboard
    12:27:51.119671 69296 GUI INFO groups.py:449: Found "LogiOps Virtual Input", "HP WMI hotkeys", "ALP0017:00 044E:121C Mouse", "Logitech MX Master 3", "Kinesis Kinesis Adv360", "AlpsPS/2 ALPS GlidePoint", "PS/2 Generic Mouse", "Video Bus", "Sleep Button", "AT Translated Set 2 keyboard"
    12:27:51.121433 69296 GUI DEBUG preset.py:379: The newest preset is "AT Translated Set 2 keyboard", "new preset"
    12:27:51.121654 69296 GUI DEBUG user_interface.py:600: Selecting device "AT Translated Set 2 keyboard"
    12:27:51.121867 69296 GUI DEBUG user_interface.py:384: "AT Translated Set 2 keyboard" presets: "new preset"
    12:27:51.122209 69296 GUI DEBUG user_interface.py:714: Selecting preset "new preset"
    12:27:51.123212 69296 GUI DEBUG editor.py:322: Disabling the text input
    12:27:51.124178 69296 GUI DEBUG editor.py:322: Disabling the text input
    12:27:51.124957 69296 GUI INFO preset.py:170: Loading preset from "/home/tukan/.config/input-remapper/presets/AT Translated Set 2 keyboard/new preset.json"
    12:27:51.125655 69296 GUI DEBUG editor.py:322: Disabling the text input
    12:27:51.126225 69296 GUI DEBUG editor.py:322: Disabling the text input
    12:27:51.127176 69296 GUI DEBUG reader.py:190: Sending start msg to helper for "AT Translated Set 2 keyboard"
    12:27:51.127384 69296 GUI DEBUG reader.py:206: Clearing reader
    12:27:51.142760 69314 GUI-Helper DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event5", "Video Bus", type: unknown
    12:27:51.222736 69314 GUI-Helper DEBUG groups.py:378: Found "25_0_3_PNP0C0E", "/dev/input/event1", "Sleep Button", type: unknown
    12:27:51.242786 69314 GUI-Helper DEBUG groups.py:378: Found "17_1_1_isa0060", "/dev/input/event0", "AT Translated Set 2 keyboard", type: keyboard
    12:27:51.243206 69314 GUI-Helper INFO groups.py:449: Found "LogiOps Virtual Input", "HP WMI hotkeys", "ALP0017:00 044E:121C Mouse", "Logitech MX Master 3", "Kinesis Kinesis Adv360", "AlpsPS/2 ALPS GlidePoint", "PS/2 Generic Mouse", "Video Bus", "Sleep Button", "AT Translated Set 2 keyboard"
    12:27:51.243436 69314 GUI-Helper DEBUG helper.py:91: Waiting for the first command
    12:27:51.243505 69314 GUI-Helper DEBUG helper.py:103: Starting mainloop
    12:27:51.243588 69314 GUI-Helper DEBUG helper.py:117: Received command "AT Translated Set 2 keyboard"
    12:27:51.243669 69314 GUI-Helper DEBUG helper.py:139: No more commands in pipe
    12:27:51.243816 69314 GUI-Helper DEBUG helper.py:174: Starting reading keycodes from "AT Translated Set 2 keyboard"
    Loaded config from "/home/tukan/.config/input-remapper/config.json"
                                                                       Loaded config from "/home/tukan/.config/input-remapper/config.json"
                                 Received "hello" from client
    
    12:37:16.992508 69296 GUI DEBUG user_interface.py:332: Closing window
    12:37:16.993540 69296 GUI DEBUG reader.py:197: Sending close msg to helper
    12:37:16.994181 69314 GUI-Helper DEBUG helper.py:193: Stops reading due to new command
    
    (input-remapper-gtk:69296): Gtk-CRITICAL **: 12:37:17.010: gtk_tree_model_get_column_type: assertion 'GTK_IS_TREE_MODEL (tree_model)' failed
    
    (input-remapper-gtk:69296): Gtk-CRITICAL **: 12:37:17.010: gtk_combo_box_get_active_id: assertion 'gtk_tree_model_get_column_type (model, column) == G_TYPE_STRING' failed
    12:37:17.010985 69296 GUI DEBUG user_interface.py:332: Closing window
    12:37:17.011498 69296 GUI DEBUG reader.py:197: Sending close msg to helper
    
    (input-remapper-gtk:69296): Gtk-CRITICAL **: 12:37:17.011: gtk_main_quit: assertion 'main_loops != NULL' failed
    12:37:17.022822 69314 GUI-Helper DEBUG helper.py:117: Received command "terminate"
    

    The HW:

    Operating System: Debian GNU/Linux bookworm/sid   
              Kernel: Linux magnetron 6.0.0-6-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.0.12-1 (2022-12-09) x86_64 GNU/Linux
        Architecture: x86-64
      Hardware Model: HP EliteBook 850 G5
    
    opened by tukanos 0
  • Remap to a custom key

    Remap to a custom key

    I have side buttons on my mouse that I want to remap to a "custom button" so that I can choose what it does on a per app/game basis.

    The side buttons get detected perfectly, I just want to know if I can map it to a button that doesn't technically exist or do anything, so I can set what it does in each game myself.

    opened by Equinoxx4978 1
  • Razer Basilisk V3 Button not recognized

    Razer Basilisk V3 Button not recognized

    Please install the newest version from source to see if the problem has already been solved.

    Share some logs please:

    1. input-remapper-control --version (Answer: Latest Git Version)
    2. If a button on your device doesn't show up in the GUI, verify that the button is reporting an event via sudo evtest. If not, input-remapper won't be able to map that button. (Answer: only shows up on when using a different profile)
    3. If yes, please run input-remapper-gtk -d, reproduce the problem and then share the logs.

    when i try to use mouse button 6 (Check image for better understanding) it doesn't get recognized by any software at all

    image

    opened by NickTheOnlyNeko 7
  • Input not suppressed

    Input not suppressed

    I created a macro modify(Shift_L, wheel(down, 50)) when right click and wheel input to change the scroll direction horizontally, but it is not suppressing the right click input and it is frustrating that the menu is displayed.

    Information:

    1. input-remapper 1.5.0 e31a1b2bc5d23fe13130afcc242063196335399f https://github.com/sezanzeb/input-remapper python-evdev 1.3.0
    2. Zorin OS 16.2 x86_64
    3. x11
    4. Gnome
    5. lrwxrwxrwx 1 root root 0 12月 17 15:51 /proc/1/exe -> /usr/lib/systemd/systemd
    {
        "mapping": {
            "1,272,1+1,275,1": [
                "KEY_PLAYPAUSE",
                "keyboard"
            ],
            "1,272,1+1,274,1": [
                "Alt_L + Super_L + 8",
                "keyboard"
            ],
            "1,273,1+2,8,-1": [
                "modify(Shift_L, wheel(down, 50))",
                "keyboard + mouse"
            ]
        }
    }
    
    17:44:55.825166 20397 Service DEBUG keycode_mapper.py:522: maps to macro (modify(Shift_L,wheel(down,50)), keyboard + mouse) ((1, 273, 1), (2, 8, -1))
    17:44:55.825567 20397 Service DEBUG keycode_mapper.py:322: Macro sending (1, 42, 1) to keyboard + mouse
    17:44:55.836298 20397 Service DEBUG keycode_mapper.py:322: Macro sending (2, 8, -1) to keyboard + mouse
    17:44:55.856170 20397 Service DEBUG keycode_mapper.py:495: duplicate key down ············ ((1, 273, 1), (2, 8, -1))
    17:44:55.857782 20397 Service DEBUG keycode_mapper.py:322: Macro sending (2, 8, -1) to keyboard + mouse
    17:44:55.878811 20397 Service DEBUG keycode_mapper.py:322: Macro sending (2, 8, -1) to keyboard + mouse
    17:44:55.900330 20397 Service DEBUG keycode_mapper.py:322: Macro sending (2, 8, -1) to keyboard + mouse
    17:44:55.921284 20397 Service DEBUG keycode_mapper.py:322: Macro sending (2, 8, -1) to keyboard + mouse
    17:44:55.942576 20397 Service DEBUG keycode_mapper.py:322: Macro sending (2, 8, -1) to keyboard + mouse
    17:44:55.963607 20397 Service DEBUG keycode_mapper.py:322: Macro sending (2, 8, -1) to keyboard + mouse
    17:44:55.985660 20397 Service DEBUG keycode_mapper.py:322: Macro sending (2, 8, -1) to keyboard + mouse
    17:44:55.992467 20397 Service DEBUG keycode_mapper.py:437: releasing macro ··············· ((2, 8, 0))
    17:44:55.992655 20397 Service DEBUG keycode_mapper.py:450: releasing key ················· ((2, 8, 0))
    
    1. Command not found
    opened by Hackgets 3
  • Fix CombinationHandler releasing

    Fix CombinationHandler releasing

    notify of CombinationHandler has a forward_release method, which iterates over keys_to_release and sends all of them into a single forward_to device

    notify passes a single "forward" uinput down.

    some of the events in keys_to_release originate from other devices though

    I'm trying to add a property to the inputEvent that has a reference to the correct forwarding device

    opened by sezanzeb 11
Releases(1.5.0)
Owner
Tobi
JavaScript Full Stack Developer, doing Python at home
Tobi
CLI program that allows you to change your Alacritty config with one command without editing the config file.

Pycritty Change your alacritty config on the fly! Installation: pip install pycritty By default, only the program itself will be installed, but you ca

Antonio Sarosi 184 Jan 7, 2023
👻 Ghoul is an easy to use information service, allowing you to get/add information on someone or something directly from your terminal.

?? Ghoul is an easy to use information service, allowing you to get/add information on someone or something directly from your terminal. It c

Billy 11 Nov 10, 2021
Easy-to-use terminal program that can compile your code.

Description Easy-to-use terminal program that can compile your code. Installition 1. Cloning repository $ git clone https://github.com/DarkJoij/Compil

DarkJoij 1 Oct 21, 2021
A simple and easy-to-use CLI parse tool.

A simple and easy-to-use CLI parse tool.

AbsentM 1 Mar 4, 2022
Tiny command-line utility for mapping broken keys to other positions.

brokenkey Tiny command-line utility for mapping broken keys to other positions. Installation Clone this repository using git: git clone https://github

null 0 Oct 4, 2021
cmsis-pack-manager is a python module, Rust crate and command line utility for managing current device information that is stored in many CMSIS PACKs

cmsis-pack-manager cmsis-pack-manager is a python module, Rust crate and command line utility for managing current device information that is stored i

pyocd 20 Dec 21, 2022
Command-line tool to use LNURL with your LND instance

LND LNURL Commandline tool to use LNURL payRequest and withdrawRequest with LND. Usage: Customize config lndlnurl.conf Run python main.py <LNURL> Dock

Djuri Baars 6 Jan 14, 2022
Wordle helper: help you print posible 5-character words based on you input

Wordle Helper This program help you print posible 5-character words based on you

Gwan Thanakrit Juthamongkhon 4 Jan 19, 2022
A Python command-line utility for validating that the outputs of a given Declarative Form Azure Portal UI JSON template map to the input parameters of a given ARM Deployment Template JSON template

A Python command-line utility for validating that the outputs of a given Declarative Form Azure Portal UI JSON template map to the input parameters of a given ARM Deployment Template JSON template

Glenn Musa 1 Feb 3, 2022
A useful and easy to use Terminal Timer made with Python.

Terminal SpeedCubeTimer Installation ¡No requirements! Just Download and play Usage Starts timer.py and you will see this. python timer.py Scramble

Achalogy 5 Dec 22, 2022
Ralph is a command-line tool to fetch, extract, convert and push your tracking logs from various storage backends to your LRS or any other compatible storage or database backend.

Ralph is a command-line tool to fetch, extract, convert and push your tracking logs (aka learning events) from various storage backends to your

France Université Numérique 18 Jan 5, 2023
Ssl-tool - A simple interactive CLI wrapper around openssl to make creation and installation of self-signed certs easy

What's this? A simple interactive CLI wrapper around openssl to make self-signin

Aniket Teredesai 9 May 17, 2022
Konsave lets use save your KDE Plasma customizatios and restore them very easily!

Konsave (Save Plasma Customization) A CLI program that will let you save and apply your KDE Plasma customizations with just one command! Als

null 439 Jan 2, 2023
Todo - You could use terminal to set your todo

Python Tutorial You can learn how to build a terminal application(CLI applicatio

null 29 Jun 29, 2022
A terminal tool for git. When we use git, do you feel very uncomfortable with too long commands

PIGIT A terminal tool for git. When we use git, do you feel very uncomfortable with too long commands. For example: git status --short, this project c

Zachary 1 Apr 9, 2022
A command-line tool to flash python code to Codey Rocky without having to use the online mblock5 IDE.

What? A command-line tool to flash python code to Codey Rocky without having to use the online mblock5 IDE. Description This is a very low-effort proj

null 1 Dec 29, 2021
Several tools that can be added to your `PATH` to make your life easier.

CK-CLI Tools Several tools that can be added to your PATH to make your life easier. prettypath Prints the $PATH variable in a human-readable way. It a

Christopher Kumm 2 Apr 21, 2022
A simple automation script that logs into your kra account and files your taxes with one command

EASY_TAX A simple automation script that logs into your kra account and files your taxes with one command Currently works for Chrome users. Will creat

leon koech 13 Sep 23, 2021
Limit your docker image size with a simple CLI command. Perfect to be used inside your CI process.

docker-image-size-limit Limit your docker image size with a simple CLI command. Perfect to be used inside your CI process. Read the announcing post. I

wemake.services 102 Dec 14, 2022