Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ai opened this issue Mar 4, 2024 · 5 comments
Open

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

ai opened this issue Mar 4, 2024 · 5 comments

Comments

@ai
Copy link

ai commented Mar 4, 2024

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.
@christopherseaman
Copy link

christopherseaman commented Mar 28, 2024

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.

@ai
Copy link
Author

ai commented Mar 28, 2024

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

@christopherseaman
Copy link

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.

@ai
Copy link
Author

ai commented Mar 29, 2024

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
Copy link
Author

ai commented Apr 20, 2024

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

Bluetooth disconnection, etc doesn’t have this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants