sezanzeb / input-remapper

🎮 ⌨ An easy to use tool to change the behaviour of your input devices.
GNU General Public License v3.0
3.78k stars 156 forks source link

Key not getting injected after disconnecting and reconnecting device from USB-C monitor #819

Closed thecodygriffin closed 7 months ago

thecodygriffin commented 10 months ago

I use a Dell UltraSharp 24" USB-C Monitor (U2419HC). I swap connecting to it between two different laptops daily using DisplayPort over USB C. Because of this, I plug my Microsoft Sculpt Ergonomic Mouse which uses a wireless RF dongle to the USB A port of the monitor so I can use it with both laptops. This effectively makes the monitor a dock/hub.

When I disconnect my personal laptop running Fedora 39 from the monitor and reconnect it, my key mapping of the BTN_SIDE button on the mouse to the Super_R key of the keyboard stops functioning. Restarting the input-remapper systemd process does not resolve the issue. I either have to completely restart my laptop or open the Input Remapper GUI and select the Apply button on the Editor page for the preset.

I find this odd because when I disconnect and reconnect the wireless RF dongle to a USB A port on the laptop itself, the issue is not reproducible.

To be honest, I am not looking for a code fix (although one would be appreciated if possible). I am just looking for a way to reapply my setting quickly from the Terminal without having to open the Input Remapper GUI and select the Apply button for the preset.

Thank you for reviewing and considering this behavior.

Output of 'input-remapper-control --version'

input-remapper 2.0.1  https://github.com/sezanzeb/input-remapper
python-evdev 1.6.1

Linux Distribution, Desktop Environment, and Session Type Fedora 39, Gnome, and Wayland

Output of 'sudo ls -l /proc/1/exe' lrwxrwxrwx. 1 root root 0 Dec 4 18:53 /proc/1/exe -> /usr/lib/systemd/system

Side Button to Super R.json from /.config/input-remapper-2/presets/Microsoft Microsoft 2.4GHz Transceiver v9.0

[
    {
        "input_combination": [
            {
                "type": 1,
                "code": 275,
                "origin_hash": "bad8319a28955b78fa771cc86558627f"
            }
        ],
        "target_uinput": "keyboard",
        "output_symbol": "Super_R",
        "mapping_type": "key_macro"
    }
]

Log produced after 'sudo pkill -f input-remapper-service && input-remapper-gtk -d'

19:01:27.864138 37251 GUI INFO logger.py:265: input-remapper-gtk 2.0.1  https://github.com/sezanzeb/input-remapper
19:01:27.864329 37251 GUI INFO logger.py:273: python-evdev 1.6.1
19:01:27.864438 37251 GUI WARNING logger.py:276: 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!
19:01:27.864556 37251 GUI DEBUG input-remapper-gtk:67: Using locale directory: /usr/share/input-remapper/lang
19:01:27.878996 37251 GUI DEBUG pipe.py:70: Creating new pipe for "/tmp/input-remapper-codygriffin/reader-results"
19:01:27.879570 37251 GUI DEBUG pipe.py:70: Creating new pipe for "/tmp/input-remapper-codygriffin/reader-commands"
19:01:27.879844 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.terminate: <function ReaderClient.attach_to_events.<locals>.<lambda> at 0x7f1cf48a3ec0>
19:01:27.880762 37251 GUI DEBUG reader_service.py:144: Running `pkexec input-remapper-control --command start-reader-service -d`
19:01:29.426874 37257 control DEBUG input-remapper-control:233: Call for "['/usr/bin/input-remapper-control', '--command', 'start-reader-service', '-d']"
19:01:29.434723 37257 control DEBUG input-remapper-control:215: System is booted
19:01:29.434847 37257 control DEBUG input-remapper-control:178: Running `input-remapper-reader-service -d &`
19:01:29.435900 37257 control INFO input-remapper-control:263: Done
19:01:29.476084 37251 GUI INFO daemon.py:234: Starting the service
19:01:29.476170 37251 GUI DEBUG daemon.py:245: Running `pkexec input-remapper-control --command start-daemon  -d`
19:01:29.631698 37330 reader-service DEBUG data.py:118: Found data at "/usr/share/input-remapper"
19:01:29.643994 37330 reader-service DEBUG pipe.py:87: Using existing pipe for "/tmp/input-remapper-codygriffin/reader-results"
19:01:29.644196 37330 reader-service DEBUG pipe.py:87: Using existing pipe for "/tmp/input-remapper-codygriffin/reader-commands"
19:01:29.644613 37330 reader-service DEBUG reader_service.py:154: Discovering initial groups
19:01:29.645001 37330 reader-service DEBUG groups.py:354: Discovering device paths
19:01:29.645433 37330 reader-service DEBUG groups.py:391: "Lid Switch" has no useful capabilities
19:01:29.673379 37330 reader-service DEBUG groups.py:402: Found unknown "Sleep Button" at "/dev/input/event2", hash "9cfc19c3c931a9d205fc3fa9d159a97e", key "25_0_3_PNP0C0E"
19:01:29.681298 37330 reader-service DEBUG groups.py:402: Found keyboard "AT Translated Set 2 keyboard" at "/dev/input/event3", hash "650869084d234c8ce49bb632f09ccf3e", key "17_1_1_isa0060"
19:01:29.693237 37330 reader-service DEBUG groups.py:402: Found unknown "PS/2 Generic Mouse" at "/dev/input/event4", hash "cc05ac157e1fcf55b90d8ca3ebecf45b", key "17_2_1_isa0060"
19:01:29.702223 37330 reader-service DEBUG groups.py:402: Found mouse "DELL08B7:00 044E:120A Mouse" at "/dev/input/event10", hash "7eeb9e95fd346c48be428f5acafb2ee7", key "24_1102_4618_i2c-DELL08B7:00"
19:01:29.708408 37331 control DEBUG input-remapper-control:233: Call for "['/usr/bin/input-remapper-control', '--command', 'start-daemon', '-d']"
19:01:29.714244 37330 reader-service DEBUG groups.py:402: Found touchpad "DELL08B7:00 044E:120A Touchpad" at "/dev/input/event11", hash "f10b822f332117af2164479e496db8c7", key "24_1102_4618_i2c-DELL08B7:00"
19:01:29.716231 37331 control DEBUG input-remapper-control:215: System is booted
19:01:29.716380 37331 control DEBUG input-remapper-control:178: Running `input-remapper-service --hide-info -d &`
19:01:29.717541 37331 control INFO input-remapper-control:263: Done
19:01:29.723259 37330 reader-service DEBUG groups.py:402: Found unknown "DELL08B7:00 044E:120A UNKNOWN" at "/dev/input/event12", hash "a88861a6dc7f87b7b8f2bc26135d75b9", key "24_1102_4618_i2c-DELL08B7:00"
19:01:29.741224 37330 reader-service DEBUG groups.py:402: Found unknown "Video Bus" at "/dev/input/event13", hash "97ce48b026f7f5a939d64ade3b570921", key "25_0_6_LNXVIDEO"
19:01:29.748225 37330 reader-service DEBUG groups.py:402: Found unknown "Intel HID events" at "/dev/input/event14", hash "c8ed72af2ee31e484484ae2a3b993d14", key "25_0_0_-"
19:01:29.756235 37330 reader-service DEBUG groups.py:402: Found unknown "Intel HID 5 button array" at "/dev/input/event15", hash "dcab597aec1817073adc602b83a72484", key "25_0_0_-"
19:01:29.765221 37330 reader-service DEBUG groups.py:402: Found unknown "Dell WMI hotkeys" at "/dev/input/event16", hash "fd987cbd5a7c5f35939b17e7efd938cd", key "25_0_0_-"
19:01:29.781197 37330 reader-service DEBUG groups.py:391: "PC Speaker" has no useful capabilities
19:01:29.798195 37330 reader-service DEBUG groups.py:391: "HDA Intel PCH Headphone Mic" has no useful capabilities
19:01:29.813177 37330 reader-service DEBUG groups.py:391: "HDA Intel PCH HDMI/DP,pcm=3" has no useful capabilities
19:01:29.832184 37330 reader-service DEBUG groups.py:391: "HDA Intel PCH HDMI/DP,pcm=7" has no useful capabilities
19:01:29.851166 37330 reader-service DEBUG groups.py:391: "HDA Intel PCH HDMI/DP,pcm=8" has no useful capabilities
19:01:29.867293 37330 reader-service DEBUG groups.py:402: Found keyboard "Microsoft Microsoft® 2.4GHz Transceiver v9.0" at "/dev/input/event5", hash "b9a834fe04b79cd1332292f13713e9ba", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:29.876222 37330 reader-service DEBUG groups.py:402: Found mouse "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse" at "/dev/input/event6", hash "bad8319a28955b78fa771cc86558627f", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:29.883189 37330 reader-service DEBUG groups.py:391: "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control" has no useful capabilities
19:01:29.895372 37330 reader-service DEBUG groups.py:402: Found keyboard "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control" at "/dev/input/event8", hash "daad6bf06e6ae900986cc2f87ad89260", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:29.904227 37330 reader-service DEBUG groups.py:402: Found unknown "Microsoft Microsoft® 2.4GHz Transceiver v9.0 System Control" at "/dev/input/event9", hash "e6b85aa9509d6f5ff4d3ac8234484a61", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:29.904692 37330 reader-service INFO groups.py:481: Found "Sleep Button", "AT Translated Set 2 keyboard", "PS/2 Generic Mouse", "DELL08B7:00 044E:120A Mouse", "Video Bus", "Intel HID events", "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:29.904816 37330 reader-service DEBUG reader_service.py:161: Sending groups
19:01:29.906084 37330 reader-service DEBUG reader_service.py:193: Waiting for commands
19:01:29.941779 37341 service DEBUG data.py:118: Found data at "/usr/share/input-remapper"
19:01:29.959776 37341 service DEBUG daemon.py:196: Creating daemon
19:01:29.960047 37341 service INFO global_config.py:109: Loaded config from "/home/codygriffin/.config/input-remapper-2/config.json"
19:01:29.960221 37341 service DEBUG shared_dict.py:57: Starting SharedDict process
19:01:29.960943 37251 GUI DEBUG daemon.py:255: Attempt 1 to reach the service failed:
19:01:29.961074 37251 GUI DEBUG daemon.py:256: "g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable (2)"
19:01:29.962454 37342 service DEBUG shared_dict.py:63: SharedDict process started
19:01:29.966909 37341 service DEBUG daemon.py:281: Running daemon
19:01:30.167146 37251 GUI DEBUG daemon.py:264: Telling service about "/home/codygriffin/.config/input-remapper-2"
19:01:30.170156 37341 service INFO global_config.py:109: Loaded config from "/home/codygriffin/.config/input-remapper-2/config.json"
19:01:30.170844 37251 GUI DEBUG global_uinputs.py:135: Creating FrontendUInputs
19:01:30.170983 37251 GUI DEBUG global_uinputs.py:103: creating fake UInput device: "input-remapper keyboard"
19:01:30.171097 37251 GUI DEBUG global_uinputs.py:103: creating fake UInput device: "input-remapper gamepad"
19:01:30.171188 37251 GUI DEBUG global_uinputs.py:103: creating fake UInput device: "input-remapper mouse"
19:01:30.171271 37251 GUI DEBUG global_uinputs.py:103: creating fake UInput device: "input-remapper keyboard + mouse"
19:01:30.171468 37251 GUI INFO global_config.py:109: Loaded config from "/home/codygriffin/.config/input-remapper-2/config.json"
19:01:30.171585 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.groups: <bound method Controller._on_groups_changed of <inputremapper.gui.controller.Controller object at 0x7f1cf5026450>>
19:01:30.171682 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method Controller._on_preset_changed of <inputremapper.gui.controller.Controller object at 0x7f1cf5026450>>
19:01:30.171783 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.init: <bound method Controller._on_init of <inputremapper.gui.controller.Controller object at 0x7f1cf5026450>>
19:01:30.171882 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method Controller._publish_mapping_errors_as_status_msg of <inputremapper.gui.controller.Controller object at 0x7f1cf5026450>>
19:01:30.171977 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method Controller._publish_mapping_errors_as_status_msg of <inputremapper.gui.controller.Controller object at 0x7f1cf5026450>>
19:01:30.172182 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.terminate: <function UserInterface.__init__.<locals>.<lambda> at 0x7f1cf4930cc0>
19:01:30.266598 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.groups: <bound method DeviceGroupSelection._on_groups_changed of <inputremapper.gui.components.device_groups.DeviceGroupSelection object at 0x7f1cf4a13ec0>>
19:01:30.266713 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.group: <bound method DeviceGroupSelection._on_group_changed of <inputremapper.gui.components.device_groups.DeviceGroupSelection object at 0x7f1cf4a13ec0>>
19:01:30.266825 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.group: <bound method PresetSelection._on_group_changed of <inputremapper.gui.components.presets.PresetSelection object at 0x7f1cf4b8bd40>>
19:01:30.266904 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method PresetSelection._on_preset_changed of <inputremapper.gui.components.presets.PresetSelection object at 0x7f1cf4b8bd40>>
19:01:30.267220 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method MappingListBox._on_preset_changed of <inputremapper.gui.components.editor.MappingListBox object at 0x7f1cf4d2bbc0>>
19:01:30.267298 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method MappingListBox._on_mapping_changed of <inputremapper.gui.components.editor.MappingListBox object at 0x7f1cf4d2bbc0>>
19:01:30.267386 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.uinputs: <bound method TargetSelection._on_uinputs_changed of <inputremapper.gui.components.editor.TargetSelection object at 0x7f1cf4936a50>>
19:01:30.267441 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method TargetSelection._on_mapping_loaded of <inputremapper.gui.components.editor.TargetSelection object at 0x7f1cf4936a50>>
19:01:30.267509 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.group: <bound method Breadcrumbs._on_group_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7f1cf4936ff0>>
19:01:30.267560 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method Breadcrumbs._on_preset_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7f1cf4936ff0>>
19:01:30.267607 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method Breadcrumbs._on_mapping_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7f1cf4936ff0>>
19:01:30.267766 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.group: <bound method Breadcrumbs._on_group_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7f1cf48ceab0>>
19:01:30.267820 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method Breadcrumbs._on_preset_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7f1cf48ceab0>>
19:01:30.267869 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method Breadcrumbs._on_mapping_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7f1cf48ceab0>>
19:01:30.268117 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.do_stack_switch: <bound method Stack._do_stack_switch of <inputremapper.gui.components.main.Stack object at 0x7f1cf4936de0>>
19:01:30.268209 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.recording_finished: <bound method RecordingToggle._on_recording_finished of <inputremapper.gui.components.editor.RecordingToggle object at 0x7f1cf4937230>>
19:01:30.268286 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method RequireActiveMapping._on_preset of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7f1cf49371a0>>
19:01:30.268338 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method RequireActiveMapping._on_mapping of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7f1cf49371a0>>
19:01:30.268782 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.status_msg: <bound method StatusBar._on_status_update of <inputremapper.gui.components.main.StatusBar object at 0x7f1cf4937290>>
19:01:30.268856 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.recording_started: <bound method RecordingStatus._on_recording_started of <inputremapper.gui.components.editor.RecordingStatus object at 0x7f1cf49373b0>>
19:01:30.268914 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.recording_finished: <bound method RecordingStatus._on_recording_finished of <inputremapper.gui.components.editor.RecordingStatus object at 0x7f1cf49373b0>>
19:01:30.269159 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method AutoloadSwitch._on_preset_changed of <inputremapper.gui.components.editor.AutoloadSwitch object at 0x7f1cf4937560>>
19:01:30.269251 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method ReleaseCombinationSwitch._on_mapping_changed of <inputremapper.gui.components.editor.ReleaseCombinationSwitch object at 0x7f1cf4937080>>
19:01:30.269345 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method CombinationListbox._on_mapping_changed of <inputremapper.gui.components.editor.CombinationListbox object at 0x7f1cf4e351f0>>
19:01:30.269411 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.selected_event: <bound method CombinationListbox._on_event_changed of <inputremapper.gui.components.editor.CombinationListbox object at 0x7f1cf4e351f0>>
19:01:30.269528 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.selected_event: <bound method AnalogInputSwitch._on_event of <inputremapper.gui.components.editor.AnalogInputSwitch object at 0x7f1cf4937500>>
19:01:30.269991 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.selected_event: <bound method TriggerThresholdInput._on_event of <inputremapper.gui.components.editor.TriggerThresholdInput object at 0x7f1cf49376e0>>
19:01:30.270697 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method RelativeInputCutoffInput._on_mapping_message of <inputremapper.gui.components.editor.RelativeInputCutoffInput object at 0x7f1cf4937710>>
19:01:30.271375 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method OutputAxisSelector._on_mapping_message of <inputremapper.gui.components.editor.OutputAxisSelector object at 0x7f1cf49377d0>>
19:01:30.271466 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.uinputs: <bound method OutputAxisSelector._on_uinputs_message of <inputremapper.gui.components.editor.OutputAxisSelector object at 0x7f1cf49377d0>>
19:01:30.271580 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method KeyAxisStackSwitcher._on_mapping_message of <inputremapper.gui.components.editor.KeyAxisStackSwitcher object at 0x7f1cf49f2f30>>
19:01:30.271690 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method ReleaseTimeoutInput._on_mapping_message of <inputremapper.gui.components.editor.ReleaseTimeoutInput object at 0x7f1cfd6428a0>>
19:01:30.271893 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method TransformationDrawArea._on_mapping_message of <inputremapper.gui.components.editor.TransformationDrawArea object at 0x7f1cf5026a80>>
19:01:30.272806 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method Sliders._on_mapping_message of <inputremapper.gui.components.editor.Sliders object at 0x7f1cf4937950>>
19:01:30.272917 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method RequireActiveMapping._on_preset of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7f1cf4937050>>
19:01:30.272976 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method RequireActiveMapping._on_mapping of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7f1cf4937050>>
19:01:30.273064 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method RequireActiveMapping._on_preset of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7f1cf49379b0>>
19:01:30.273156 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method RequireActiveMapping._on_mapping of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7f1cf49379b0>>
19:01:30.273273 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.preset: <bound method RequireActiveMapping._on_preset of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7f1cf4937b00>>
19:01:30.273334 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method RequireActiveMapping._on_mapping of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7f1cf4937b00>>
19:01:30.273722 37251 GUI WARNING utils.py:199: HandlerDisabled entry failed: "nothing connected to <bound method CodeEditor._on_gtk_changed of <inputremapper.gui.components.editor.CodeEditor object at 0x7f1cf4937b60>>"
19:01:30.273871 37251 GUI WARNING utils.py:205: HandlerDisabled exit failed: "nothing connected to <bound method CodeEditor._on_gtk_changed of <inputremapper.gui.components.editor.CodeEditor object at 0x7f1cf4937b60>>"
19:01:30.273960 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method CodeEditor._on_mapping_loaded of <inputremapper.gui.components.editor.CodeEditor object at 0x7f1cf4937b60>>
19:01:30.274016 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.recording_finished: <bound method CodeEditor._on_recording_finished of <inputremapper.gui.components.editor.CodeEditor object at 0x7f1cf4937b60>>
19:01:30.275196 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method Autocompletion._on_mapping_changed of <autocompletion.Autocompletion object at 0x7f1ce2ded180 (Autocompletion at 0x5570ed422f70)>>
19:01:30.275290 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.uinputs: <bound method Autocompletion._on_uinputs_changed of <autocompletion.Autocompletion object at 0x7f1ce2ded180 (Autocompletion at 0x5570ed422f70)>>
19:01:30.275602 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method UserInterface.update_combination_label of <inputremapper.gui.user_interface.UserInterface object at 0x7f1cf5026510>>
19:01:30.275675 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.injector_state: <bound method UserInterface.on_injector_state_msg of <inputremapper.gui.user_interface.UserInterface object at 0x7f1cf5026510>>
19:01:30.275781 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.user_confirm_request: <bound method UserInterface._on_user_confirm_request of <inputremapper.gui.user_interface.UserInterface object at 0x7f1cf5026510>>
19:01:30.307169 37251 GUI DEBUG reader_client.py:141: received {'type': 'status', 'message': 'ready'}
19:01:30.307297 37251 GUI DEBUG reader_client.py:141: received {'type': 'groups', 'message': '["{\\"paths\\": [\\"/dev/input/event2\\"], \\"names\\": [\\"Sleep Button\\"], \\"types\\": [], \\"key\\": \\"Sleep Button\\"}", "{\\"paths\\": [\\"/dev/input/event3\\"], \\"names\\": [\\"AT Translated Set 2 keyboard\\"], \\"types\\": [\\"keyboard\\"], \\"key\\": \\"AT Translated Set 2 keyboard\\"}", "{\\"paths\\": [\\"/dev/input/event4\\"], \\"names\\": [\\"PS/2 Generic Mouse\\"], \\"types\\": [], \\"key\\": \\"PS/2 Generic Mouse\\"}", "{\\"paths\\": [\\"/dev/input/event10\\", \\"/dev/input/event11\\", \\"/dev/input/event12\\"], \\"names\\": [\\"DELL08B7:00 044E:120A Mouse\\", \\"DELL08B7:00 044E:120A Touchpad\\", \\"DELL08B7:00 044E:120A UNKNOWN\\"], \\"types\\": [\\"mouse\\", \\"touchpad\\"], \\"key\\": \\"DELL08B7:00 044E:120A Mouse\\"}", "{\\"paths\\": [\\"/dev/input/event13\\"], \\"names\\": [\\"Video Bus\\"], \\"types\\": [], \\"key\\": \\"Video Bus\\"}", "{\\"paths\\": [\\"/dev/input/event14\\", \\"/dev/input/event15\\", \\"/dev/input/event16\\"], \\"names\\": [\\"Intel HID events\\", \\"Intel HID 5 button array\\", \\"Dell WMI hotkeys\\"], \\"types\\": [], \\"key\\": \\"Intel HID events\\"}", "{\\"paths\\": [\\"/dev/input/event5\\", \\"/dev/input/event6\\", \\"/dev/input/event8\\", \\"/dev/input/event9\\"], \\"names\\": [\\"Microsoft Microsoft\\\\u00ae 2.4GHz Transceiver v9.0\\", \\"Microsoft Microsoft\\\\u00ae 2.4GHz Transceiver v9.0 Mouse\\", \\"Microsoft Microsoft\\\\u00ae 2.4GHz Transceiver v9.0 Consumer Control\\", \\"Microsoft Microsoft\\\\u00ae 2.4GHz Transceiver v9.0 System Control\\"], \\"types\\": [\\"keyboard\\", \\"mouse\\"], \\"key\\": \\"Microsoft Microsoft\\\\u00ae 2.4GHz Transceiver v9.0\\"}"]'}
19:01:30.307724 37251 GUI DEBUG groups.py:354: Discovering device paths
19:01:30.308387 37251 GUI DEBUG groups.py:478: Did not find any input device
19:01:30.308553 37251 GUI DEBUG reader_client.py:287: Received 7 devices
19:01:30.308839 37251 GUI DEBUG message_broker.py:76: from reader_client.py:282: Signal=groups: GroupsData(groups={'Sleep Button': [], 'AT Translated Set 2 keyboard': [<DeviceType.KEYBOARD: 'keyboard'>], 'PS/2 Generic Mouse': [], 'DELL08B7:00 044E:120A Mouse': [<DeviceType.MOUSE: 'mouse'>, <DeviceType.TOUCHPAD: 'touchpad'>], 'Video Bus': [], 'Intel HID events': [], 'Microsoft Microsoft® 2.4GHz Transceiver v9.0': [<DeviceType.KEYBOARD: 'keyboard'>, <DeviceType.MOUSE: 'mouse'>]})
19:01:30.308963 37251 GUI DEBUG device_groups.py:102: adding Sleep Button to device selection
19:01:30.309869 37251 GUI DEBUG device_groups.py:102: adding AT Translated Set 2 keyboard to device selection
19:01:30.310354 37251 GUI DEBUG device_groups.py:102: adding PS/2 Generic Mouse to device selection
19:01:30.310623 37251 GUI DEBUG device_groups.py:102: adding DELL08B7:00 044E:120A Mouse to device selection
19:01:30.310938 37251 GUI DEBUG device_groups.py:102: adding Video Bus to device selection
19:01:30.311243 37251 GUI DEBUG device_groups.py:102: adding Intel HID events to device selection
19:01:30.311503 37251 GUI DEBUG device_groups.py:102: adding Microsoft Microsoft® 2.4GHz Transceiver v9.0 to device selection
19:01:30.312125 37251 GUI INFO data_manager.py:297: Loading group "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:30.313433 37251 GUI INFO data_manager.py:315: Loading preset "Side Button to Super R"
19:01:30.313503 37251 GUI INFO preset.py:147: Loading preset from "/home/codygriffin/.config/input-remapper-2/presets/Microsoft Microsoft® 2.4GHz Transceiver v9.0/Side Button to Super R.json"
19:01:30.313981 37251 GUI DEBUG message_broker.py:76: from data_manager.py:100: Signal=group: GroupData(group_key='Microsoft Microsoft® 2.4GHz Transceiver v9.0', presets=('Side Button to Super R',))
19:01:30.314475 37251 GUI DEBUG message_broker.py:76: from data_manager.py:158: Signal=injector_state: InjectorStateMessage(state='UNKNOWN')
19:01:30.314905 37251 GUI DEBUG message_broker.py:76: from data_manager.py:111: Signal=preset: PresetData(name='Side Button to Super R', mappings=[MappingData(input_combination=<InputCombination (<InputConfig (1, 275) BTN_SIDE, None, bad8319a28955b78fa771cc86558627f, at 0x7f1ce2e03090>) at 0x7f1cf495bde0>, target_uinput='keyboard', output_symbol='Super_R', output_type=None, output_code=None, name=None, mapping_type='key_macro', release_combination_keys=True, macro_key_sleep_ms=0, deadzone=0.1, gain=1.0, expo=0.0, rel_rate=60, rel_to_abs_input_cutoff=2, release_timeout=0.05, force_release_timeout=False, message_type=<MessageType.mapping: 'mapping'>)], autoload=True)
19:01:30.315211 37251 GUI DEBUG system_mapping.py:128: Gathering available keycodes
19:01:30.315263 37251 GUI DEBUG system_mapping.py:128: Gathering available keycodes
19:01:30.320753 37251 GUI DEBUG system_mapping.py:114: Writing "/home/codygriffin/.config/input-remapper-2/xmodmap.json"
19:01:30.321194 37251 GUI DEBUG system_mapping.py:128: Gathering available keycodes
19:01:30.326340 37251 GUI DEBUG system_mapping.py:114: Writing "/home/codygriffin/.config/input-remapper-2/xmodmap.json"
19:01:30.335844 37251 GUI DEBUG system_mapping.py:114: Writing "/home/codygriffin/.config/input-remapper-2/xmodmap.json"
19:01:30.339844 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.mapping: <bound method MappingSelectionLabel._on_mapping_changed of <MappingSelectionLabel for Combination (InputConfig BTN_SIDE) as Button SIDE at 0x7f1ce2e20dc0>>
19:01:30.339937 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.combination_update: <bound method MappingSelectionLabel._on_combination_update of <MappingSelectionLabel for Combination (InputConfig BTN_SIDE) as Button SIDE at 0x7f1ce2e20dc0>>
19:01:30.341420 37251 GUI DEBUG message_broker.py:76: from data_manager.py:125: Signal=mapping: {'input_combination': <InputCombination (<InputConfig (1, 275) BTN_SIDE, None, bad8319a28955b78fa771cc86558627f, at 0x7f1ce2e32050>) at 0x7f1ce2e19b30>, 'target_uinput': 'keyboard', 'output_symbol': 'Super_R', 'mapping_type': 'key_macro'}
19:01:30.347196 37251 GUI DEBUG message_broker.py:76: from data_manager.py:136: Signal=selected_event: InputConfig BTN_SIDE
19:01:30.347843 37251 GUI DEBUG message_broker.py:76: from data_manager.py:136: Signal=selected_event: InputConfig BTN_SIDE
19:01:30.348023 37251 GUI DEBUG message_broker.py:76: from controller.py:159: Signal=status_msg: StatusData(ctx_id=5, msg=None, tooltip=None)
19:01:30.348239 37251 GUI DEBUG message_broker.py:76: from controller.py:159: Signal=status_msg: StatusData(ctx_id=5, msg=None, tooltip=None)
19:01:30.402656 37251 GUI DEBUG message_broker.py:76: from input-remapper-gtk:98: Signal=init: Signal: MessageType.init
19:01:30.402948 37251 GUI DEBUG message_broker.py:76: from reader_client.py:282: Signal=groups: GroupsData(groups={'Sleep Button': [], 'AT Translated Set 2 keyboard': [<DeviceType.KEYBOARD: 'keyboard'>], 'PS/2 Generic Mouse': [], 'DELL08B7:00 044E:120A Mouse': [<DeviceType.MOUSE: 'mouse'>, <DeviceType.TOUCHPAD: 'touchpad'>], 'Video Bus': [], 'Intel HID events': [], 'Microsoft Microsoft® 2.4GHz Transceiver v9.0': [<DeviceType.KEYBOARD: 'keyboard'>, <DeviceType.MOUSE: 'mouse'>]})
19:01:30.404298 37251 GUI DEBUG device_groups.py:102: adding Sleep Button to device selection
19:01:30.405010 37251 GUI DEBUG device_groups.py:102: adding AT Translated Set 2 keyboard to device selection
19:01:30.405652 37251 GUI DEBUG device_groups.py:102: adding PS/2 Generic Mouse to device selection
19:01:30.406109 37251 GUI DEBUG device_groups.py:102: adding DELL08B7:00 044E:120A Mouse to device selection
19:01:30.406601 37251 GUI DEBUG device_groups.py:102: adding Video Bus to device selection
19:01:30.406988 37251 GUI DEBUG device_groups.py:102: adding Intel HID events to device selection
19:01:30.407488 37251 GUI DEBUG device_groups.py:102: adding Microsoft Microsoft® 2.4GHz Transceiver v9.0 to device selection
19:01:30.408171 37251 GUI DEBUG controller.py:123: A group is already active
19:01:30.408280 37251 GUI DEBUG message_broker.py:76: from data_manager.py:140: Signal=uinputs: UInputsData(uinputs={'keyboard': {1: [0, ... 700]}, 'gamepad': {1: [304, ... 318], 3: [(0, AbsInfo(value=0, min=-32768, max=32768, fuzz=0, flat=0, resolution=0)), (1, AbsInfo(value=0, min=-32768, max=32768, fuzz=0, flat=0, resolution=0)), (2, AbsInfo(value=0, min=-32768, max=32768, fuzz=0, flat=0, resolution=0)), (3, AbsInfo(value=0, min=-32768, max=32768, fuzz=0, flat=0, resolution=0)), (4, AbsInfo(value=0, min=-32768, max=32768, fuzz=0, flat=0, resolution=0)), (5, AbsInfo(value=0, min=-32768, max=32768, fuzz=0, flat=0, resolution=0)), (16, AbsInfo(value=0, min=-1, max=1, fuzz=0, flat=0, resolution=0)), (17, AbsInfo(value=0, min=-1, max=1, fuzz=0, flat=0, resolution=0))]}, 'mouse': {1: [272, ... 279], 2: [0, ... 12]}, 'keyboard + mouse': {1: [0, ... 279], 2: [0, ... 12]}})
19:01:35.225909 37251 GUI DEBUG message_broker.py:97: adding new Listener for MessageType.injector_state: <bound method Controller.show_injector_result of <inputremapper.gui.controller.Controller object at 0x7f1cf5026450>>
19:01:35.226612 37251 GUI DEBUG message_broker.py:76: from controller.py:720: Signal=status_msg: StatusData(ctx_id=1, msg='Starting injection...', tooltip=None)
19:01:35.229708 37341 service INFO global_config.py:109: Loaded config from "/home/codygriffin/.config/input-remapper-2/config.json"
19:01:35.232918 37341 service INFO daemon.py:449: Request to start injecting for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:35.233278 37341 service DEBUG daemon.py:294: Refreshing because last info is too old
19:01:35.336677 37341 service DEBUG groups.py:354: Discovering device paths
19:01:35.339382 37341 service DEBUG groups.py:391: "Lid Switch" has no useful capabilities
19:01:35.354973 37341 service DEBUG groups.py:402: Found unknown "Sleep Button" at "/dev/input/event2", hash "9cfc19c3c931a9d205fc3fa9d159a97e", key "25_0_3_PNP0C0E"
19:01:35.365886 37341 service DEBUG groups.py:402: Found keyboard "AT Translated Set 2 keyboard" at "/dev/input/event3", hash "650869084d234c8ce49bb632f09ccf3e", key "17_1_1_isa0060"
19:01:35.377609 37341 service DEBUG groups.py:402: Found unknown "PS/2 Generic Mouse" at "/dev/input/event4", hash "cc05ac157e1fcf55b90d8ca3ebecf45b", key "17_2_1_isa0060"
19:01:35.384649 37341 service DEBUG groups.py:402: Found mouse "DELL08B7:00 044E:120A Mouse" at "/dev/input/event10", hash "7eeb9e95fd346c48be428f5acafb2ee7", key "24_1102_4618_i2c-DELL08B7:00"
19:01:35.398609 37341 service DEBUG groups.py:402: Found touchpad "DELL08B7:00 044E:120A Touchpad" at "/dev/input/event11", hash "f10b822f332117af2164479e496db8c7", key "24_1102_4618_i2c-DELL08B7:00"
19:01:35.407541 37341 service DEBUG groups.py:402: Found unknown "DELL08B7:00 044E:120A UNKNOWN" at "/dev/input/event12", hash "a88861a6dc7f87b7b8f2bc26135d75b9", key "24_1102_4618_i2c-DELL08B7:00"
19:01:35.416659 37341 service DEBUG groups.py:402: Found unknown "Video Bus" at "/dev/input/event13", hash "97ce48b026f7f5a939d64ade3b570921", key "25_0_6_LNXVIDEO"
19:01:35.428617 37341 service DEBUG groups.py:402: Found unknown "Intel HID events" at "/dev/input/event14", hash "c8ed72af2ee31e484484ae2a3b993d14", key "25_0_0_-"
19:01:35.444543 37341 service DEBUG groups.py:402: Found unknown "Intel HID 5 button array" at "/dev/input/event15", hash "dcab597aec1817073adc602b83a72484", key "25_0_0_-"
19:01:35.455709 37341 service DEBUG groups.py:402: Found unknown "Dell WMI hotkeys" at "/dev/input/event16", hash "fd987cbd5a7c5f35939b17e7efd938cd", key "25_0_0_-"
19:01:35.470478 37341 service DEBUG groups.py:391: "PC Speaker" has no useful capabilities
19:01:35.487506 37341 service DEBUG groups.py:391: "HDA Intel PCH Headphone Mic" has no useful capabilities
19:01:35.503433 37341 service DEBUG groups.py:391: "HDA Intel PCH HDMI/DP,pcm=3" has no useful capabilities
19:01:35.520498 37341 service DEBUG groups.py:391: "HDA Intel PCH HDMI/DP,pcm=7" has no useful capabilities
19:01:35.534482 37341 service DEBUG groups.py:391: "HDA Intel PCH HDMI/DP,pcm=8" has no useful capabilities
19:01:35.553100 37341 service DEBUG groups.py:402: Found keyboard "Microsoft Microsoft® 2.4GHz Transceiver v9.0" at "/dev/input/event5", hash "b9a834fe04b79cd1332292f13713e9ba", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:35.567641 37341 service DEBUG groups.py:402: Found mouse "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse" at "/dev/input/event6", hash "bad8319a28955b78fa771cc86558627f", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:35.582503 37341 service DEBUG groups.py:391: "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control" has no useful capabilities
19:01:35.595333 37341 service DEBUG groups.py:402: Found keyboard "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control" at "/dev/input/event8", hash "daad6bf06e6ae900986cc2f87ad89260", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:35.612693 37341 service DEBUG groups.py:402: Found unknown "Microsoft Microsoft® 2.4GHz Transceiver v9.0 System Control" at "/dev/input/event9", hash "e6b85aa9509d6f5ff4d3ac8234484a61", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:35.614880 37341 service INFO groups.py:481: Found "Sleep Button", "AT Translated Set 2 keyboard", "PS/2 Generic Mouse", "DELL08B7:00 044E:120A Mouse", "Video Bus", "Intel HID events", "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:35.616454 37341 service DEBUG daemon.py:483: Using keycodes from "/home/codygriffin/.config/input-remapper-2/xmodmap.json"
19:01:35.616921 37341 service DEBUG system_mapping.py:128: Gathering available keycodes
19:01:35.617232 37341 service DEBUG system_mapping.py:128: Gathering available keycodes
19:01:35.617607 37341 service DEBUG system_mapping.py:128: Gathering available keycodes
19:01:35.651294 37341 service DEBUG system_mapping.py:152: Updated keycodes with 214 new ones
19:01:35.651719 37341 service INFO preset.py:147: Loading preset from "/home/codygriffin/.config/input-remapper-2/presets/Microsoft Microsoft® 2.4GHz Transceiver v9.0/Side Button to Super R.json"
19:01:35.653855 37341 service DEBUG global_uinputs.py:132: Creating regular UInputs
19:01:35.654091 37341 service DEBUG global_uinputs.py:80: creating UInput device: "input-remapper keyboard"
19:01:35.989277 37366 service INFO injector.py:394: Starting injecting the preset for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:35.990380 37366 service DEBUG injector.py:298: Grab /dev/input/event6
19:01:36.090815 37341 service DEBUG injector.py:173: Injector state of "Microsoft Microsoft® 2.4GHz Transceiver v9.0", "Side Button to Super R": InjectorState.STARTING
19:01:36.191214 37341 service DEBUG injector.py:173: Injector state of "Microsoft Microsoft® 2.4GHz Transceiver v9.0", "Side Button to Super R": InjectorState.STARTING
19:01:36.292075 37341 service DEBUG injector.py:173: Injector state of "Microsoft Microsoft® 2.4GHz Transceiver v9.0", "Side Button to Super R": InjectorState.STARTING
19:01:36.338081 37366 service DEBUG combination_handler.py:56: {'input_combination': <InputCombination (<InputConfig (1, 275) BTN_SIDE, None, bad8319a28955b78fa771cc86558627f, at 0x7f935f1d5450>) at 0x7f935f1b1f40>, 'target_uinput': 'keyboard'}
19:01:36.338336 37366 service DEBUG mapping_parser.py:133: event-pipeline with entry point: BTN_SIDE (1, 275, 'bad8319a28955b78fa771cc86558627f')
19:01:36.338542 37366 service DEBUG logger.py:77: <CombinationHandler for "<InputCombination (<InputConfig (1, 275) BTN_SIDE, None, bad8319a28955b78fa771cc86558627f, at 0x7f935f179d50>) at 0x7f935f1b10e0>" ((1, 275, 'bad8319a28955b78fa771cc86558627f'),) at 0x7f935f1c6540>
19:01:36.338636 37366 service DEBUG logger.py:77:     <KeyHandler to (1, 126) at 0x7f935f150170>
19:01:36.338740 37366 service DEBUG logger.py:77:         'maps to: KEY_RIGHTMETA (1, 126) on keyboard'
19:01:36.338884 37366 service DEBUG context.py:110: Adding NotifyCallback for (1, 275, 'bad8319a28955b78fa771cc86558627f')
19:01:36.342622 37366 service DEBUG event_reader.py:191: Starting to listen for events from /dev/input/event6, fd 28
19:01:36.393029 37341 service DEBUG injector.py:173: Injector state of "Microsoft Microsoft® 2.4GHz Transceiver v9.0", "Side Button to Super R": InjectorState.RUNNING
19:01:36.394089 37341 service DEBUG injector.py:173: Injector state of "Microsoft Microsoft® 2.4GHz Transceiver v9.0", "Side Button to Super R": InjectorState.RUNNING
19:01:36.394649 37251 GUI DEBUG message_broker.py:76: from data_manager.py:158: Signal=injector_state: InjectorStateMessage(state='RUNNING')
19:01:36.394856 37251 GUI INFO controller.py:661: Group "Microsoft Microsoft® 2.4GHz Transceiver v9.0" is currently mapped
19:01:36.394911 37251 GUI DEBUG message_broker.py:76: from controller.py:720: Signal=status_msg: StatusData(ctx_id=1, msg='Applied preset Side Button to Super R', tooltip=None)
19:01:40.168483 37366 service ERROR event_reader.py:102: fd broke, was the device unplugged?
19:01:40.168874 37366 service DEBUG event_reader.py:108: read loop stopped
19:01:40.169086 37366 service DEBUG key_handler.py:81: resetting key_handler
19:01:40.169352 37366 service INFO event_reader.py:207: read loop for /dev/input/event6 stopped
19:01:45.882723 37341 service INFO daemon.py:400: Request to autoload for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:45.882822 37341 service DEBUG daemon.py:294: Refreshing because last info is too old
19:01:45.983716 37341 service DEBUG groups.py:354: Discovering device paths
19:01:45.984183 37341 service DEBUG groups.py:391: "Lid Switch" has no useful capabilities
19:01:46.001261 37341 service DEBUG groups.py:402: Found unknown "Sleep Button" at "/dev/input/event2", hash "9cfc19c3c931a9d205fc3fa9d159a97e", key "25_0_3_PNP0C0E"
19:01:46.014380 37341 service DEBUG groups.py:402: Found keyboard "AT Translated Set 2 keyboard" at "/dev/input/event3", hash "650869084d234c8ce49bb632f09ccf3e", key "17_1_1_isa0060"
19:01:46.019230 37341 service DEBUG groups.py:402: Found unknown "PS/2 Generic Mouse" at "/dev/input/event4", hash "cc05ac157e1fcf55b90d8ca3ebecf45b", key "17_2_1_isa0060"
19:01:46.029240 37341 service DEBUG groups.py:402: Found mouse "DELL08B7:00 044E:120A Mouse" at "/dev/input/event10", hash "7eeb9e95fd346c48be428f5acafb2ee7", key "24_1102_4618_i2c-DELL08B7:00"
19:01:46.040267 37341 service DEBUG groups.py:402: Found touchpad "DELL08B7:00 044E:120A Touchpad" at "/dev/input/event11", hash "f10b822f332117af2164479e496db8c7", key "24_1102_4618_i2c-DELL08B7:00"
19:01:46.049235 37341 service DEBUG groups.py:402: Found unknown "DELL08B7:00 044E:120A UNKNOWN" at "/dev/input/event12", hash "a88861a6dc7f87b7b8f2bc26135d75b9", key "24_1102_4618_i2c-DELL08B7:00"
19:01:46.057230 37341 service DEBUG groups.py:402: Found unknown "Video Bus" at "/dev/input/event13", hash "97ce48b026f7f5a939d64ade3b570921", key "25_0_6_LNXVIDEO"
19:01:46.065238 37341 service DEBUG groups.py:402: Found unknown "Intel HID events" at "/dev/input/event14", hash "c8ed72af2ee31e484484ae2a3b993d14", key "25_0_0_-"
19:01:46.071239 37341 service DEBUG groups.py:402: Found unknown "Intel HID 5 button array" at "/dev/input/event15", hash "dcab597aec1817073adc602b83a72484", key "25_0_0_-"
19:01:46.080236 37341 service DEBUG groups.py:402: Found unknown "Dell WMI hotkeys" at "/dev/input/event16", hash "fd987cbd5a7c5f35939b17e7efd938cd", key "25_0_0_-"
19:01:46.092211 37341 service DEBUG groups.py:391: "PC Speaker" has no useful capabilities
19:01:46.107139 37341 service DEBUG groups.py:391: "HDA Intel PCH Headphone Mic" has no useful capabilities
19:01:46.122175 37341 service DEBUG groups.py:391: "HDA Intel PCH HDMI/DP,pcm=3" has no useful capabilities
19:01:46.140214 37341 service DEBUG groups.py:391: "HDA Intel PCH HDMI/DP,pcm=7" has no useful capabilities
19:01:46.161177 37341 service DEBUG groups.py:391: "HDA Intel PCH HDMI/DP,pcm=8" has no useful capabilities
19:01:46.179495 37341 service DEBUG groups.py:402: Found keyboard "input-remapper keyboard" at "/dev/input/event22", hash "0df2ed7782e6f7450f53caccd42cf54e", key "3_1_1_input-remapper"
19:01:46.194205 37341 service DEBUG groups.py:402: Found mouse "input-remapper Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse forwarded" at "/dev/input/event23", hash "1207380ac8e61bf322cecce0b7796040", key "3_1118_1957_py-evdev-uinput"
19:01:46.205322 37341 service DEBUG groups.py:402: Found keyboard "Microsoft Microsoft® 2.4GHz Transceiver v9.0" at "/dev/input/event5", hash "b9a834fe04b79cd1332292f13713e9ba", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:46.221195 37341 service DEBUG groups.py:402: Found mouse "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse" at "/dev/input/event6", hash "bad8319a28955b78fa771cc86558627f", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:46.239203 37341 service DEBUG groups.py:391: "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control" has no useful capabilities
19:01:46.256321 37341 service DEBUG groups.py:402: Found keyboard "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control" at "/dev/input/event8", hash "daad6bf06e6ae900986cc2f87ad89260", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:46.275259 37341 service DEBUG groups.py:402: Found unknown "Microsoft Microsoft® 2.4GHz Transceiver v9.0 System Control" at "/dev/input/event9", hash "e6b85aa9509d6f5ff4d3ac8234484a61", key "3_1118_1957_usb-0000:00:14.0-1.2"
19:01:46.275788 37341 service INFO groups.py:481: Found "Sleep Button", "AT Translated Set 2 keyboard", "PS/2 Generic Mouse", "DELL08B7:00 044E:120A Mouse", "Video Bus", "Intel HID events", "input-remapper keyboard", "input-remapper Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse forwarded", "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.275922 37341 service INFO daemon.py:372: Autoloading for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.275987 37341 service INFO daemon.py:449: Request to start injecting for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.276435 37341 service DEBUG daemon.py:483: Using keycodes from "/home/codygriffin/.config/input-remapper-2/xmodmap.json"
19:01:46.277080 37341 service DEBUG system_mapping.py:152: Updated keycodes with 0 new ones
19:01:46.277147 37341 service INFO preset.py:147: Loading preset from "/home/codygriffin/.config/input-remapper-2/presets/Microsoft Microsoft® 2.4GHz Transceiver v9.0/Side Button to Super R.json"
19:01:46.277607 37341 service DEBUG global_uinputs.py:163: Target "keyboard" already exists
19:01:46.280076 37341 service INFO injector.py:188: Stopping injecting keycodes for group "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.280436 37366 service DEBUG injector.py:344: Received close signal
19:01:46.281991 37341 service INFO daemon.py:400: Request to autoload for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.282167 37341 service INFO daemon.py:372: Autoloading for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.282228 37341 service INFO daemon.py:375: Not autoloading the same preset "Side Button to Super R" again for group "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.282251 37607 service INFO injector.py:394: Starting injecting the preset for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.282446 37341 service INFO daemon.py:400: Request to autoload for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.282534 37341 service INFO daemon.py:372: Autoloading for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.282595 37341 service INFO daemon.py:375: Not autoloading the same preset "Side Button to Super R" again for group "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.282803 37341 service INFO daemon.py:400: Request to autoload for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.282897 37341 service INFO daemon.py:372: Autoloading for "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.282967 37341 service INFO daemon.py:375: Not autoloading the same preset "Side Button to Super R" again for group "Microsoft Microsoft® 2.4GHz Transceiver v9.0"
19:01:46.283934 37607 service DEBUG injector.py:298: Grab /dev/input/event6
19:01:46.381151 37366 service DEBUG injector.py:462: Injector coroutines ended
19:01:46.381396 37366 service DEBUG injector.py:471: OSError for ungrab on /dev/input/event6: [Errno 19] No such device
Process Microsoft Microsoft® 2.4GHz Transceiver v9.0:
Traceback (most recent call last):
  File "/usr/lib64/python3.12/site-packages/evdev/device.py", line 125, in __init__
    fd = os.open(dev, os.O_RDWR | os.O_NONBLOCK)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/dev/input/event23'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/python3.12/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/usr/lib/python3.12/site-packages/inputremapper/injection/injector.py", line 414, in run
    forward_devices[device_hash] = self._create_forwarding_device(device)
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/inputremapper/injection/injector.py", line 361, in _create_forwarding_device
    forward_to = evdev.UInput(
                 ^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/site-packages/evdev/uinput.py", line 155, in __init__
    self.device = self._find_device()
                  ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/site-packages/evdev/uinput.py", line 282, in _find_device
    d = device.InputDevice(path)
        ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/site-packages/evdev/device.py", line 127, in __init__
    fd = os.open(dev, os.O_RDONLY | os.O_NONBLOCK)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/dev/input/event23'
19:01:59.284440 37251 GUI DEBUG controller.py:738: Closing Application
19:01:59.284777 37251 GUI DEBUG preset.py:182: Not saving unchanged preset
19:01:59.284958 37251 GUI DEBUG message_broker.py:76: from controller.py:740: Signal=terminate: Signal: MessageType.terminate
19:01:59.285022 37251 GUI DEBUG user_interface.py:375: Closing window
19:01:59.285284 37251 GUI DEBUG reader_client.py:120: Sending "terminate" to ReaderService
19:01:59.285382 37251 GUI DEBUG reader_client.py:185: Stopping recorder.
19:01:59.285431 37251 GUI DEBUG reader_client.py:120: Sending "stop-reading" to ReaderService
19:01:59.285490 37251 GUI DEBUG reader_client.py:194: No recording generator existed
19:01:59.285592 37330 reader-service DEBUG reader_service.py:195: Received command "terminate"
19:01:59.285616 37251 GUI DEBUG message_broker.py:76: from reader_client.py:196: Signal=recording_finished: Signal: MessageType.recording_finished
19:01:59.285669 37330 reader-service DEBUG reader_service.py:199: Terminating
19:01:59.285732 37251 GUI DEBUG controller.py:741: Quitting
19:01:59.296456 37251 GUI DEBUG controller.py:738: Closing Application
19:01:59.297354 37251 GUI DEBUG preset.py:182: Not saving unchanged preset
19:01:59.297524 37251 GUI DEBUG message_broker.py:76: from controller.py:740: Signal=terminate: Signal: MessageType.terminate
19:01:59.297608 37251 GUI DEBUG user_interface.py:375: Closing window
19:01:59.297685 37251 GUI DEBUG reader_client.py:120: Sending "terminate" to ReaderService
19:01:59.297770 37251 GUI DEBUG reader_client.py:185: Stopping recorder.
19:01:59.297829 37251 GUI DEBUG reader_client.py:120: Sending "stop-reading" to ReaderService
19:01:59.297907 37251 GUI DEBUG reader_client.py:194: No recording generator existed
19:01:59.298076 37251 GUI DEBUG message_broker.py:76: from reader_client.py:196: Signal=recording_finished: Signal: MessageType.recording_finished
19:01:59.298199 37251 GUI WARNING utils.py:199: HandlerDisabled entry failed: "nothing connected to <bound method RecordingToggle._on_gtk_toggle of <inputremapper.gui.components.editor.RecordingToggle object at 0x7f1cf4937230>>"
19:01:59.298283 37251 GUI WARNING utils.py:205: HandlerDisabled exit failed: "nothing connected to <bound method RecordingToggle._on_gtk_toggle of <inputremapper.gui.components.editor.RecordingToggle object at 0x7f1cf4937230>>"
19:01:59.298361 37251 GUI DEBUG controller.py:741: Quitting

(input-remapper-gtk:37251): Gtk-CRITICAL **: 19:01:59.298: gtk_main_quit: assertion 'main_loops != NULL' failed

Output of 'sudo evtest' It just hangs on the "Testing... (interrupt to exit)" message. I suspect this is the case given the system effectively thinks my mouse side button is no longer mapped.

thecodygriffin commented 7 months ago

After not finding anyway forward, I decided to abandon input-remapper for an alternative, and ultimately, simpler solution.

Although it is very specific to my hardware, I am hoping it may one day help someone else with similar needs.

Using the following resources (among others), I learned that systemd's udev can easily remap device inputs with simple configuration files placed in /etc/udev/hwdb.d/.

Basically, what you want to do is:

  1. Use evtest to identify your device's input scan code
  2. Create a configuration file remapping that input to a common keyboard input
  3. Place that configuration file in /etc/udev/hwdb.d/
  4. Update the systemd hardware database with sudo systemd-hwdb update
  5. Trigger the configuration with sudo udevadm trigger
  6. Reboot

After that, assuming your configuration file is correct, the device input should then trigger the keyboard input desired.

As an example, here is my configuration file that I am using for my Microsoft Sculpt Ergonomic Mouse.

/etc/udev/hwdb.d/61-keyboard-local.hwdb

evdev:input:b0003v045Ep07A*
 KEYBOARD_KEY_90004=key_leftmeta
 KEYBOARD_KEY_700e7=key_rightmeta

It does not matter how many times that I disconnect and reconnect my laptop from my monitor (for which the RF dongle of the mouse is connected), it works every time.