input-remapper icon indicating copy to clipboard operation
input-remapper copied to clipboard

Can’t autoload Logitech USB Receiver rules when I insert USB Receiver

Open ai opened this issue 1 year ago • 5 comments

When I start the system with inserted Logitech USB Receiver loads its rules. But if I eject it and insert again, rules stop working.

The issue can be fixed by running GTK app and load rules manually.

System Information and logs

  1. input-remapper-control --version
input-remapper 2.0.1  https://github.com/sezanzeb/input-remapper
python-evdev 1.6.1
  1. which linux distro (ubuntu 20.04, manjaro, etc.)

Fedora 39

  1. which desktop environment (gnome, plasma, xfce4, etc.)

GNOME

  1. sudo ls -l /proc/1/exe to check if you are using systemd
lrwxrwxrwx. 1 root root 0 mar  4 10:34 /proc/1/exe -> /usr/lib/systemd/systemd
  1. cat ~/.config/input-remapper-2/config.json to see if the "autoload" config is written correctly
{
    "version": "2.0.1",
    "autoload": {
        "Logitech MX Master 3S": "Copy-Paste",
        "Logitech USB Receiver": "Copy-Paste"
    }
}
  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; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Mon 2024-03-04 10:35:39 CET; 8h ago
   Main PID: 2073 (input-remapper-)
      Tasks: 7 (limit: 33217)
     Memory: 32.8M
        CPU: 1min 54.140s
     CGroup: /system.slice/input-remapper.service
             ├─2073 /usr/bin/python3 /usr/bin/input-remapper-service
             └─2193 /usr/bin/python3 /usr/bin/input-remapper-service

mar 04 19:25:39 savoia input-remapper-service[2073]: Loaded config from "/home/ai/.config/input-remapper-2/config.json"
mar 04 19:25:39 savoia input-remapper-service[2073]: Request to start injecting for "Logitech USB Receiver"
mar 04 19:25:39 savoia input-remapper-service[2073]: Found "AT Translated Set 2 keyboard", "FRMW0004:00 32AC:0006 Consumer Control", "Video Bus", "PIXA3854:00 093A:0274 Mouse", "input-remapper keyboard", "Logitech USB Receiver"
mar 04 19:25:39 savoia input-remapper-service[2073]: Loading preset from "/home/ai/.config/input-remapper-2/presets/Logitech USB Receiver/Copy-Paste.json"
mar 04 19:25:39 savoia input-remapper-service[2073]: Stopping injecting keycodes for group "Logitech USB Receiver"
mar 04 19:25:39 savoia input-remapper-service[198630]: Starting injecting the preset for "Logitech USB Receiver"
mar 04 19:27:40 savoia input-remapper-service[198630]: ERROR: fd broke, was the device unplugged?
mar 04 19:27:40 savoia input-remapper-service[198630]: read loop for /dev/input/event9 stopped
mar 04 19:27:46 savoia input-remapper-service[2073]: Request to autoload for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Found "AT Translated Set 2 keyboard", "FRMW0004:00 32AC:0006 Consumer Control", "Video Bus", "PIXA3854:00 093A:0274 Mouse", "input-remapper keyboard", "input-remapper Logitech USB Receiver Mouse forwarded", "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Autoloading for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Request to start injecting for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Loading preset from "/home/ai/.config/input-remapper-2/presets/Logitech USB Receiver/Copy-Paste.json"
mar 04 19:27:46 savoia input-remapper-service[2073]: Stopping injecting keycodes for group "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[205493]: Starting injecting the preset for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Request to autoload for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Autoloading for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Not autoloading the same preset "Copy-Paste" again for group "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Request to autoload for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Autoloading for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Not autoloading the same preset "Copy-Paste" again for group "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Request to autoload for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Autoloading for "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[2073]: Not autoloading the same preset "Copy-Paste" again for group "Logitech USB Receiver"
mar 04 19:27:46 savoia input-remapper-service[205493]: Process Logitech USB Receiver:
mar 04 19:27:46 savoia input-remapper-service[205493]: Traceback (most recent call last):
mar 04 19:27:46 savoia input-remapper-service[205493]:   File "/usr/lib64/python3.12/site-packages/evdev/device.py", line 125, in __init__
mar 04 19:27:46 savoia input-remapper-service[205493]:     fd = os.open(dev, os.O_RDWR | os.O_NONBLOCK)
mar 04 19:27:46 savoia input-remapper-service[205493]:          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mar 04 19:27:46 savoia input-remapper-service[205493]: FileNotFoundError: [Errno 2] No such file or directory: '/dev/input/event18'
mar 04 19:27:46 savoia input-remapper-service[205493]: During handling of the above exception, another exception occurred:
mar 04 19:27:46 savoia input-remapper-service[205493]: Traceback (most recent call last):
mar 04 19:27:46 savoia input-remapper-service[205493]:   File "/usr/lib64/python3.12/multiprocessing/process.py", line 314, in _bootstrap
mar 04 19:27:46 savoia input-remapper-service[205493]:     self.run()
mar 04 19:27:46 savoia input-remapper-service[205493]:   File "/usr/lib/python3.12/site-packages/inputremapper/injection/injector.py", line 414, in run
mar 04 19:27:46 savoia input-remapper-service[205493]:     forward_devices[device_hash] = self._create_forwarding_device(device)
mar 04 19:27:46 savoia input-remapper-service[205493]:                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mar 04 19:27:46 savoia input-remapper-service[205493]:   File "/usr/lib/python3.12/site-packages/inputremapper/injection/injector.py", line 361, in _create_forwarding_device
mar 04 19:27:46 savoia input-remapper-service[205493]:     forward_to = evdev.UInput(
mar 04 19:27:46 savoia input-remapper-service[205493]:                  ^^^^^^^^^^^^^
mar 04 19:27:46 savoia input-remapper-service[205493]:   File "/usr/lib64/python3.12/site-packages/evdev/uinput.py", line 155, in __init__
mar 04 19:27:46 savoia input-remapper-service[205493]:     self.device = self._find_device()
mar 04 19:27:46 savoia input-remapper-service[205493]:                   ^^^^^^^^^^^^^^^^^^^
mar 04 19:27:46 savoia input-remapper-service[205493]:   File "/usr/lib64/python3.12/site-packages/evdev/uinput.py", line 282, in _find_device
mar 04 19:27:46 savoia input-remapper-service[205493]:     d = device.InputDevice(path)
mar 04 19:27:46 savoia input-remapper-service[205493]:         ^^^^^^^^^^^^^^^^^^^^^^^^
mar 04 19:27:46 savoia input-remapper-service[205493]:   File "/usr/lib64/python3.12/site-packages/evdev/device.py", line 127, in __init__
mar 04 19:27:46 savoia input-remapper-service[205493]:     fd = os.open(dev, os.O_RDONLY | os.O_NONBLOCK)
mar 04 19:27:46 savoia input-remapper-service[205493]:          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mar 04 19:27:46 savoia input-remapper-service[205493]: FileNotFoundError: [Errno 2] No such file or directory: '/dev/input/event18'

Testing the setup

  1. input-remapper-control --command hello
Connected to the service
Daemon answered with "hello"
Done
  1. sudo pkill -f input-remapper-service && sudo input-remapper-service -d & sleep 2 && input-remapper-control --command autoload, are your keys mapped now?

Yes

  1. (while the previous command is still running) sudo evtest and search for a device suffixed by "mapped". Select it, does it report any events? Share the output.

Yes

  1. sudo udevadm control --log-priority=debug && sudo udevadm control --reload-rules && journalctl -f | grep input-remapper, now plug in the device that should autoload
mar 04 19:32:08 savoia (udev-worker)[221930]: input39: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:08 savoia (udev-worker)[221930]: input39: Running command "/bin/input-remapper-control --command autoload --device "
mar 04 19:32:08 savoia (udev-worker)[221930]: input39: Starting '/bin/input-remapper-control --command autoload --device '
mar 04 19:32:08 savoia (udev-worker)[221931]: input40: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:08 savoia (udev-worker)[221931]: input40: Running command "/bin/input-remapper-control --command autoload --device "
mar 04 19:32:08 savoia (udev-worker)[221931]: input40: Starting '/bin/input-remapper-control --command autoload --device '
mar 04 19:32:08 savoia (udev-worker)[222377]: input41: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:08 savoia (udev-worker)[222377]: input41: Running command "/bin/input-remapper-control --command autoload --device "
mar 04 19:32:08 savoia (udev-worker)[222377]: input41: Starting '/bin/input-remapper-control --command autoload --device '
mar 04 19:32:08 savoia (udev-worker)[222378]: input42: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:08 savoia (udev-worker)[222378]: input42: Running command "/bin/input-remapper-control --command autoload --device "
mar 04 19:32:08 savoia (udev-worker)[222378]: input42: Starting '/bin/input-remapper-control --command autoload --device '
mar 04 19:32:08 savoia (udev-worker)[221931]: input40: '/bin/input-remapper-control --command autoload --device '(err) 'usage: input-remapper-control [-h] [--command NAME] [--config-dir PATH]'
mar 04 19:32:08 savoia (udev-worker)[221931]: input40: '/bin/input-remapper-control --command autoload --device '(err) '                              [--preset NAME] [--device NAME] [--list-devices]'
mar 04 19:32:08 savoia (udev-worker)[221931]: input40: '/bin/input-remapper-control --command autoload --device '(err) '                              [--symbol-names] [-d] [-v]'
mar 04 19:32:08 savoia (udev-worker)[221931]: input40: '/bin/input-remapper-control --command autoload --device '(err) 'input-remapper-control: error: argument --device: expected one argument'
mar 04 19:32:08 savoia (udev-worker)[222378]: input42: '/bin/input-remapper-control --command autoload --device '(err) 'usage: input-remapper-control [-h] [--command NAME] [--config-dir PATH]'
mar 04 19:32:08 savoia (udev-worker)[222378]: input42: '/bin/input-remapper-control --command autoload --device '(err) '                              [--preset NAME] [--device NAME] [--list-devices]'
mar 04 19:32:08 savoia (udev-worker)[222378]: input42: '/bin/input-remapper-control --command autoload --device '(err) '                              [--symbol-names] [-d] [-v]'
mar 04 19:32:08 savoia (udev-worker)[222378]: input42: '/bin/input-remapper-control --command autoload --device '(err) 'input-remapper-control: error: argument --device: expected one argument'
mar 04 19:32:08 savoia (udev-worker)[222377]: input41: '/bin/input-remapper-control --command autoload --device '(err) 'usage: input-remapper-control [-h] [--command NAME] [--config-dir PATH]'
mar 04 19:32:08 savoia (udev-worker)[222377]: input41: '/bin/input-remapper-control --command autoload --device '(err) '                              [--preset NAME] [--device NAME] [--list-devices]'
mar 04 19:32:08 savoia (udev-worker)[222377]: input41: '/bin/input-remapper-control --command autoload --device '(err) '                              [--symbol-names] [-d] [-v]'
mar 04 19:32:08 savoia (udev-worker)[222377]: input41: '/bin/input-remapper-control --command autoload --device '(err) 'input-remapper-control: error: argument --device: expected one argument'
mar 04 19:32:08 savoia (udev-worker)[221930]: input39: '/bin/input-remapper-control --command autoload --device '(err) 'usage: input-remapper-control [-h] [--command NAME] [--config-dir PATH]'
mar 04 19:32:08 savoia (udev-worker)[221930]: input39: '/bin/input-remapper-control --command autoload --device '(err) '                              [--preset NAME] [--device NAME] [--list-devices]'
mar 04 19:32:08 savoia (udev-worker)[221930]: input39: '/bin/input-remapper-control --command autoload --device '(err) '                              [--symbol-names] [-d] [-v]'
mar 04 19:32:08 savoia (udev-worker)[221930]: input39: '/bin/input-remapper-control --command autoload --device '(err) 'input-remapper-control: error: argument --device: expected one argument'
mar 04 19:32:08 savoia (udev-worker)[222378]: input42: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
mar 04 19:32:08 savoia (udev-worker)[222378]: input42: Command "/bin/input-remapper-control --command autoload --device " returned 2 (error), ignoring.
mar 04 19:32:08 savoia (udev-worker)[221931]: input40: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
mar 04 19:32:08 savoia (udev-worker)[221931]: input40: Command "/bin/input-remapper-control --command autoload --device " returned 2 (error), ignoring.
mar 04 19:32:08 savoia (udev-worker)[222378]: mouse2: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:08 savoia (udev-worker)[222378]: mouse2: Running command "/bin/input-remapper-control --command autoload --device /dev/input/mouse2"
mar 04 19:32:08 savoia (udev-worker)[222378]: mouse2: Starting '/bin/input-remapper-control --command autoload --device /dev/input/mouse2'
mar 04 19:32:08 savoia (udev-worker)[222377]: input41: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
mar 04 19:32:08 savoia (udev-worker)[222377]: input41: Command "/bin/input-remapper-control --command autoload --device " returned 2 (error), ignoring.
mar 04 19:32:08 savoia (udev-worker)[221930]: input39: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
mar 04 19:32:08 savoia (udev-worker)[221930]: input39: Command "/bin/input-remapper-control --command autoload --device " returned 2 (error), ignoring.
mar 04 19:32:08 savoia (udev-worker)[222385]: event11: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:08 savoia (udev-worker)[222385]: event11: Running command "/bin/input-remapper-control --command autoload --device /dev/input/event11"
mar 04 19:32:08 savoia (udev-worker)[222385]: event11: Starting '/bin/input-remapper-control --command autoload --device /dev/input/event11'
mar 04 19:32:08 savoia (udev-worker)[222379]: event10: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:08 savoia (udev-worker)[221929]: event9: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:08 savoia (udev-worker)[222379]: event10: Running command "/bin/input-remapper-control --command autoload --device /dev/input/event10"
mar 04 19:32:08 savoia (udev-worker)[222379]: event10: Starting '/bin/input-remapper-control --command autoload --device /dev/input/event10'
mar 04 19:32:08 savoia (udev-worker)[221929]: event9: Running command "/bin/input-remapper-control --command autoload --device /dev/input/event9"
mar 04 19:32:08 savoia (udev-worker)[221929]: event9: Starting '/bin/input-remapper-control --command autoload --device /dev/input/event9'
mar 04 19:32:08 savoia (udev-worker)[221934]: event8: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:08 savoia (udev-worker)[221934]: event8: Running command "/bin/input-remapper-control --command autoload --device /dev/input/event8"
mar 04 19:32:08 savoia (udev-worker)[221934]: event8: Starting '/bin/input-remapper-control --command autoload --device /dev/input/event8'
mar 04 19:32:08 savoia (udev-worker)[222378]: mouse2: '/bin/input-remapper-control --command autoload --device /dev/input/mouse2'(err) 'Connected to the service'
mar 04 19:32:08 savoia (udev-worker)[221929]: event9: '/bin/input-remapper-control --command autoload --device /dev/input/event9'(err) 'Connected to the service'
mar 04 19:32:08 savoia (udev-worker)[222379]: event10: '/bin/input-remapper-control --command autoload --device /dev/input/event10'(err) 'Connected to the service'
mar 04 19:32:08 savoia (udev-worker)[222385]: event11: '/bin/input-remapper-control --command autoload --device /dev/input/event11'(err) 'Connected to the service'
mar 04 19:32:08 savoia (udev-worker)[221934]: event8: '/bin/input-remapper-control --command autoload --device /dev/input/event8'(err) 'Connected to the service'
mar 04 19:32:08 savoia (udev-worker)[222378]: mouse2: '/bin/input-remapper-control --command autoload --device /dev/input/mouse2'(err) 'Found "AT Translated Set 2 keyboard", "FRMW0004:00 32AC:0006 Consumer Control", "Video Bus", "PIXA3854:00 093A:0274 Mouse", "input-remapper keyboard", "input-remapper Logitech USB Receiver Mouse forwarded", "Logitech USB Receiver"'
mar 04 19:32:08 savoia (udev-worker)[222378]: mouse2: '/bin/input-remapper-control --command autoload --device /dev/input/mouse2'(err) 'ERROR: Device "/dev/input/mouse2" is unknown or not an appropriate input device'
mar 04 19:32:08 savoia (udev-worker)[221929]: event9: '/bin/input-remapper-control --command autoload --device /dev/input/event9'(err) 'Found "AT Translated Set 2 keyboard", "FRMW0004:00 32AC:0006 Consumer Control", "Video Bus", "PIXA3854:00 093A:0274 Mouse", "input-remapper keyboard", "input-remapper Logitech USB Receiver Mouse forwarded", "Logitech USB Receiver"'
mar 04 19:32:08 savoia (udev-worker)[221929]: event9: '/bin/input-remapper-control --command autoload --device /dev/input/event9'(err) 'Asking daemon to autoload for /dev/input/event9'
mar 04 19:32:08 savoia (udev-worker)[222378]: mouse2: Process '/bin/input-remapper-control --command autoload --device /dev/input/mouse2' failed with exit code 4.
mar 04 19:32:08 savoia (udev-worker)[222378]: mouse2: Command "/bin/input-remapper-control --command autoload --device /dev/input/mouse2" returned 4 (error), ignoring.
mar 04 19:32:08 savoia (udev-worker)[222379]: event10: '/bin/input-remapper-control --command autoload --device /dev/input/event10'(err) 'Found "AT Translated Set 2 keyboard", "FRMW0004:00 32AC:0006 Consumer Control", "Video Bus", "PIXA3854:00 093A:0274 Mouse", "input-remapper keyboard", "input-remapper Logitech USB Receiver Mouse forwarded", "Logitech USB Receiver"'
mar 04 19:32:08 savoia (udev-worker)[222379]: event10: '/bin/input-remapper-control --command autoload --device /dev/input/event10'(err) 'Asking daemon to autoload for /dev/input/event10'
mar 04 19:32:08 savoia (udev-worker)[221934]: event8: '/bin/input-remapper-control --command autoload --device /dev/input/event8'(err) 'Found "AT Translated Set 2 keyboard", "FRMW0004:00 32AC:0006 Consumer Control", "Video Bus", "PIXA3854:00 093A:0274 Mouse", "input-remapper keyboard", "input-remapper Logitech USB Receiver Mouse forwarded", "Logitech USB Receiver"'
mar 04 19:32:08 savoia (udev-worker)[221934]: event8: '/bin/input-remapper-control --command autoload --device /dev/input/event8'(err) 'Asking daemon to autoload for /dev/input/event8'
mar 04 19:32:08 savoia (udev-worker)[222385]: event11: '/bin/input-remapper-control --command autoload --device /dev/input/event11'(err) 'Found "AT Translated Set 2 keyboard", "FRMW0004:00 32AC:0006 Consumer Control", "Video Bus", "PIXA3854:00 093A:0274 Mouse", "input-remapper keyboard", "input-remapper Logitech USB Receiver Mouse forwarded", "Logitech USB Receiver"'
mar 04 19:32:08 savoia (udev-worker)[222385]: event11: '/bin/input-remapper-control --command autoload --device /dev/input/event11'(err) 'Asking daemon to autoload for /dev/input/event11'
mar 04 19:32:08 savoia (udev-worker)[221929]: event9: '/bin/input-remapper-control --command autoload --device /dev/input/event9'(err) 'Done'
mar 04 19:32:08 savoia (udev-worker)[222379]: event10: '/bin/input-remapper-control --command autoload --device /dev/input/event10'(err) 'Done'
mar 04 19:32:08 savoia (udev-worker)[221934]: event8: '/bin/input-remapper-control --command autoload --device /dev/input/event8'(err) 'Done'
mar 04 19:32:08 savoia (udev-worker)[222385]: event11: '/bin/input-remapper-control --command autoload --device /dev/input/event11'(err) 'Done'
mar 04 19:32:09 savoia kernel: input: input-remapper Logitech USB Receiver Mouse forwarded as /devices/virtual/input/input43
mar 04 19:32:09 savoia (udev-worker)[222378]: input43: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:09 savoia (udev-worker)[222378]: input43: Running command "/bin/input-remapper-control --command autoload --device "
mar 04 19:32:09 savoia (udev-worker)[222378]: input43: Starting '/bin/input-remapper-control --command autoload --device '
mar 04 19:32:09 savoia (udev-worker)[222379]: event10: Process '/bin/input-remapper-control --command autoload --device /dev/input/event10' succeeded.
mar 04 19:32:09 savoia (udev-worker)[221929]: event9: Process '/bin/input-remapper-control --command autoload --device /dev/input/event9' succeeded.
mar 04 19:32:09 savoia (udev-worker)[221934]: event8: Process '/bin/input-remapper-control --command autoload --device /dev/input/event8' succeeded.
mar 04 19:32:09 savoia (udev-worker)[222385]: event11: Process '/bin/input-remapper-control --command autoload --device /dev/input/event11' succeeded.
mar 04 19:32:09 savoia (udev-worker)[222378]: input43: '/bin/input-remapper-control --command autoload --device '(err) 'usage: input-remapper-control [-h] [--command NAME] [--config-dir PATH]'
mar 04 19:32:09 savoia (udev-worker)[222378]: input43: '/bin/input-remapper-control --command autoload --device '(err) '                              [--preset NAME] [--device NAME] [--list-devices]'
mar 04 19:32:09 savoia (udev-worker)[222378]: input43: '/bin/input-remapper-control --command autoload --device '(err) '                              [--symbol-names] [-d] [-v]'
mar 04 19:32:09 savoia (udev-worker)[222378]: input43: '/bin/input-remapper-control --command autoload --device '(err) 'input-remapper-control: error: argument --device: expected one argument'
mar 04 19:32:09 savoia (udev-worker)[222378]: input43: Process '/bin/input-remapper-control --command autoload --device ' failed with exit code 2.
mar 04 19:32:09 savoia (udev-worker)[222378]: input43: Command "/bin/input-remapper-control --command autoload --device " returned 2 (error), ignoring.
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: /usr/lib/udev/rules.d/60-evdev.rules:20 Importing properties from results of builtin command 'hwdb 'evdev:name:input-remapper Logitech USB Receiver Mouse forwarded:dmi:bvnINSYDECorp.:bvr03.03:bd10/17/2023:br3.3:svnFramework:pnLaptop13_AMDRyzen7040Series_:pvrA7:rvnFramework:rnFRANMDCP07:rvrA7:cvnFramework:ct10:cvrA7:skuFRANDGCP07:''
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: /usr/lib/udev/rules.d/60-evdev.rules:20 Failed to run builtin 'hwdb 'evdev:name:input-remapper Logitech USB Receiver Mouse forwarded:dmi:bvnINSYDECorp.:bvr03.03:bd10/17/2023:br3.3:svnFramework:pnLaptop13_AMDRyzen7040Series_:pvrA7:rvnFramework:rnFRANMDCP07:rvrA7:cvnFramework:ct10:cvrA7:skuFRANDGCP07:'': No data available
mar 04 19:32:09 savoia (udev-worker)[222379]: mouse4: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: /usr/lib/udev/rules.d/60-evdev.rules:25 Importing properties from results of builtin command 'hwdb 'evdev:name:input-remapper Logitech USB Receiver Mouse forwarded:phys:py-evdev-uinput:ev:200017:dmi:bvnINSYDECorp.:bvr03.03:bd10/17/2023:br3.3:svnFramework:pnLaptop13_AMDRyzen7040Series_:pvrA7:rvnFramework:rnFRANMDCP07:rvrA7:cvnFramework:ct10:cvrA7:skuFRANDGCP07:''
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: /usr/lib/udev/rules.d/60-evdev.rules:25 Failed to run builtin 'hwdb 'evdev:name:input-remapper Logitech USB Receiver Mouse forwarded:phys:py-evdev-uinput:ev:200017:dmi:bvnINSYDECorp.:bvr03.03:bd10/17/2023:br3.3:svnFramework:pnLaptop13_AMDRyzen7040Series_:pvrA7:rvnFramework:rnFRANMDCP07:rvrA7:cvnFramework:ct10:cvrA7:skuFRANDGCP07:'': No data available
mar 04 19:32:09 savoia (udev-worker)[222379]: mouse4: Running command "/bin/input-remapper-control --command autoload --device /dev/input/mouse4"
mar 04 19:32:09 savoia (udev-worker)[222379]: mouse4: Starting '/bin/input-remapper-control --command autoload --device /dev/input/mouse4'
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: /usr/lib/udev/rules.d/65-libwacom.rules:20 Importing properties from results of builtin command 'hwdb --subsystem=input '--lookup-prefix=libwacom:name:input-remapper Logitech USB Receiver Mouse forwarded:''
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: /usr/lib/udev/rules.d/65-libwacom.rules:20 Failed to run builtin 'hwdb --subsystem=input '--lookup-prefix=libwacom:name:input-remapper Logitech USB Receiver Mouse forwarded:'': No data available
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: /usr/lib/udev/rules.d/99-input-remapper.rules:10 RUN '/bin/input-remapper-control --command autoload --device $env{DEVNAME}'
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: Running command "/bin/input-remapper-control --command autoload --device /dev/input/event19"
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: Starting '/bin/input-remapper-control --command autoload --device /dev/input/event19'
mar 04 19:32:09 savoia (udev-worker)[222379]: mouse4: '/bin/input-remapper-control --command autoload --device /dev/input/mouse4'(err) 'Connected to the service'
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: '/bin/input-remapper-control --command autoload --device /dev/input/event19'(err) 'Connected to the service'
mar 04 19:32:09 savoia (udev-worker)[222379]: mouse4: '/bin/input-remapper-control --command autoload --device /dev/input/mouse4'(err) 'ERROR: Failed to access path "/dev/input/event19": FileNotFoundError [Errno 2] No such file or directory: '/dev/input/event19''
mar 04 19:32:09 savoia (udev-worker)[222379]: mouse4: '/bin/input-remapper-control --command autoload --device /dev/input/mouse4'(err) 'Found "AT Translated Set 2 keyboard", "FRMW0004:00 32AC:0006 Consumer Control", "Video Bus", "PIXA3854:00 093A:0274 Mouse", "input-remapper keyboard", "Logitech USB Receiver"'
mar 04 19:32:09 savoia (udev-worker)[222379]: mouse4: '/bin/input-remapper-control --command autoload --device /dev/input/mouse4'(err) 'ERROR: Device "/dev/input/mouse4" is unknown or not an appropriate input device'
mar 04 19:32:09 savoia (udev-worker)[222379]: mouse4: Process '/bin/input-remapper-control --command autoload --device /dev/input/mouse4' failed with exit code 4.
mar 04 19:32:09 savoia (udev-worker)[222379]: mouse4: Command "/bin/input-remapper-control --command autoload --device /dev/input/mouse4" returned 4 (error), ignoring.
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: '/bin/input-remapper-control --command autoload --device /dev/input/event19'(err) 'ERROR: Failed to access path "/dev/input/event19": FileNotFoundError [Errno 2] No such file or directory: '/dev/input/event19''
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: '/bin/input-remapper-control --command autoload --device /dev/input/event19'(err) 'Found "AT Translated Set 2 keyboard", "FRMW0004:00 32AC:0006 Consumer Control", "Video Bus", "PIXA3854:00 093A:0274 Mouse", "input-remapper keyboard", "Logitech USB Receiver"'
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: '/bin/input-remapper-control --command autoload --device /dev/input/event19'(err) 'ERROR: Device "/dev/input/event19" is unknown or not an appropriate input device'
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: Process '/bin/input-remapper-control --command autoload --device /dev/input/event19' failed with exit code 4.
mar 04 19:32:09 savoia (udev-worker)[222385]: event19: Command "/bin/input-remapper-control --command autoload --device /dev/input/event19" returned 4 (error), ignoring.

ai avatar Mar 04 '24 18:03 ai

Adding a quote of my comment on a possibly related issue as it might help with yours.

This is definitely not the Right Way (tm) to do this, but it works for my use case with a single bluetooth device being remapped and input-remapper sometimes failing on reconnect. If you have multiple devices being remapped, this will cause an interruption whenever a device disconnects. Also, it's quite hacky as I didn't spend a lot of time learning the codebase ¯\_(ツ)_/¯

I updated inputremapper/injection/event_reader.py to send stop_all and autoload commands to the daemon upon device disconnect. Here's the diff with added lines identified with +'s, surrounding lines (without "+") are provided for context:

# Added lines for inputremapper/injection/event_reader.py


# ---------------- import daemon methods ----------------
from inputremapper.input_event import InputEvent
from inputremapper.logger import logger

+# Load daemon methods to send commands upon device disconnect
+import inputremapper.daemon as ir_daemon
+

class Context(Protocol):


# ---------------- send `stop_all` and `autoload` to daemon ----------------
                loop.remove_reader(self._source.fileno())
                logger.debug("read loop stopped")
+                # Connect to daemon and send "stop_all" and "autoload" commands
+                daemon = ir_daemon.Daemon.connect()
+                await daemon.send_stop_all()
+                await daemon.send_autoload()
                return

            events_ready.clear()

Modified event_reader.py attached, had to rename to event_reader.py.txt because GH restricts attachment file types.

christopherseaman avatar Mar 28 '24 20:03 christopherseaman

I got this error after the patch

Traceback (most recent call last):
  File "/usr/bin/input-remapper-gtk", line 39, in <module>
    from inputremapper.gui.reader_service import ReaderService
  File "/usr/lib/python3.12/site-packages/inputremapper/gui/reader_service.py", line 58, in <module>
    from inputremapper.injection.event_reader import EventReader
  File "/usr/lib/python3.12/site-packages/inputremapper/injection/event_reader.py", line 38, in <module>
    import inputremapper.daemon as ir_daemon
  File "/usr/lib/python3.12/site-packages/inputremapper/daemon.py", line 42, in <module>
    from inputremapper.injection.injector import Injector, InjectorState
  File "/usr/lib/python3.12/site-packages/inputremapper/injection/injector.py", line 45, in <module>
    from inputremapper.injection.event_reader import EventReader
ImportError: cannot import name 'EventReader' from partially initialized module 'inputremapper.injection.event_reader' (most likely due to a circular import) (/usr/lib/python3.12/site-packages/inputremapper/injection/event_reader.py)

Sorry, I am very inexperienced Python user

ai avatar Mar 28 '24 21:03 ai

Yeah, it’s definitely a circular dependency. More confused at how I’m NOT getting an error than how you are.

Could go a different path (event passing), but having trouble keeping it simple. The device disconnect event may not be “shared with the team”. Still a total noob to the codebase and asyncio.

Will see what I can figure out, but no promises.

christopherseaman avatar Mar 29 '24 08:03 christopherseaman

Will see what I can figure out, but no promises.

Thanks. Take your time, I report this issue mostly as feedback, I have a workaround (by re-running the app).

Your app is amazing and makes my life everyday better (as a dad I often have only one had and can do copy-paste with extra buttons of the mouse).

ai avatar Mar 29 '24 19:03 ai

I just found that the problem is happening only with USB received switching off.

Bluetooth disconnection, etc doesn’t have this issue.

ai avatar Apr 20 '24 14:04 ai