sezanzeb / input-remapper

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

Keyboard key injection not working in latest beta branch #544

Closed jose1711 closed 1 year ago

jose1711 commented 1 year ago

input-remapper-control --version

input-remapper 1.6.0-beta 8c1180822d28856a0ad5fcbc1b2b15d814087d3a https://github.com/sezanzeb/input-remapper
python-evdev 1.6.0

which linux distro (ubuntu 20.04, manjaro, etc.)

Arch Linux x86_64

echo $XDG_SESSION_TYPE

x11

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

gnome

sudo ls -l /proc/1/exe

lrwxrwxrwx 1 root root 0 nov 17 09:36 /proc/1/exe -> /usr/lib/systemd/systemd

paste the affected preset .json file from ~/.config/input-remapper/presets

This maps e to KEY_D:

{
    "1,18,1": {
        "target_uinput": "keyboard",
        "output_symbol": "KEY_D",
        "mapping_type": "key_macro",
        "deadzone": 0.05,
        "gain": 0.23,
        "expo": 0.51
    }
}

sudo pkill -f input-remapper-service && input-remapper-gtk -d, apply the preset and hit your key. Then share that log.

11:29:42.851721 154215 service DEBUG daemon.py:484: Using keycodes from "/home/jose/.config/input-remapper/beta_1.6.0-beta/xmodmap.json"
11:29:42.851784 154215 service DEBUG system_mapping.py:129: Gathering available keycodes
11:29:42.851820 154215 service DEBUG system_mapping.py:129: Gathering available keycodes
11:29:42.851875 154215 service DEBUG system_mapping.py:129: Gathering available keycodes
11:29:42.854721 154215 service DEBUG system_mapping.py:153: Updated keycodes with 214 new ones
11:29:42.854784 154215 service INFO preset.py:147: Loading preset from "/home/jose/.config/input-remapper/beta_1.6.0-beta/presets/ZSA Technology Labs Inc ErgoDox EZ Shine/new preset 2.json"
11:29:42.855206 154215 service DEBUG global_uinputs.py:66: creating UInput device: "input-remapper keyboard"
11:29:42.958019 155001 service INFO injector.py:318: Starting injecting the preset for "ZSA Technology Labs Inc ErgoDox EZ Shine"
11:29:42.958664 155001 service DEBUG combination_handler.py:51: {'event_combination': <EventCombination (1, 18, 1)>, 'target_uinput': 'keyboard'}
11:29:42.959077 155001 service DEBUG mapping_parser.py:135: event-pipeline with entry point: KEY_E (1, 18)
11:29:42.959172 155001 service DEBUG mapping_parser.py:140: CombinationHandler for "E" <139650731786784>:
11:29:42.959213 155001 service DEBUG mapping_parser.py:140:     KeyHandler <139650731786736>:
11:29:42.959563 155001 service DEBUG injector.py:252: Grab /dev/input/event10
11:29:43.059210 154215 service DEBUG injector.py:171: Injector state of "ZSA Technology Labs Inc ErgoDox EZ Shine", "new preset 2": InjectorState.STARTING
11:29:43.157638 155001 service DEBUG event_reader.py:189: Starting to listen for events from /dev/input/event10, fd 23
11:29:43.160073 154215 service DEBUG injector.py:171: Injector state of "ZSA Technology Labs Inc ErgoDox EZ Shine", "new preset 2": InjectorState.RUNNING
11:29:43.160736 154215 service DEBUG injector.py:171: Injector state of "ZSA Technology Labs Inc ErgoDox EZ Shine", "new preset 2": InjectorState.RUNNING
11:29:43.161087 154165 GUI DEBUG message_broker.py:72: from data_manager.py:161: Signal=injector_state: InjectorStateMessage(state='RUNNING')
11:29:43.161252 154165 GUI ERROR controller.py:603: Expected the injection to eventually stop, but got state RUNNING
11:29:43.161397 154165 GUI INFO controller.py:562: Group "ZSA Technology Labs Inc ErgoDox EZ Shine" is currently mapped
11:29:43.161452 154165 GUI DEBUG message_broker.py:72: from controller.py:621: Signal=status_msg: StatusData(ctx_id=1, msg='Applied preset new preset 2', tooltip=None)

sudo evtest while the previous command is running, to see how events are injected. Devices starting with input-remapper ... are of interest. evtest shows two input-remapper devices:

/dev/input/event30: input-remapper keyboard
/dev/input/event31: input-remapper ZSA Technology Labs Inc ErgoDox EZ Shine Keyboard forwarded

None of them produces output.

jose1711 commented 1 year ago

When tested similar setup with up-to-date main, it works as expected.

sezanzeb commented 1 year ago

11:29:43.161252 154165 GUI ERROR controller.py:603: Expected the injection to eventually stop, but got state RUNNING

This sounds odd. I wonder why the injection is supposed to stop

When hitting keys that are not mapped to anything there is also no

20:27:49.307856 10487 service DEBUG event_reader.py:166: forwarding ···················· (1, 34, 0) output I guess?

I should probably add debug-logs that log right away once an event is read

sezanzeb commented 1 year ago

added logs to the log-input-events branch

jose1711 commented 1 year ago

Here is a full log from starting, using recorder to record key e and enabling injection:

$ input-remapper-gtk -d
22:08:58.066040 35991 GUI DEBUG logger.py:297: Using rich.traceback
22:08:58.066098 35991 GUI INFO logger.py:265: input-remapper-gtk 1.6.0-beta adba368d7a48966c2c1e4aa5e1dbf3a08b7d35e8 https://github.com/sezanzeb/input-remapper
22:08:58.066151 35991 GUI INFO logger.py:273: python-evdev 1.6.0
22:08:58.066182 35991 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!
22:08:58.066210 35991 GUI DEBUG input-remapper-gtk:67: Using locale directory: /usr/share/input-remapper/lang
22:08:58.075427 35991 GUI DEBUG pipe.py:71: Creating new pipe for "/tmp/input-remapper-jose/reader-results"
22:08:58.076412 35991 GUI DEBUG pipe.py:71: Creating new pipe for "/tmp/input-remapper-jose/reader-commands"
22:08:58.076885 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.terminate: <function ReaderClient.attach_to_events.<locals>.<lambda> at 0x7fae30905480>
22:08:58.077051 35991 GUI DEBUG reader_service.py:140: Running `pkexec input-remapper-control --command start-reader-service -d`
22:09:02.099088 36006 control DEBUG logger.py:297: Using rich.traceback
22:09:02.099158 36006 control DEBUG input-remapper-control:232: Call for "['/usr/bin/input-remapper-control', '--command', 'start-reader-service', '-d']"
22:09:02.103617 36006 control DEBUG input-remapper-control:214: System is booted
22:09:02.105712 36006 control INFO input-remapper-control:262: Done
22:09:02.131403 35991 GUI INFO daemon.py:234: Starting the service
22:09:02.131472 35991 GUI DEBUG daemon.py:245: Running `pkexec input-remapper-control --command start-daemon  -d`
22:09:02.484691 36094 reader-service DEBUG logger.py:297: Using rich.traceback
22:09:02.551504 36094 reader-service DEBUG data.py:85: Found data at "/usr/share/input-remapper"
22:09:02.559393 36094 reader-service DEBUG pipe.py:88: Using existing pipe for "/tmp/input-remapper-jose/reader-results"
22:09:02.559501 36094 reader-service DEBUG pipe.py:88: Using existing pipe for "/tmp/input-remapper-jose/reader-commands"
22:09:02.559720 36094 reader-service DEBUG reader_service.py:151: Discovering initial groups
22:09:02.559957 36094 reader-service DEBUG groups.py:343: Discovering device paths
22:09:02.594043 36095 control DEBUG logger.py:297: Using rich.traceback
22:09:02.594112 36095 control DEBUG input-remapper-control:232: Call for "['/usr/bin/input-remapper-control', '--command', 'start-daemon', '-d']"
22:09:02.598087 36095 control DEBUG input-remapper-control:214: System is booted
22:09:02.600126 36095 control INFO input-remapper-control:262: Done
22:09:02.823936 35991 GUI DEBUG daemon.py:255: Attempt 1 to reach the service failed:
22:09:02.824035 35991 GUI DEBUG daemon.py:256: "g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name inputremapper.Control was not provided by any .service files (2)"
22:09:02.957296 36104 service DEBUG logger.py:297: Using rich.traceback
22:09:03.024796 35991 GUI DEBUG daemon.py:255: Attempt 2 to reach the service failed:
22:09:03.024870 35991 GUI DEBUG daemon.py:256: "g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name inputremapper.Control was not provided by any .service files (2)"
22:09:03.053808 36104 service DEBUG data.py:85: Found data at "/usr/share/input-remapper"
22:09:03.063698 36104 service DEBUG daemon.py:196: Creating daemon
22:09:03.063856 36104 service INFO global_config.py:110: Loaded config from "/home/jose/.config/input-remapper/beta_1.6.0-beta/config.json"
22:09:03.063908 36104 service DEBUG shared_dict.py:58: Starting SharedDict process
22:09:03.065583 36117 service DEBUG shared_dict.py:64: SharedDict process started
22:09:03.068525 36104 service DEBUG daemon.py:281: Running daemon
22:09:03.226147 35991 GUI DEBUG daemon.py:264: Telling service about "/home/jose/.config/input-remapper/beta_1.6.0-beta"
22:09:03.227137 36104 service INFO global_config.py:110: Loaded config from "/home/jose/.config/input-remapper/beta_1.6.0-beta/config.json"
22:09:03.227377 35991 GUI DEBUG global_uinputs.py:85: creating fake UInput device: "input-remapper keyboard"
22:09:03.227417 35991 GUI DEBUG global_uinputs.py:85: creating fake UInput device: "input-remapper gamepad"
22:09:03.227445 35991 GUI DEBUG global_uinputs.py:85: creating fake UInput device: "input-remapper mouse"
22:09:03.227470 35991 GUI DEBUG global_uinputs.py:85: creating fake UInput device: "input-remapper keyboard + mouse"
22:09:03.227550 35991 GUI INFO global_config.py:110: Loaded config from "/home/jose/.config/input-remapper/beta_1.6.0-beta/config.json"
22:09:03.227595 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.groups: <bound method Controller._on_groups_changed of <inputremapper.gui.controller.Controller object at 0x7fae306a04f0>>
22:09:03.227630 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method Controller._on_preset_changed of <inputremapper.gui.controller.Controller object at 0x7fae306a04f0>>
22:09:03.227656 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.init: <bound method Controller._on_init of <inputremapper.gui.controller.Controller object at 0x7fae306a04f0>>
22:09:03.227682 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method Controller._publish_mapping_errors_as_status_msg of <inputremapper.gui.controller.Controller object at 0x7fae306a04f0>>
22:09:03.227707 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method Controller._publish_mapping_errors_as_status_msg of <inputremapper.gui.controller.Controller object at 0x7fae306a04f0>>
22:09:03.227761 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.terminate: <function UserInterface.__init__.<locals>.<lambda> at 0x7fae3068c280>
22:09:03.271344 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.groups: <bound method DeviceGroupSelection._on_groups_changed of <inputremapper.gui.components.device_groups.DeviceGroupSelection object at 0x7fae306a05b0>>
22:09:03.271410 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.group: <bound method DeviceGroupSelection._on_group_changed of <inputremapper.gui.components.device_groups.DeviceGroupSelection object at 0x7fae306a05b0>>
22:09:03.271454 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.group: <bound method PresetSelection._on_group_changed of <inputremapper.gui.components.presets.PresetSelection object at 0x7fae306a0d30>>
22:09:03.271488 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method PresetSelection._on_preset_changed of <inputremapper.gui.components.presets.PresetSelection object at 0x7fae306a0d30>>
22:09:03.271674 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method MappingListBox._on_preset_changed of <inputremapper.gui.components.editor.MappingListBox object at 0x7fae306a1150>>
22:09:03.271713 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method MappingListBox._on_mapping_changed of <inputremapper.gui.components.editor.MappingListBox object at 0x7fae306a1150>>
22:09:03.271755 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.uinputs: <bound method TargetSelection._on_uinputs_changed of <inputremapper.gui.components.editor.TargetSelection object at 0x7fae306a1240>>
22:09:03.271784 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method TargetSelection._on_mapping_loaded of <inputremapper.gui.components.editor.TargetSelection object at 0x7fae306a1240>>
22:09:03.271823 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.group: <bound method Breadcrumbs._on_group_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7fae306a12a0>>
22:09:03.271851 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method Breadcrumbs._on_preset_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7fae306a12a0>>
22:09:03.271877 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method Breadcrumbs._on_mapping_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7fae306a12a0>>
22:09:03.271981 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.group: <bound method Breadcrumbs._on_group_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7fae306a12d0>>
22:09:03.272016 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method Breadcrumbs._on_preset_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7fae306a12d0>>
22:09:03.272043 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method Breadcrumbs._on_mapping_changed of <inputremapper.gui.components.common.Breadcrumbs object at 0x7fae306a12d0>>
22:09:03.272271 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.do_stack_switch: <bound method Stack._do_stack_switch of <inputremapper.gui.components.main.Stack object at 0x7fae306a1420>>
22:09:03.272331 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.recording_finished: <bound method RecordingToggle._on_recording_finished of <inputremapper.gui.components.editor.RecordingToggle object at 0x7fae306a1480>>
22:09:03.272383 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method RequireActiveMapping._on_preset of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7fae306a14e0>>
22:09:03.272415 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method RequireActiveMapping._on_mapping of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7fae306a14e0>>
22:09:03.272658 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.status_msg: <bound method StatusBar._on_status_update of <inputremapper.gui.components.main.StatusBar object at 0x7fae306a10f0>>
22:09:03.272692 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.init: <bound method StatusBar._on_init of <inputremapper.gui.components.main.StatusBar object at 0x7fae306a10f0>>
22:09:03.272726 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.recording_started: <bound method RecordingStatus._on_recording_started of <inputremapper.gui.components.editor.RecordingStatus object at 0x7fae306a1030>>
22:09:03.272754 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.recording_finished: <bound method RecordingStatus._on_recording_finished of <inputremapper.gui.components.editor.RecordingStatus object at 0x7fae306a1030>>
22:09:03.272904 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method AutoloadSwitch._on_preset_changed of <inputremapper.gui.components.editor.AutoloadSwitch object at 0x7fae306a0ee0>>
22:09:03.272945 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method ReleaseCombinationSwitch._on_mapping_changed of <inputremapper.gui.components.editor.ReleaseCombinationSwitch object at 0x7fae306a0e80>>
22:09:03.272979 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method CombinationListbox._on_mapping_changed of <inputremapper.gui.components.editor.CombinationListbox object at 0x7fae306a05e0>>
22:09:03.273006 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.selected_event: <bound method CombinationListbox._on_event_changed of <inputremapper.gui.components.editor.CombinationListbox object at 0x7fae306a05e0>>
22:09:03.273043 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.selected_event: <bound method AnalogInputSwitch._on_event of <inputremapper.gui.components.editor.AnalogInputSwitch object at 0x7fae306a0b50>>
22:09:03.273383 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.selected_event: <bound method TriggerThresholdInput._on_event of <inputremapper.gui.components.editor.TriggerThresholdInput object at 0x7fae306a0940>>
22:09:03.273669 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method RelativeInputCutoffInput._on_mapping_message of <inputremapper.gui.components.editor.RelativeInputCutoffInput object at 0x7fae306a0b20>>
22:09:03.274157 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method OutputAxisSelector._on_mapping_message of <inputremapper.gui.components.editor.OutputAxisSelector object at 0x7fae306a1510>>
22:09:03.274198 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.uinputs: <bound method OutputAxisSelector._on_uinputs_message of <inputremapper.gui.components.editor.OutputAxisSelector object at 0x7fae306a1510>>
22:09:03.274241 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method KeyAxisStackSwitcher._on_mapping_message of <inputremapper.gui.components.editor.KeyAxisStackSwitcher object at 0x7fae306a1540>>
22:09:03.274286 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method ReleaseTimeoutInput._on_mapping_message of <inputremapper.gui.components.editor.ReleaseTimeoutInput object at 0x7fae306a15a0>>
22:09:03.274411 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method TransformationDrawArea._on_mapping_message of <inputremapper.gui.components.editor.TransformationDrawArea object at 0x7fae306a1750>>
22:09:03.274801 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method Sliders._on_mapping_message of <inputremapper.gui.components.editor.Sliders object at 0x7fae306a17b0>>
22:09:03.274847 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method RequireActiveMapping._on_preset of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7fae306a1900>>
22:09:03.274881 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method RequireActiveMapping._on_mapping of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7fae306a1900>>
22:09:03.274915 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method RequireActiveMapping._on_preset of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7fae306a1960>>
22:09:03.274942 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method RequireActiveMapping._on_mapping of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7fae306a1960>>
22:09:03.274976 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.preset: <bound method RequireActiveMapping._on_preset of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7fae306a19c0>>
22:09:03.275004 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method RequireActiveMapping._on_mapping of <inputremapper.gui.components.editor.RequireActiveMapping object at 0x7fae306a19c0>>
22:09:03.275205 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method CodeEditor._on_mapping_loaded of <inputremapper.gui.components.editor.CodeEditor object at 0x7fae306a1a20>>
22:09:03.275241 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.recording_finished: <bound method CodeEditor._on_recording_finished of <inputremapper.gui.components.editor.CodeEditor object at 0x7fae306a1a20>>
22:09:03.275779 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method Autocompletion._on_mapping_loaded of <autocompletion.Autocompletion object at 0x7fae306c4500 (Autocompletion at 0x564eb9a60780)>>
22:09:03.275820 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.uinputs: <bound method Autocompletion._on_uinputs_changed of <autocompletion.Autocompletion object at 0x7fae306c4500 (Autocompletion at 0x564eb9a60780)>>
22:09:03.275986 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method UserInterface.update_combination_label of <inputremapper.gui.user_interface.UserInterface object at 0x7fae306a0550>>
22:09:03.276024 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.injector_state: <bound method UserInterface.on_injector_state_msg of <inputremapper.gui.user_interface.UserInterface object at 0x7fae306a0550>>
22:09:03.276053 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.user_confirm_request: <bound method UserInterface._on_user_confirm_request of <inputremapper.gui.user_interface.UserInterface object at 0x7fae306a0550>>
22:09:03.298436 35991 GUI DEBUG reader_client.py:145: received {'type': 'status', 'message': 'ready'}
22:09:03.299799 35991 GUI DEBUG message_broker.py:72: from message_broker.py:69: Signal=init: Signal: MessageType.init
22:09:03.300153 35991 GUI DEBUG groups.py:343: Discovering device paths
22:09:03.544049 36094 reader-service DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event11", "ZSA Technology Labs Inc ErgoDox EZ Shine Keyboard", type: DeviceType.KEYBOARD
22:09:03.560701 36094 reader-service DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event10", "ZSA Technology Labs Inc ErgoDox EZ Shine Consumer Control", type: DeviceType.UNKNOWN
22:09:03.593960 36094 reader-service DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event9", "ZSA Technology Labs Inc ErgoDox EZ Shine System Control", type: DeviceType.UNKNOWN
22:09:03.627326 36094 reader-service DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event8", "ZSA Technology Labs Inc ErgoDox EZ Shine", type: DeviceType.KEYBOARD
22:09:03.703958 36094 reader-service DEBUG groups.py:384: Found "3_6780_401_usb-0000:0d:00.3-1", "/dev/input/event5", "Kingsis Peripherals Evoluent VerticalMouse 4", type: DeviceType.MOUSE
22:09:03.747471 36094 reader-service INFO groups.py:462: Found "ZSA Technology Labs Inc ErgoDox EZ Shine", "Kingsis Peripherals Evoluent VerticalMouse 4"
22:09:03.747563 36094 reader-service DEBUG reader_service.py:163: Sending groups
22:09:03.747724 36094 reader-service DEBUG reader_service.py:195: Waiting for commands
22:09:04.077379 35991 GUI DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event11", "ZSA Technology Labs Inc ErgoDox EZ Shine Keyboard", type: DeviceType.KEYBOARD
22:09:04.094003 35991 GUI DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event10", "ZSA Technology Labs Inc ErgoDox EZ Shine Consumer Control", type: DeviceType.UNKNOWN
22:09:04.113953 35991 GUI DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event9", "ZSA Technology Labs Inc ErgoDox EZ Shine System Control", type: DeviceType.UNKNOWN
22:09:04.130652 35991 GUI DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event8", "ZSA Technology Labs Inc ErgoDox EZ Shine", type: DeviceType.KEYBOARD
22:09:04.187278 35991 GUI DEBUG groups.py:384: Found "3_6780_401_usb-0000:0d:00.3-1", "/dev/input/event5", "Kingsis Peripherals Evoluent VerticalMouse 4", type: DeviceType.MOUSE
22:09:04.220943 35991 GUI INFO groups.py:462: Found "ZSA Technology Labs Inc ErgoDox EZ Shine", "Kingsis Peripherals Evoluent VerticalMouse 4"
22:09:04.221354 35991 GUI DEBUG message_broker.py:72: from reader_client.py:273: Signal=groups: GroupsData(groups={'ZSA Technology Labs Inc ErgoDox EZ Shine': [<DeviceType.KEYBOARD: 'keyboard'>], 'Kingsis Peripherals Evoluent VerticalMouse 4': [<DeviceType.MOUSE: 'mouse'>]})
22:09:04.221471 35991 GUI DEBUG device_groups.py:105: adding ZSA Technology Labs Inc ErgoDox EZ Shine to device selection
22:09:04.221937 35991 GUI DEBUG device_groups.py:105: adding Kingsis Peripherals Evoluent VerticalMouse 4 to device selection
22:09:04.222708 35991 GUI INFO data_manager.py:300: Loading group "ZSA Technology Labs Inc ErgoDox EZ Shine"
22:09:04.223528 35991 GUI INFO data_manager.py:318: Loading preset "new preset 2"
22:09:04.223586 35991 GUI INFO preset.py:147: Loading preset from "/home/jose/.config/input-remapper/beta_1.6.0-beta/presets/ZSA Technology Labs Inc ErgoDox EZ Shine/new preset 2.json"
22:09:04.223950 35991 GUI DEBUG message_broker.py:72: from data_manager.py:143: 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]}})
22:09:04.224441 35991 GUI DEBUG message_broker.py:72: from data_manager.py:103: Signal=group: GroupData(group_key='ZSA Technology Labs Inc ErgoDox EZ Shine', presets=('new preset 2', 'new preset'))
22:09:04.224790 35991 GUI DEBUG message_broker.py:72: from data_manager.py:161: Signal=injector_state: InjectorStateMessage(state='UNKNOWN')
22:09:04.224878 35991 GUI DEBUG message_broker.py:72: from data_manager.py:114: Signal=preset: PresetData(name='new preset 2', mappings=[MappingData(event_combination=<EventCombination (1, 30, 1)>, target_uinput='keyboard', output_symbol='KEY_D', output_type=None, output_code=None, name=None, mapping_type='key_macro', release_combination_keys=True, macro_key_sleep_ms=0, deadzone=0.05, gain=0.23, expo=0.51, rel_rate=60, rel_to_abs_input_cutoff=2, release_timeout=0.05, force_release_timeout=False, message_type=<MessageType.mapping: 'mapping'>)], autoload=False)
22:09:04.225120 35991 GUI DEBUG system_mapping.py:129: Gathering available keycodes
22:09:04.226608 35991 GUI DEBUG system_mapping.py:115: Writing "/home/jose/.config/input-remapper/beta_1.6.0-beta/xmodmap.json"
22:09:04.226858 35991 GUI DEBUG system_mapping.py:129: Gathering available keycodes
22:09:04.228176 35991 GUI DEBUG system_mapping.py:115: Writing "/home/jose/.config/input-remapper/beta_1.6.0-beta/xmodmap.json"
22:09:04.231012 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method MappingSelectionLabel._on_mapping_changed of MappingSelectionLabel for a as a>
22:09:04.231073 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.combination_update: <bound method MappingSelectionLabel._on_combination_update of MappingSelectionLabel for a as a>
22:09:04.231257 35991 GUI DEBUG message_broker.py:72: from controller.py:151: Signal=status_msg: StatusData(ctx_id=5, msg=None, tooltip=None)
22:09:04.231324 35991 GUI DEBUG message_broker.py:72: from data_manager.py:128: Signal=mapping: {'event_combination': <EventCombination (1, 30, 1)>, 'target_uinput': 'keyboard', 'output_symbol': 'KEY_D', 'mapping_type': 'key_macro', 'deadzone': 0.05, 'gain': 0.23, 'expo': 0.51}
22:09:04.232972 35991 GUI DEBUG message_broker.py:72: from data_manager.py:139: Signal=selected_event: InputEvent(1, 30, 1)
22:09:04.233160 35991 GUI DEBUG message_broker.py:72: from data_manager.py:139: Signal=selected_event: InputEvent(1, 30, 1)
22:09:04.233234 35991 GUI DEBUG message_broker.py:72: from controller.py:151: Signal=status_msg: StatusData(ctx_id=5, msg=None, tooltip=None)
22:09:04.233543 35991 GUI DEBUG reader_client.py:145: received {'type': 'groups', 'message': '["{\\"paths\\": [\\"/dev/input/event11\\", \\"/dev/input/event10\\", \\"/dev/input/event9\\", \\"/dev/input/event8\\"], \\"names\\": [\\"ZSA Technology Labs Inc ErgoDox EZ Shine Keyboard\\", \\"ZSA Technology Labs Inc ErgoDox EZ Shine Consumer Control\\", \\"ZSA Technology Labs Inc ErgoDox EZ Shine System Control\\", \\"ZSA Technology Labs Inc ErgoDox EZ Shine\\"], \\"types\\": [\\"keyboard\\"], \\"key\\": \\"ZSA Technology Labs Inc ErgoDox EZ Shine\\"}", "{\\"paths\\": [\\"/dev/input/event5\\"], \\"names\\": [\\"Kingsis Peripherals Evoluent VerticalMouse 4\\"], \\"types\\": [\\"mouse\\"], \\"key\\": \\"Kingsis Peripherals Evoluent VerticalMouse 4\\"}"]'}
22:09:04.233644 35991 GUI DEBUG message_broker.py:72: from reader_client.py:273: Signal=groups: GroupsData(groups={'ZSA Technology Labs Inc ErgoDox EZ Shine': [<DeviceType.KEYBOARD: 'keyboard'>], 'Kingsis Peripherals Evoluent VerticalMouse 4': [<DeviceType.MOUSE: 'mouse'>]})
22:09:04.233802 35991 GUI DEBUG device_groups.py:105: adding ZSA Technology Labs Inc ErgoDox EZ Shine to device selection
22:09:04.234001 35991 GUI DEBUG device_groups.py:105: adding Kingsis Peripherals Evoluent VerticalMouse 4 to device selection
22:09:04.234192 35991 GUI DEBUG controller.py:117: A group is already active
22:09:11.531443 35991 GUI DEBUG device_groups.py:69: Selecting device "ZSA Technology Labs Inc ErgoDox EZ Shine"
22:09:11.531548 35991 GUI INFO data_manager.py:300: Loading group "ZSA Technology Labs Inc ErgoDox EZ Shine"
22:09:11.531775 35991 GUI DEBUG message_broker.py:72: from data_manager.py:103: Signal=group: GroupData(group_key='ZSA Technology Labs Inc ErgoDox EZ Shine', presets=('new preset 2', 'new preset'))
22:09:11.533131 35991 GUI DEBUG message_broker.py:72: from data_manager.py:161: Signal=injector_state: InjectorStateMessage(state='UNKNOWN')
22:09:11.533298 35991 GUI INFO data_manager.py:318: Loading preset "new preset 2"
22:09:11.533357 35991 GUI INFO preset.py:147: Loading preset from "/home/jose/.config/input-remapper/beta_1.6.0-beta/presets/ZSA Technology Labs Inc ErgoDox EZ Shine/new preset 2.json"
22:09:11.533738 35991 GUI DEBUG message_broker.py:72: from data_manager.py:114: Signal=preset: PresetData(name='new preset 2', mappings=[MappingData(event_combination=<EventCombination (1, 30, 1)>, target_uinput='keyboard', output_symbol='KEY_D', output_type=None, output_code=None, name=None, mapping_type='key_macro', release_combination_keys=True, macro_key_sleep_ms=0, deadzone=0.05, gain=0.23, expo=0.51, rel_rate=60, rel_to_abs_input_cutoff=2, release_timeout=0.05, force_release_timeout=False, message_type=<MessageType.mapping: 'mapping'>)], autoload=False)
22:09:11.534893 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method MappingSelectionLabel._on_mapping_changed of MappingSelectionLabel for a as a>
22:09:11.534986 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.combination_update: <bound method MappingSelectionLabel._on_combination_update of MappingSelectionLabel for a as a>
22:09:11.535196 35991 GUI DEBUG message_broker.py:72: from controller.py:151: Signal=status_msg: StatusData(ctx_id=5, msg=None, tooltip=None)
22:09:11.535276 35991 GUI DEBUG message_broker.py:72: from data_manager.py:128: Signal=mapping: {'event_combination': <EventCombination (1, 30, 1)>, 'target_uinput': 'keyboard', 'output_symbol': 'KEY_D', 'mapping_type': 'key_macro', 'deadzone': 0.05, 'gain': 0.23, 'expo': 0.51}
22:09:11.536099 35991 GUI DEBUG message_broker.py:72: from data_manager.py:139: Signal=selected_event: InputEvent(1, 30, 1)
22:09:11.536202 35991 GUI DEBUG message_broker.py:72: from data_manager.py:139: Signal=selected_event: InputEvent(1, 30, 1)
22:09:11.536280 35991 GUI DEBUG message_broker.py:72: from controller.py:151: Signal=status_msg: StatusData(ctx_id=5, msg=None, tooltip=None)
22:09:11.536459 35991 GUI DEBUG message_broker.py:72: from device_groups.py:71: Signal=do_stack_switch: DoStackSwitch(page_index=1)
22:09:13.445809 35991 GUI DEBUG presets.py:64: Selecting preset "new preset 2"
22:09:13.445930 35991 GUI INFO data_manager.py:318: Loading preset "new preset 2"
22:09:13.446023 35991 GUI INFO preset.py:147: Loading preset from "/home/jose/.config/input-remapper/beta_1.6.0-beta/presets/ZSA Technology Labs Inc ErgoDox EZ Shine/new preset 2.json"
22:09:13.446672 35991 GUI DEBUG message_broker.py:72: from data_manager.py:114: Signal=preset: PresetData(name='new preset 2', mappings=[MappingData(event_combination=<EventCombination (1, 30, 1)>, target_uinput='keyboard', output_symbol='KEY_D', output_type=None, output_code=None, name=None, mapping_type='key_macro', release_combination_keys=True, macro_key_sleep_ms=0, deadzone=0.05, gain=0.23, expo=0.51, rel_rate=60, rel_to_abs_input_cutoff=2, release_timeout=0.05, force_release_timeout=False, message_type=<MessageType.mapping: 'mapping'>)], autoload=False)
22:09:13.447828 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.mapping: <bound method MappingSelectionLabel._on_mapping_changed of MappingSelectionLabel for a as a>
22:09:13.447906 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.combination_update: <bound method MappingSelectionLabel._on_combination_update of MappingSelectionLabel for a as a>
22:09:13.448100 35991 GUI DEBUG message_broker.py:72: from controller.py:151: Signal=status_msg: StatusData(ctx_id=5, msg=None, tooltip=None)
22:09:13.448175 35991 GUI DEBUG message_broker.py:72: from data_manager.py:128: Signal=mapping: {'event_combination': <EventCombination (1, 30, 1)>, 'target_uinput': 'keyboard', 'output_symbol': 'KEY_D', 'mapping_type': 'key_macro', 'deadzone': 0.05, 'gain': 0.23, 'expo': 0.51}
22:09:13.448997 35991 GUI DEBUG message_broker.py:72: from data_manager.py:139: Signal=selected_event: InputEvent(1, 30, 1)
22:09:13.449093 35991 GUI DEBUG message_broker.py:72: from data_manager.py:139: Signal=selected_event: InputEvent(1, 30, 1)
22:09:13.449164 35991 GUI DEBUG message_broker.py:72: from controller.py:151: Signal=status_msg: StatusData(ctx_id=5, msg=None, tooltip=None)
22:09:13.449334 35991 GUI DEBUG message_broker.py:72: from presets.py:66: Signal=do_stack_switch: DoStackSwitch(page_index=2)
22:09:17.249895 35991 GUI DEBUG controller.py:495: Recording Keys
22:09:17.250038 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.combination_recorded: <bound method Controller._on_combination_recorded of <inputremapper.gui.controller.Controller object at 0x7fae306a04f0>>
22:09:17.250124 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.recording_finished: <function Controller.start_key_recording.<locals>.on_recording_finished at 0x7fae3070c040>
22:09:17.250188 35991 GUI DEBUG reader_client.py:176: Starting recorder.
22:09:17.257554 35991 GUI DEBUG reader_client.py:125: Sending "ZSA Technology Labs Inc ErgoDox EZ Shine" to ReaderService
22:09:17.257677 35991 GUI DEBUG message_broker.py:72: from message_broker.py:69: Signal=recording_started: Signal: MessageType.recording_started
22:09:17.257825 36094 reader-service DEBUG reader_service.py:197: Received command "ZSA Technology Labs Inc ErgoDox EZ Shine"
22:09:17.259149 36094 reader-service DEBUG event_reader.py:191: Starting to listen for events from /dev/input/event11, fd 14
22:09:17.259264 36094 reader-service DEBUG event_reader.py:191: Starting to listen for events from /dev/input/event10, fd 15
22:09:17.259348 36094 reader-service DEBUG event_reader.py:191: Starting to listen for events from /dev/input/event9, fd 16
22:09:17.259416 36094 reader-service DEBUG event_reader.py:191: Starting to listen for events from /dev/input/event8, fd 17
22:09:17.999564 36094 reader-service DEBUG event_reader.py:177: (4, 4, 458760): from ZSA Technology Labs Inc ErgoDox EZ Shine
22:09:17.999658 36094 reader-service DEBUG event_reader.py:177: (1, 18, 1): from ZSA Technology Labs Inc ErgoDox EZ Shine
22:09:17.999718 36094 reader-service DEBUG reader_service.py:372: (1, 18, 1): to frontend:
22:09:17.999812 36094 reader-service DEBUG event_reader.py:177: (0, 0, 0): from ZSA Technology Labs Inc ErgoDox EZ Shine
22:09:18.029826 35991 GUI DEBUG reader_client.py:145: received {'type': 'event', 'message': [1668719357, 999272, 1, 18, 1]}
22:09:18.029975 35991 GUI DEBUG message_broker.py:72: from reader_client.py:241: Signal=combination_recorded: CombinationRecorded(combination=<EventCombination (1, 18, 1)>)
22:09:18.030248 35991 GUI INFO preset.py:185: Saving preset to /home/jose/.config/input-remapper/beta_1.6.0-beta/presets/ZSA Technology Labs Inc ErgoDox EZ Shine/new preset 2.json
22:09:18.030567 35991 GUI DEBUG message_broker.py:72: from data_manager.py:461: Signal=combination_update: CombinationUpdate(old_combination=<EventCombination (1, 30, 1)>, new_combination=<EventCombination (1, 18, 1)>)
22:09:18.030639 35991 GUI DEBUG message_broker.py:72: from data_manager.py:128: Signal=mapping: {'event_combination': <EventCombination (1, 18, 1)>, 'target_uinput': 'keyboard', 'output_symbol': 'KEY_D', 'mapping_type': 'key_macro', 'deadzone': 0.05, 'gain': 0.23, 'expo': 0.51}
22:09:18.031587 35991 GUI DEBUG message_broker.py:72: from controller.py:151: Signal=status_msg: StatusData(ctx_id=5, msg=None, tooltip=None)
22:09:18.031652 35991 GUI DEBUG reader_client.py:145: received {'type': 'event', 'message': [1668719357, 999272, 1, 18, 1]}
22:09:18.095427 36094 reader-service DEBUG event_reader.py:177: (4, 4, 458760): from ZSA Technology Labs Inc ErgoDox EZ Shine
22:09:18.095495 36094 reader-service DEBUG event_reader.py:177: (1, 18, 0): from ZSA Technology Labs Inc ErgoDox EZ Shine
22:09:18.095544 36094 reader-service DEBUG reader_service.py:372: (1, 18, 0): to frontend:
22:09:18.095618 36094 reader-service DEBUG event_reader.py:177: (0, 0, 0): from ZSA Technology Labs Inc ErgoDox EZ Shine
22:09:18.120891 35991 GUI DEBUG reader_client.py:145: received {'type': 'event', 'message': [1668719358, 95275, 1, 18, 0]}
22:09:18.120970 35991 GUI DEBUG reader_client.py:164: Recorder finished.
22:09:18.121021 35991 GUI DEBUG reader_client.py:189: Stopping recorder.
22:09:18.121065 35991 GUI DEBUG reader_client.py:125: Sending "stop-reading" to ReaderService
22:09:18.121173 35991 GUI DEBUG message_broker.py:72: from message_broker.py:69: Signal=recording_finished: Signal: MessageType.recording_finished
22:09:18.121217 36094 reader-service DEBUG reader_service.py:197: Received command "stop-reading"
22:09:18.121380 36094 reader-service DEBUG event_reader.py:107: read loop stopped
22:09:18.121437 36094 reader-service INFO event_reader.py:200: read loop for /dev/input/event11 stopped
22:09:18.150997 35991 GUI DEBUG reader_client.py:145: received {'type': 'event', 'message': [1668719358, 95275, 1, 18, 0]}
22:09:18.151072 35991 GUI ERROR reader_client.py:161: Got event, but recorder is not running.
22:09:18.157300 36094 reader-service DEBUG event_reader.py:107: read loop stopped
22:09:18.157365 36094 reader-service INFO event_reader.py:200: read loop for /dev/input/event10 stopped
22:09:18.173966 36094 reader-service DEBUG event_reader.py:107: read loop stopped
22:09:18.174029 36094 reader-service INFO event_reader.py:200: read loop for /dev/input/event9 stopped
22:09:18.190632 36094 reader-service DEBUG event_reader.py:107: read loop stopped
22:09:18.190694 36094 reader-service INFO event_reader.py:200: read loop for /dev/input/event8 stopped
22:09:23.045930 35991 GUI DEBUG preset.py:182: Not saving unchanged preset
22:09:30.749616 35991 GUI DEBUG preset.py:182: Not saving unchanged preset
22:09:31.174467 35991 GUI DEBUG message_broker.py:93: adding new Listener for MessageType.injector_state: <bound method Controller.show_injector_result of <inputremapper.gui.controller.Controller object at 0x7fae306a04f0>>
22:09:31.174661 35991 GUI DEBUG message_broker.py:72: from controller.py:621: Signal=status_msg: StatusData(ctx_id=1, msg='Spúšťanie injektáže...', tooltip=None)
22:09:31.175554 36104 service INFO global_config.py:110: Loaded config from "/home/jose/.config/input-remapper/beta_1.6.0-beta/config.json"
22:09:31.176173 36104 service INFO daemon.py:450: Request to start injecting for "ZSA Technology Labs Inc ErgoDox EZ Shine"
22:09:31.176238 36104 service DEBUG daemon.py:294: Refreshing because last info is too old
22:09:31.277029 36104 service DEBUG groups.py:343: Discovering device paths
22:09:31.950717 36104 service DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event11", "ZSA Technology Labs Inc ErgoDox EZ Shine Keyboard", type: DeviceType.KEYBOARD
22:09:31.980688 36104 service DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event10", "ZSA Technology Labs Inc ErgoDox EZ Shine Consumer Control", type: DeviceType.UNKNOWN
22:09:31.997298 36104 service DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event9", "ZSA Technology Labs Inc ErgoDox EZ Shine System Control", type: DeviceType.UNKNOWN
22:09:32.017351 36104 service DEBUG groups.py:384: Found "3_12951_18805_usb-0000:0d:00.3-3", "/dev/input/event8", "ZSA Technology Labs Inc ErgoDox EZ Shine", type: DeviceType.KEYBOARD
22:09:32.070638 36104 service DEBUG groups.py:384: Found "3_6780_401_usb-0000:0d:00.3-1", "/dev/input/event5", "Kingsis Peripherals Evoluent VerticalMouse 4", type: DeviceType.MOUSE
22:09:32.107508 36104 service INFO groups.py:462: Found "ZSA Technology Labs Inc ErgoDox EZ Shine", "Kingsis Peripherals Evoluent VerticalMouse 4"
22:09:32.107789 36104 service DEBUG daemon.py:484: Using keycodes from "/home/jose/.config/input-remapper/beta_1.6.0-beta/xmodmap.json"
22:09:32.107868 36104 service DEBUG system_mapping.py:129: Gathering available keycodes
22:09:32.107918 36104 service DEBUG system_mapping.py:129: Gathering available keycodes
22:09:32.107988 36104 service DEBUG system_mapping.py:129: Gathering available keycodes
22:09:32.111561 36104 service DEBUG system_mapping.py:153: Updated keycodes with 214 new ones
22:09:32.111641 36104 service INFO preset.py:147: Loading preset from "/home/jose/.config/input-remapper/beta_1.6.0-beta/presets/ZSA Technology Labs Inc ErgoDox EZ Shine/new preset 2.json"
22:09:32.112173 36104 service DEBUG global_uinputs.py:66: creating UInput device: "input-remapper keyboard"
22:09:32.215256 36207 service INFO injector.py:318: Starting injecting the preset for "ZSA Technology Labs Inc ErgoDox EZ Shine"
22:09:32.215905 36207 service DEBUG combination_handler.py:51: {'event_combination': <EventCombination (1, 18, 1)>, 'target_uinput': 'keyboard'}
22:09:32.216340 36207 service DEBUG mapping_parser.py:135: event-pipeline with entry point: KEY_E (1, 18)
22:09:32.216421 36207 service DEBUG mapping_parser.py:140: CombinationHandler for "E" <140147792233040>:
22:09:32.216456 36207 service DEBUG mapping_parser.py:140:     KeyHandler <140147792232992>:
22:09:32.216822 36207 service DEBUG injector.py:252: Grab /dev/input/event11
22:09:32.316891 36104 service DEBUG injector.py:171: Injector state of "ZSA Technology Labs Inc ErgoDox EZ Shine", "new preset 2": InjectorState.STARTING
22:09:32.403796 36207 service DEBUG event_reader.py:191: Starting to listen for events from /dev/input/event11, fd 23
22:09:32.417053 36104 service DEBUG injector.py:171: Injector state of "ZSA Technology Labs Inc ErgoDox EZ Shine", "new preset 2": InjectorState.RUNNING
22:09:32.417677 36104 service DEBUG injector.py:171: Injector state of "ZSA Technology Labs Inc ErgoDox EZ Shine", "new preset 2": InjectorState.RUNNING
22:09:32.418013 35991 GUI DEBUG message_broker.py:72: from data_manager.py:161: Signal=injector_state: InjectorStateMessage(state='RUNNING')
22:09:32.418215 35991 GUI INFO controller.py:562: Group "ZSA Technology Labs Inc ErgoDox EZ Shine" is currently mapped
22:09:32.418321 35991 GUI DEBUG message_broker.py:72: from controller.py:621: Signal=status_msg: StatusData(ctx_id=1, msg='Použité prednastavenie new preset 2', tooltip=None)

Typing non-mapped keys produces no output in debug log.

It looks like input-remapper is grabbing the incorrect device. There are 4 devices for my keyboard:

sudo evtest 2>&1 | grep Shine
/dev/input/event10: ZSA Technology Labs Inc ErgoDox EZ Shine Consumer Control
/dev/input/event11: ZSA Technology Labs Inc ErgoDox EZ Shine Keyboard
/dev/input/event8:  ZSA Technology Labs Inc ErgoDox EZ Shine
/dev/input/event9:  ZSA Technology Labs Inc ErgoDox EZ Shine System Control

evtest shows nothing when reading event9, event10 or event11. It only shows keys for event8.

sezanzeb commented 1 year ago

Probably related to https://github.com/sezanzeb/input-remapper/issues/435

If you select devices 11 and 8, the required input capabilities (that means, the events that the device is able to emit) are probably appearing multiple times.

A workaround for now might be to grab all devices with the given capability.

I don't know/remember how the mechanism changed in beta compared to main.

sezanzeb commented 1 year ago

The "ranking candidates" logic in https://github.com/sezanzeb/input-remapper/blob/beta/inputremapper/injection/injector.py#L224 might be the reason, I think this is different from main

sezanzeb commented 1 year ago

if needed_devices is populated with all of those that match, not just the highest-ranking, it might work.

jose1711 commented 1 year ago

The "ranking candidates" logic in https://github.com/sezanzeb/input-remapper/blob/beta/inputremapper/injection/injector.py#L224 might be the reason, I think this is different from main

I can confirm this. These are the sorted candidates inside injector.py:

[InputDevice('/dev/input/event6'), InputDevice('/dev/input/event3')]

Devices as seen by OS and their statuses:

/dev/input/event3:  ZSA Technology Labs Inc ErgoDox EZ Shine                      (events generated)
/dev/input/event4:  ZSA Technology Labs Inc ErgoDox EZ Shine System Control       (no events)
/dev/input/event5:  ZSA Technology Labs Inc ErgoDox EZ Shine Consumer Control     (no events)
/dev/input/event6:  ZSA Technology Labs Inc ErgoDox EZ Shine Keyboard             (no events)

injector.py selects the first device, i. e. event6 but since that does not generate any events on key-presses nothing happens. Btw it is interesting that recorder still picks up the correct device.

sezanzeb commented 1 year ago

The recorder records from all of them at the same time

@jonasBoss opinion? I guess we should grab all of them instead of only one. Was there an important reason why this logic was introduced?

sezanzeb commented 1 year ago

Ah, you already explained this here: https://github.com/sezanzeb/input-remapper/issues/435

how about only doing the ranking for non-keyboard devices?

there doesn't seem to be a test for the ranking. I pushed some more logs to log-input-events, which required some changes to the logic and I don't know if that works.

jonasBoss commented 1 year ago

I am currently working on a solution here: #550 it should fix this issue, #435 and #517

jonasBoss commented 1 year ago

550 is ready for testing. I still need to do some code cleanup and bug hunting but the core functionality is there.

If you have old mappings which do not work, you will need to record the input again.

sezanzeb commented 1 year ago

I guess this can be closed, since #550 is merged?