๐ŸŽฎ 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:

    [email protected]:~# input-remapper-control --version
    input-remapper 1.5.0  https://github.com/sezanzeb/input-remapper
    python-evdev 1.6.0
    

    The simple test:

    [email protected]:~# 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
uploadgram uses your Telegram account to upload files up to 2GiB, from the Terminal.

uploadgram uploadgram uses your Telegram account to upload files up to 2GiB, from the Terminal. Heavily inspired by the telegram-upload Installing: pi

Shrimadhav U K 97 Jan 06, 2023
Simple Tool To Grab Like-Card Coupon

Simple Tool To Grab Like-Card Coupon

Soud 10 Jan 30, 2022
A simple command-line tracert implementation in Python 3 using ICMP packets

Traceroute A simple command-line tracert implementation in Python 3 using ICMP packets Details Traceroute is a networking tool designed for tracing th

James 3 Jul 16, 2022
Stephen's Obsessive Note-Storage Engine.

Latest Release ยท PyPi Package ยท Issues ยท Changelog ยท License # Get Sonse and tell it where your notes are... $ pip install sonse $ export SONSE="$HOME

Stephen Malone 23 Jun 10, 2022
TerminalGV is a very simple client to display stats about your SNCF TGV/TER train in your terminal.

TerminalGV So I got bored in the train, TerminalGV is a very simple client to display stats about your SNCF TGV/TER train in your terminal. The "on-tr

Samuel 8 Dec 15, 2022
Shortcut-Maker - It is a tool that can be set to run any tool with a single command

Shortcut-Maker It is a tool that can be set to run any tool with a single command Coded by Dave Smith(Owner of Sl Cyber Warriors) Command list ๐Ÿ‘‡ pkg

Dave Smith 10 Sep 14, 2022
Lsp Plugin for working with Python virtual environments

py_lsp.nvim What is py_lsp? py_lsp.nvim is a neovim plugin that helps with using the lsp feature for python development. It tackles the problem about

Patrick Haller 55 Dec 27, 2022
๐Ÿพ Get the nftables counters easier to read

nft-stats Get the nftables counters easier to read It kind of hard to read the output of nft list ruleset so there is a small program parcising the ou

7 Oct 08, 2022
Install python modules from pypi from a previous date in history

pip-rewind is a command-line tool that can rewind pypi module versions (given as command-line arguments or read from a requirements.txt file) to a previous date in time.

Amar Paul 4 Jul 03, 2021
pyGinit is a command line tools that help you to initialize your current project a local git repo and remote repo

pyGinit pyGinit is a command line tools that help you to initialize your current project a local git repo and remote repo Requirements Requirements be

AlphaBeta 15 Feb 26, 2022
CLI based Crunchyroll Account Checker Proxyless written in python from scratch.

A tool for checking Combolist of Crunchyroll accounts without proxies, It is written in Python from Scratch ,i.e, no external module is used rather than inbuilt Python modules.

Abhijeet 8 Dec 13, 2022
Command line tool for google dorks

CLI for google dorks This is the command line tool made with pytohn which allows the users to perform Google dorks easily Installation Install google

subrahmanya s hegade 3 Feb 08, 2022
A CLI Password Manager made using Python and Postgresql database.

ManageMyPasswords (CLI Edition) A CLI Password Manager made using Python and Postgresql database. Quick Start Guide First Clone The Project git clone

Imira Randeniya 1 Sep 11, 2022
This is the public repo for the VS Code Extension AT&T i386/IA32 UIUC-ECE391 Syntax Highlighting

AT&T i386 IA32 UIUC ECE391 GCC Highlighter & Snippet & Linter This is the VS Code Extension for UIUC ECE 391, MIT 6.828, and all other AT&T-based i386

Jackgetup 1 Feb 05, 2022
Multifunctional library for creating progress bars.

๐Ÿ‘‹ Content Installation Using github Using pypi Quickstart Flags Useful links Documentation Pypi Changelog TODO Contributing FAQ Bar structure โš™๏ธ Inst

DenyS 27 Jan 01, 2023
A CLI tool to disable and enable security standards controls in AWS Security Hub

Security Hub Controls CLI A CLI tool to disable and enable security standards controls in AWS Security Hub. It is designed to work together with AWS S

AWS Samples 4 Nov 14, 2022
Terminal epub reader with inline images

nuber Inspired by epy, nuber is an Epub terminal reader with inline images written with Rust and Python using รœberzug. Features Display images in term

Moshe Sherman 73 Oct 12, 2022
A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli.

ABOUT A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Installation pip install -r requirements.txt It use

Janardon Hazarika 17 Dec 11, 2022
Dead simple CLI tool to try Python packages - It's never been easier! :package:

try - It's never been easier to try Python packages try is an easy-to-use cli tool to try out Python packages. Features Install specific package versi

Timo Furrer 659 Dec 28, 2022
Output Analyzer for you terminal commands

Output analyzer (OZER) You can specify a few words inside config.yaml file and specify the color you want to be used. installing: Install command usin

Ehsan Shirzadi 1 Oct 21, 2021