Closed drhayes closed 1 year ago
it looks like the GameBall is being detected as a keyboard and a mouse
yes, many physical devices are reported as various kinds of devices. This especially makes a lot of sense with mmorpg mice, their thumb buttons on the side are usually numpads, which is a feature of keyboards. input-remapper handles those cases and hides that complexity from the user.
is it working for other devices? Like your regular keyboard?
Weird! Nope, sure isn't. I tried to remap the "A" key and it's not picked up either.
Here's the debug output of me doing that:
❯ sudo input-remapper-gtk -d
13:37:07.605203 24302 GUI INFO logger.py:228: input-remapper-gtk 1.4.2 63f58f39271d51b7b9aa9e99eaa62aa8d7cbb09c https://github.com/sezanzeb/input-remapper
13:37:07.605328 24302 GUI INFO logger.py:236: python-evdev 1.3.0
13:37:07.605401 24302 GUI WARNING logger.py:239: 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!
13:37:07.605474 24302 GUI DEBUG input-remapper-gtk:55: Using locale directory: /usr/share/input-remapper/lang
13:37:07.610633 24302 GUI DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-drhayes/results"
13:37:07.611262 24302 GUI DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-drhayes/commands"
13:37:07.629656 24302 GUI INFO global_config.py:105: Loaded config from "/home/drhayes/.config/input-remapper/config.json"
13:37:07.632789 24302 GUI INFO daemon.py:199: Connected to the service
13:37:07.632943 24302 GUI DEBUG daemon.py:235: Telling service about "/home/drhayes/.config/input-remapper"
13:37:07.637476 24302 GUI DEBUG user_interface.py:242: Running `pkexec input-remapper-control --command helper -d`
13:37:07.815522 24307 Control INFO logger.py:292: Starting logging to "/var/log/input-remapper-control"
13:37:07.815678 24307 Control DEBUG input-remapper-control:206: Call for "['/usr/bin/input-remapper-control', '--command', 'helper', '-d']"
13:37:07.822329 24307 Control INFO input-remapper-control:236: Done
13:37:07.856727 24302 GUI DEBUG global_uinputs.py:71: creating fake UInput device: 'input-remapper keyboard'
13:37:07.856819 24302 GUI DEBUG global_uinputs.py:71: creating fake UInput device: 'input-remapper gamepad'
13:37:07.856900 24302 GUI DEBUG global_uinputs.py:71: creating fake UInput device: 'input-remapper mouse'
13:37:07.979257 24302 GUI DEBUG groups.py:337: Discovering device paths
13:37:07.980446 24302 GUI DEBUG groups.py:378: Found "3_1356_2508_usb-0000:39:00.0-1.2.2", "/dev/input/event22", "Sony Interactive Entertainment Wireless Controller", type: gamepad
13:37:08.005836 24313 GUI-Helper DEBUG pipe.py:79: Using existing pipe for "/tmp/input-remapper-root/results"
13:37:08.006036 24313 GUI-Helper DEBUG pipe.py:79: Using existing pipe for "/tmp/input-remapper-root/commands"
13:37:08.007588 24313 GUI-Helper DEBUG groups.py:337: Discovering device paths
13:37:08.021602 24313 GUI-Helper DEBUG groups.py:378: Found "3_1356_2508_usb-0000:39:00.0-1.2.2", "/dev/input/event22", "Sony Interactive Entertainment Wireless Controller", type: gamepad
13:37:08.045130 24302 GUI DEBUG groups.py:378: Found "3_1356_2508_usb-0000:39:00.0-1.2.2", "/dev/input/event20", "Sony Interactive Entertainment Wireless Controller Touchpad", type: touchpad
13:37:08.073218 24302 GUI DEBUG groups.py:378: Found "3_46478_40580_usb-0000:39:00.0-1.2.4.4", "/dev/input/event19", "Blue Microphones Yeti Stereo Microphone Consumer Control", type: unknown
13:37:08.089444 24302 GUI DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event18", "ZSA Technology Labs Inc ErgoDox EZ Glow Keyboard", type: keyboard
13:37:08.117449 24313 GUI-Helper DEBUG groups.py:378: Found "3_1356_2508_usb-0000:39:00.0-1.2.2", "/dev/input/event20", "Sony Interactive Entertainment Wireless Controller Touchpad", type: touchpad
13:37:08.117777 24302 GUI DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event17", "ZSA Technology Labs Inc ErgoDox EZ Glow Consumer Control", type: unknown
13:37:08.137634 24313 GUI-Helper DEBUG groups.py:378: Found "3_46478_40580_usb-0000:39:00.0-1.2.4.4", "/dev/input/event19", "Blue Microphones Yeti Stereo Microphone Consumer Control", type: unknown
13:37:08.137669 24302 GUI DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event16", "ZSA Technology Labs Inc ErgoDox EZ Glow System Control", type: unknown
13:37:08.157643 24313 GUI-Helper DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event18", "ZSA Technology Labs Inc ErgoDox EZ Glow Keyboard", type: keyboard
13:37:08.173656 24313 GUI-Helper DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event17", "ZSA Technology Labs Inc ErgoDox EZ Glow Consumer Control", type: unknown
13:37:08.173656 24302 GUI DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event14", "ZSA Technology Labs Inc ErgoDox EZ Glow", type: keyboard
13:37:08.189284 24313 GUI-Helper DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event16", "ZSA Technology Labs Inc ErgoDox EZ Glow System Control", type: unknown
13:37:08.233891 24313 GUI-Helper DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event14", "ZSA Technology Labs Inc ErgoDox EZ Glow", type: keyboard
13:37:08.234136 24302 GUI DEBUG groups.py:378: Found "3_1922_27_usb-0000:39:00.0-1.2.4.1", "/dev/input/event12", "- GameBall Keyboard", type: keyboard
13:37:08.257314 24302 GUI DEBUG groups.py:378: Found "3_1922_27_usb-0000:39:00.0-1.2.4.1", "/dev/input/event11", "- GameBall", type: mouse
13:37:08.297094 24313 GUI-Helper DEBUG groups.py:378: Found "3_1922_27_usb-0000:39:00.0-1.2.4.1", "/dev/input/event12", "- GameBall Keyboard", type: keyboard
13:37:08.321118 24313 GUI-Helper DEBUG groups.py:378: Found "3_1922_27_usb-0000:39:00.0-1.2.4.1", "/dev/input/event11", "- GameBall", type: mouse
13:37:08.553424 24302 GUI DEBUG groups.py:378: Found "25_4739_0_-", "/dev/input/event4", "ITE8708 CIR transceiver", type: unknown
13:37:08.569325 24302 GUI DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event3", "Video Bus", type: unknown
13:37:08.629344 24302 GUI DEBUG groups.py:378: Found "25_0_3_PNP0C0E", "/dev/input/event0", "Sleep Button", type: unknown
13:37:08.629423 24313 GUI-Helper DEBUG groups.py:378: Found "25_4739_0_-", "/dev/input/event4", "ITE8708 CIR transceiver", type: unknown
13:37:08.631030 24302 GUI INFO groups.py:449: Found "Sony Interactive Entertainment Wireless Controller", "Blue Microphones Yeti Stereo Microphone Consumer Control", "ZSA Technology Labs Inc ErgoDox EZ Glow", "- GameBall", "ITE8708 CIR transceiver", "Video Bus", "Sleep Button"
13:37:08.634096 24302 GUI DEBUG preset.py:379: The newest preset is "- GameBall", "new preset"
13:37:08.634751 24302 GUI DEBUG user_interface.py:590: Selecting device "- GameBall"
13:37:08.635459 24302 GUI DEBUG user_interface.py:380: "- GameBall" presets: "new preset"
13:37:08.636495 24302 GUI DEBUG user_interface.py:704: Selecting preset "new preset"
13:37:08.639101 24302 GUI DEBUG editor.py:322: Disabling the text input
13:37:08.641332 24302 GUI DEBUG editor.py:322: Disabling the text input
13:37:08.643253 24302 GUI INFO preset.py:170: Loading preset from "/home/drhayes/.config/input-remapper/presets/- GameBall/new preset.json"
13:37:08.645134 24302 GUI DEBUG editor.py:322: Disabling the text input
13:37:08.646554 24302 GUI DEBUG editor.py:322: Disabling the text input
13:37:08.649372 24302 GUI DEBUG reader.py:190: Sending start msg to helper for "- GameBall"
13:37:08.650614 24302 GUI DEBUG reader.py:206: Clearing reader
13:37:08.653515 24313 GUI-Helper DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event3", "Video Bus", type: unknown
13:37:08.721043 24313 GUI-Helper DEBUG groups.py:378: Found "25_0_3_PNP0C0E", "/dev/input/event0", "Sleep Button", type: unknown
13:37:08.721511 24313 GUI-Helper INFO groups.py:449: Found "Sony Interactive Entertainment Wireless Controller", "Blue Microphones Yeti Stereo Microphone Consumer Control", "ZSA Technology Labs Inc ErgoDox EZ Glow", "- GameBall", "ITE8708 CIR transceiver", "Video Bus", "Sleep Button"
13:37:12.099835 24302 GUI DEBUG user_interface.py:590: Selecting device "ZSA Technology Labs Inc ErgoDox EZ Glow"
13:37:12.100475 24302 GUI DEBUG user_interface.py:380: "ZSA Technology Labs Inc ErgoDox EZ Glow" presets: "new preset"
13:37:12.101081 24302 GUI DEBUG user_interface.py:704: Selecting preset "new preset"
13:37:12.101795 24302 GUI DEBUG editor.py:322: Disabling the text input
13:37:12.102482 24302 GUI DEBUG editor.py:322: Disabling the text input
13:37:12.103196 24302 GUI INFO preset.py:170: Loading preset from "/home/drhayes/.config/input-remapper/presets/ZSA Technology Labs Inc ErgoDox EZ Glow/new preset.json"
13:37:12.104551 24302 GUI DEBUG editor.py:322: Disabling the text input
13:37:12.105539 24302 GUI DEBUG editor.py:322: Disabling the text input
13:37:12.106766 24302 GUI DEBUG reader.py:190: Sending start msg to helper for "ZSA Technology Labs Inc ErgoDox EZ Glow"
13:37:12.107052 24302 GUI DEBUG reader.py:206: Clearing reader
13:37:15.061069 24302 GUI DEBUG reader.py:206: Clearing reader
13:37:23.374778 24302 GUI DEBUG user_interface.py:328: Closing window
13:37:23.375363 24302 GUI DEBUG reader.py:197: Sending close msg to helper
(input-remapper-gtk:24302): Gtk-CRITICAL **: 13:37:23.387: gtk_tree_model_get_column_type: assertion 'GTK_IS_TREE_MODEL (tree_model)' failed
(input-remapper-gtk:24302): Gtk-CRITICAL **: 13:37:23.388: gtk_combo_box_get_active_id: assertion 'gtk_tree_model_get_column_type (model, column) == G_TYPE_STRING' failed
13:37:23.388479 24302 GUI DEBUG user_interface.py:328: Closing window
13:37:23.389080 24302 GUI DEBUG reader.py:197: Sending close msg to helper
(input-remapper-gtk:24302): Gtk-CRITICAL **: 13:37:23.389: gtk_main_quit: assertion 'main_loops != NULL' failed
I'm on i3, by the way.
When switching devices via the dropdown, do you ever see this log:
20:46:23.753605 2934711 GUI-Helper DEBUG helper.py:105: Received command "USB Optical Mouse"
20:46:23.753742 2934711 GUI-Helper DEBUG helper.py:160: Starting reading keycodes from "USB Optical Mouse"
?
No, I don't see those when I change the drop down.
Try sudo pkill -f input-remapper
and then start the gui again. Maybe for whatever reason a helper process is stuck and continues to read all the commands in the background.
If you didn't already do it, ps aux | grep input-remapper
would be interesting first to check if there is actually a process visible
The pkill
command didn't stop the problem.
Here's the results of the ps
check:
❯ ps aux | grep input-remapper
root 33268 0.7 0.1 188168 31040 pts/0 Sl 13:58 0:00 /usr/bin/python3 /usr/bin/input-remapper-service --hide-info -d
root 33270 0.0 0.1 40312 21664 pts/0 S 13:58 0:00 /usr/bin/python3 /usr/bin/input-remapper-service --hide-info -d
root 33284 0.7 0.1 105236 24408 pts/0 S 13:58 0:00 /usr/bin/python3 /usr/bin/input-remapper-helper -d
drhayes 33852 0.0 0.0 6432 720 pts/0 S+ 13:58 0:00 grep --color=auto input-remapper
(oh, and thank you very much for helping me with this!)
I guess I'll need to add more verbosity to this. But I'm a bit busy
In case you know some python and are interested in debugging this: Maybe the helper is stuck at this call to select
or something: https://github.com/sezanzeb/input-remapper/blob/main/inputremapper/gui/helper.py#L101, or maybe it actually never reaches this point at all
This might be a somewhat difficult problem to figure out unfortunately. Especially if something in the pipe is broken
(oh, and thank you very much for helping me with this!)
You are welcome!
Are tests passing on your machine? Please clone the repo and run python3 tests/test.py unit.test_ipc.TestPipe
. It should say "OK" at the bottom. If not, please share the output of that
No OK, it says:
❯ python3 tests/test.py unit.test_ipc.TestPipe
Traceback (most recent call last):
File "tests/test.py", line 53, in <module>
import tests.test
File "/home/drhayes/src/sezanzeb/input-remapper/tests/__init__.py", line 2, in <module>
import tests.test
File "/home/drhayes/src/sezanzeb/input-remapper/tests/test.py", line 64, in <module>
import psutil
ModuleNotFoundError: No module named 'psutil'
After I installed psutil and stopped my running service I re-ran the tests and got "OK":
❯ python3 tests/test.py unit.test_ipc.TestPipe
10:13:51.741150 998417 test.py DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-drhayes/results"
10:13:51.741700 998417 test.py DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-drhayes/commands"
Cleanup...
10:13:51.813983 998417 test.py DEBUG reader.py:197: Sending close msg to helper
10:13:51.845679 998417 test.py DEBUG shared_dict.py:57: Starting SharedDict process
10:13:51.850031 998417 test.py INFO paths.py:50: Creating file "/tmp/input-remapper-testxf6axhyl/config.json"
10:13:51.851097 998424 test.py DEBUG shared_dict.py:63: SharedDict process started
10:13:51.851700 998417 test.py INFO global_config.py:125: Saved config to /tmp/input-remapper-testxf6axhyl/config.json
10:13:51.852127 998417 test.py DEBUG system_mapping.py:91: Gathering available keycodes
10:13:51.852362 998417 test.py DEBUG system_mapping.py:91: Gathering available keycodes
10:13:51.854357 998417 test.py INFO paths.py:50: Creating file "/tmp/input-remapper-testxf6axhyl/xmodmap.json"
10:13:51.854833 998417 test.py DEBUG system_mapping.py:120: Writing "/tmp/input-remapper-testxf6axhyl/xmodmap.json"
10:13:51.855706 998417 test.py DEBUG system_mapping.py:91: Gathering available keycodes
10:13:51.857019 998417 test.py DEBUG system_mapping.py:120: Writing "/tmp/input-remapper-testxf6axhyl/xmodmap.json"
10:13:51.864242 998417 test.py DEBUG system_mapping.py:120: Writing "/tmp/input-remapper-testxf6axhyl/xmodmap.json"
10:13:51.869903 998417 test.py DEBUG reader.py:206: Clearing reader
10:13:51.870598 998424 test.py DEBUG shared_dict.py:67: SharedDict got ('ping',)
10:13:51.874176 998417 test.py DEBUG groups.py:337: Discovering device paths
10:13:51.875777 998417 test.py DEBUG groups.py:378: Found "1_1_1_usb-0000:03:00.0-0", "/dev/input/event1", "Foo Device", type: keyboard
10:13:51.876226 998417 test.py DEBUG groups.py:378: Found "1_1_1_usb-0000:03:00.0-1", "/dev/input/event11", "Foo Device foo", type: mouse
10:13:51.876784 998417 test.py DEBUG groups.py:378: Found "1_1_1_usb-0000:03:00.0-1", "/dev/input/event10", "Foo Device", type: keyboard
10:13:51.877083 998417 test.py DEBUG groups.py:378: Found "1_1_1_usb-0000:03:00.0-1", "/dev/input/event13", "Foo Device", type: unknown
10:13:51.877561 998417 test.py DEBUG groups.py:378: Found "2_1_2_usb-0000:03:00.0-2", "/dev/input/event20", "Bar Device", type: keyboard
10:13:51.877897 998417 test.py DEBUG groups.py:378: Found "3_1_3_-", "/dev/input/event30", "gamepad", type: gamepad
10:13:51.878390 998417 test.py DEBUG groups.py:378: Found "5_1_5_input-remapper", "/dev/input/event40", "input-remapper Bar Device", type: keyboard
10:13:51.881375 998417 test.py INFO groups.py:449: Found "Foo Device", "Foo Device 2", "Bar Device", "gamepad", "input-remapper Bar Device"
10:13:51.881986 998417 Service DEBUG global_uinputs.py:51: creating UInput device: 'input-remapper keyboard'
10:13:51.882331 998417 Service DEBUG global_uinputs.py:51: creating UInput device: 'input-remapper gamepad'
10:13:51.882558 998417 Service DEBUG global_uinputs.py:51: creating UInput device: 'input-remapper mouse'
Cleanup done
test_pipe_duo (unit.test_ipc.TestPipe) ...
10:13:51.892672 998417 test.py DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-testxf6axhyl/pipe"
10:13:51.892943 998417 test.py DEBUG pipe.py:79: Using existing pipe for "/tmp/input-remapper-testxf6axhyl/pipe"
ok
test_pipe_single (unit.test_ipc.TestPipe) ...
10:13:51.893279 998417 test.py DEBUG pipe.py:79: Using existing pipe for "/tmp/input-remapper-testxf6axhyl/pipe"
ok
----------------------------------------------------------------------
Ran 2 tests in 0.001s
OK
10:13:51.894500 998424 test.py DEBUG shared_dict.py:67: SharedDict got ('stop',)
Thanks. Please try the helper-wont-receive-commands
branch out, it contains more logs and I rearranged things a tiny bit
Okay, so I think I'm running the updated service. I'd already cloned the repo and I ended up running sudo python3 setup.py install
in my local repo on the new branch, then enabling and restarting the service via systemctl
. Let me know if that should do it.
I then ran sudo ./bin/input-remapper-gtk -d
and got this:
❯ sudo ./bin/input-remapper-gtk -d
12:02:06.218030 1047976 GUI INFO logger.py:228: input-remapper-gtk 1.4.2 7ca1a1a4a09be15dc9532fbb9380e598df969635 https://github.com/sezanzeb/input-remapper
12:02:06.218160 1047976 GUI INFO logger.py:236: python-evdev 1.5.0
12:02:06.218223 1047976 GUI WARNING logger.py:239: Debug level will log all your keystrokes! Do not post this output in the internet if you typed in sensitive or private information with your device!
12:02:06.218281 1047976 GUI DEBUG input-remapper-gtk:55: Using locale directory: /usr/share/input-remapper/lang
12:02:06.223892 1047976 GUI DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-drhayes/results"
12:02:06.224404 1047976 GUI DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-drhayes/commands"
12:02:06.240785 1047976 GUI INFO global_config.py:105: Loaded config from "/home/drhayes/.config/input-remapper/config.json"
12:02:06.245784 1047976 GUI INFO daemon.py:199: Connected to the service
12:02:06.245895 1047976 GUI DEBUG daemon.py:235: Telling service about "/home/drhayes/.config/input-remapper"
12:02:06.247387 1047976 GUI DEBUG user_interface.py:242: Running `pkexec input-remapper-control --command helper -d`
12:02:06.426376 1047981 Control INFO logger.py:292: Starting logging to "/var/log/input-remapper-control"
12:02:06.426583 1047981 Control DEBUG input-remapper-control:206: Call for "['/usr/bin/input-remapper-control', '--command', 'helper', '-d']"
12:02:06.436934 1047981 Control INFO input-remapper-control:236: Done
12:02:06.468208 1047976 GUI DEBUG global_uinputs.py:71: creating fake UInput device: 'input-remapper keyboard'
12:02:06.468300 1047976 GUI DEBUG global_uinputs.py:71: creating fake UInput device: 'input-remapper gamepad'
12:02:06.468362 1047976 GUI DEBUG global_uinputs.py:71: creating fake UInput device: 'input-remapper mouse'
12:02:06.616501 1047991 GUI-Helper DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-root/results"
12:02:06.616919 1047991 GUI-Helper DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-root/commands"
12:02:06.617158 1047991 GUI-Helper DEBUG helper.py:100: Sending groups
12:02:06.618810 1047991 GUI-Helper DEBUG groups.py:337: Discovering device paths
12:02:06.619661 1047991 GUI-Helper DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event18", "ZSA Technology Labs Inc ErgoDox EZ Glow Keyboard", type: keyboard
12:02:06.626195 1047976 GUI DEBUG groups.py:337: Discovering device paths
12:02:06.627507 1047976 GUI DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event18", "ZSA Technology Labs Inc ErgoDox EZ Glow Keyboard", type: keyboard
12:02:06.637157 1047991 GUI-Helper DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event17", "ZSA Technology Labs Inc ErgoDox EZ Glow Consumer Control", type: unknown
12:02:06.645538 1047976 GUI DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event17", "ZSA Technology Labs Inc ErgoDox EZ Glow Consumer Control", type: unknown
12:02:06.653178 1047991 GUI-Helper DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event16", "ZSA Technology Labs Inc ErgoDox EZ Glow System Control", type: unknown
12:02:06.677204 1047976 GUI DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event16", "ZSA Technology Labs Inc ErgoDox EZ Glow System Control", type: unknown
12:02:06.681392 1047991 GUI-Helper DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event14", "ZSA Technology Labs Inc ErgoDox EZ Glow", type: keyboard
12:02:06.705277 1047991 GUI-Helper DEBUG groups.py:378: Found "3_1356_2508_usb-0000:39:00.0-1.2.2", "/dev/input/event22", "Sony Interactive Entertainment Wireless Controller", type: gamepad
12:02:06.709328 1047976 GUI DEBUG groups.py:378: Found "3_12951_18806_usb-0000:39:00.0-1.2.4.2", "/dev/input/event14", "ZSA Technology Labs Inc ErgoDox EZ Glow", type: keyboard
12:02:06.737315 1047976 GUI DEBUG groups.py:378: Found "3_1356_2508_usb-0000:39:00.0-1.2.2", "/dev/input/event22", "Sony Interactive Entertainment Wireless Controller", type: gamepad
12:02:06.773308 1047991 GUI-Helper DEBUG groups.py:378: Found "3_1356_2508_usb-0000:39:00.0-1.2.2", "/dev/input/event20", "Sony Interactive Entertainment Wireless Controller Touchpad", type: touchpad
12:02:06.789346 1047991 GUI-Helper DEBUG groups.py:378: Found "3_46478_40580_usb-0000:39:00.0-1.2.4.4", "/dev/input/event19", "Blue Microphones Yeti Stereo Microphone Consumer Control", type: unknown
12:02:06.810717 1047976 GUI DEBUG groups.py:378: Found "3_1356_2508_usb-0000:39:00.0-1.2.2", "/dev/input/event20", "Sony Interactive Entertainment Wireless Controller Touchpad", type: touchpad
12:02:06.842172 1047976 GUI DEBUG groups.py:378: Found "3_46478_40580_usb-0000:39:00.0-1.2.4.4", "/dev/input/event19", "Blue Microphones Yeti Stereo Microphone Consumer Control", type: unknown
12:02:06.885106 1047991 GUI-Helper DEBUG groups.py:378: Found "3_1922_27_usb-0000:39:00.0-1.2.4.1", "/dev/input/event12", "- GameBall Keyboard", type: keyboard
12:02:06.913118 1047991 GUI-Helper DEBUG groups.py:378: Found "3_1922_27_usb-0000:39:00.0-1.2.4.1", "/dev/input/event11", "- GameBall", type: mouse
12:02:06.953294 1047976 GUI DEBUG groups.py:378: Found "3_1922_27_usb-0000:39:00.0-1.2.4.1", "/dev/input/event12", "- GameBall Keyboard", type: keyboard
12:02:06.973359 1047976 GUI DEBUG groups.py:378: Found "3_1922_27_usb-0000:39:00.0-1.2.4.1", "/dev/input/event11", "- GameBall", type: mouse
12:02:07.201298 1047991 GUI-Helper DEBUG groups.py:378: Found "25_4739_0_-", "/dev/input/event4", "ITE8708 CIR transceiver", type: unknown
12:02:07.225280 1047991 GUI-Helper DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event3", "Video Bus", type: unknown
12:02:07.293285 1047976 GUI DEBUG groups.py:378: Found "25_4739_0_-", "/dev/input/event4", "ITE8708 CIR transceiver", type: unknown
12:02:07.297234 1047991 GUI-Helper DEBUG groups.py:378: Found "25_0_3_PNP0C0E", "/dev/input/event0", "Sleep Button", type: unknown
12:02:07.298641 1047991 GUI-Helper INFO groups.py:449: Found "ZSA Technology Labs Inc ErgoDox EZ Glow", "Sony Interactive Entertainment Wireless Controller", "Blue Microphones Yeti Stereo Microphone Consumer Control", "- GameBall", "ITE8708 CIR transceiver", "Video Bus", "Sleep Button"
12:02:07.299543 1047991 GUI-Helper DEBUG helper.py:90: Waiting for commands
12:02:07.317243 1047976 GUI DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event3", "Video Bus", type: unknown
12:02:07.377173 1047976 GUI DEBUG groups.py:378: Found "25_0_3_PNP0C0E", "/dev/input/event0", "Sleep Button", type: unknown
12:02:07.378280 1047976 GUI INFO groups.py:449: Found "ZSA Technology Labs Inc ErgoDox EZ Glow", "Sony Interactive Entertainment Wireless Controller", "Blue Microphones Yeti Stereo Microphone Consumer Control", "- GameBall", "ITE8708 CIR transceiver", "Video Bus", "Sleep Button"
12:02:07.380654 1047976 GUI DEBUG preset.py:379: The newest preset is "- GameBall", "new preset"
12:02:07.381048 1047976 GUI DEBUG user_interface.py:590: Selecting device "- GameBall"
12:02:07.381415 1047976 GUI DEBUG user_interface.py:380: "- GameBall" presets: "new preset"
12:02:07.382054 1047976 GUI DEBUG user_interface.py:704: Selecting preset "new preset"
12:02:07.383728 1047976 GUI DEBUG editor.py:322: Disabling the text input
12:02:07.385645 1047976 GUI DEBUG editor.py:322: Disabling the text input
12:02:07.387981 1047976 GUI INFO preset.py:170: Loading preset from "/home/drhayes/.config/input-remapper/presets/- GameBall/new preset.json"
12:02:07.394688 1047976 GUI DEBUG editor.py:322: Disabling the text input
12:02:07.395713 1047976 GUI DEBUG editor.py:322: Disabling the text input
12:02:07.397410 1047976 GUI DEBUG reader.py:190: Sending start msg to helper for "- GameBall"
12:02:07.397817 1047976 GUI DEBUG reader.py:206: Clearing reader
12:02:14.008915 1047976 GUI DEBUG reader.py:206: Clearing reader
12:02:27.756348 1047976 GUI DEBUG user_interface.py:328: Closing window
12:02:27.757133 1047976 GUI DEBUG reader.py:197: Sending close msg to helper
(input-remapper-gtk:1047976): Gtk-CRITICAL **: 12:02:27.768: gtk_tree_model_get_column_type: assertion 'GTK_IS_TREE_MODEL (tree_model)' failed
(input-remapper-gtk:1047976): Gtk-CRITICAL **: 12:02:27.768: gtk_combo_box_get_active_id: assertion 'gtk_tree_model_get_column_type (model, column) == G_TYPE_STRING' failed
12:02:27.768369 1047976 GUI DEBUG user_interface.py:328: Closing window
12:02:27.768736 1047976 GUI DEBUG reader.py:197: Sending close msg to helper
(input-remapper-gtk:1047976): Gtk-CRITICAL **: 12:02:27.768: gtk_main_quit: assertion 'main_loops != NULL' failed
Exception ignored in: <function BaseEventLoop.__del__ at 0x7fef8eb8b5e0>
Traceback (most recent call last):
File "/usr/lib/python3.8/asyncio/base_events.py", line 656, in __del__
self.close()
File "/usr/lib/python3.8/asyncio/unix_events.py", line 58, in close
super().close()
File "/usr/lib/python3.8/asyncio/selector_events.py", line 92, in close
self._close_self_pipe()
File "/usr/lib/python3.8/asyncio/selector_events.py", line 99, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
File "/usr/lib/python3.8/asyncio/selector_events.py", line 276, in _remove_reader
key = self._selector.get_key(fd)
File "/usr/lib/python3.8/selectors.py", line 190, in get_key
return mapping[fileobj]
File "/usr/lib/python3.8/selectors.py", line 71, in __getitem__
fd = self._selector._fileobj_lookup(fileobj)
File "/usr/lib/python3.8/selectors.py", line 225, in _fileobj_lookup
return _fileobj_to_fd(fileobj)
File "/usr/lib/python3.8/selectors.py", line 42, in _fileobj_to_fd
raise ValueError("Invalid file descriptor: {}".format(fd))
ValueError: Invalid file descriptor: -1
⏎
Looks like bad news -- after "Waiting for commands" I don't see the other new log messages.
Here's relevant syslog:
Mar 30 12:01:27 glop systemd[1]: Starting Service to inject keycodes without the GUI application...
Mar 30 12:01:27 glop input-remapper-service[1047627]: Starting logging to "/var/log/input-remapper"
Mar 30 12:01:27 glop input-remapper-service[1047627]: input-remapper-service 1.4.2 7ca1a1a4a09be15dc9532fbb9380e598df969635 https://github.com/sezanzeb/input-remapper
Mar 30 12:01:27 glop input-remapper-service[1047627]: python-evdev 1.5.0
Mar 30 12:01:27 glop systemd[1]: Started Service to inject keycodes without the GUI application.
Mar 30 12:01:56 glop input-remapper-service[1047627]: Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Mar 30 12:02:06 glop input-remapper-service[1047627]: Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Here's the entire contents of /var/log/input-remapper
:
Starting logging to "/var/log/input-remapper"
input-remapper-service 1.4.2 63f58f39271d51b7b9aa9e99eaa62aa8d7cbb09c https://github.com/sezanzeb/input-remapper
python-evdev 1.3.0
Starting logging to "/var/log/input-remapper"
input-remapper-service 1.4.2 63f58f39271d51b7b9aa9e99eaa62aa8d7cbb09c https://github.com/sezanzeb/input-remapper
python-evdev 1.3.0
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Starting logging to "/var/log/input-remapper"
input-remapper-service 1.4.2 63f58f39271d51b7b9aa9e99eaa62aa8d7cbb09c https://github.com/sezanzeb/input-remapper
python-evdev 1.3.0
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
13:58:08.542906 [38;5;84m33268 Service [0m[38;5;51mINFO logger.py:292: Starting logging to "/var/log/input-remapper"[0m
13:58:08.543021 [38;5;84m33268 Service [0m[38;5;39mDEBUG daemon.py:166: Creating daemon[0m
13:58:08.543111 [38;5;84m33268 Service [0m[38;5;147mDEBUG shared_dict.py:57: Starting SharedDict process[0m
13:58:08.545166 [38;5;77m33270 Service [0m[38;5;147mDEBUG shared_dict.py:63: SharedDict process started[0m
13:58:08.549711 [38;5;84m33268 Service [0m[38;5;39mDEBUG daemon.py:252: Running daemon[0m
13:58:08.592741 [38;5;84m33268 Service [0m[38;5;218mINFO global_config.py:105: Loaded config from "/home/drhayes/.config/input-remapper/config.json"[0m
10:37:58.160093 [38;5;84m33268 Service [0m[38;5;218mINFO global_config.py:105: Loaded config from "/home/drhayes/.config/input-remapper/config.json"[0m
10:38:10.641421 [38;5;84m33268 Service [0m[38;5;218mINFO global_config.py:105: Loaded config from "/home/drhayes/.config/input-remapper/config.json"[0m
Starting logging to "/var/log/input-remapper"
input-remapper-service 1.4.2 63f58f39271d51b7b9aa9e99eaa62aa8d7cbb09c https://github.com/sezanzeb/input-remapper
python-evdev 1.5.0
[38;5;9mERROR[0m: Is the service already running? (name already exists on the bus)
Stopping all injections
Starting logging to "/var/log/input-remapper"
input-remapper-service 1.4.2 7ca1a1a4a09be15dc9532fbb9380e598df969635 https://github.com/sezanzeb/input-remapper
python-evdev 1.5.0
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
Loaded config from "/home/drhayes/.config/input-remapper/config.json"
I wasn't sure what was relevant, but the whole thing was short so there ya go.
I wasn't aware I had a config for it in ~/.config/input-remapper
but here's that:
{
"version": "1.4.2",
"autoload": {},
"macros": {
"keystroke_sleep_ms": 10
},
"gamepad": {
"joystick": {
"non_linearity": 4,
"pointer_speed": 80,
"left_purpose": "none",
"right_purpose": "none",
"x_scroll_speed": 2,
"y_scroll_speed": 0.5
}
}
}
There are presets, but they're empty of mappings.
Whew! Let me know if you need anything else, and no rush -- this is totally convenience for me on a temporary system while I get some home computer and work computer stuff straightened out.
Pushed some more stuff, I experimentally replaced the call to select.select
with a loop that keeps checking if a command is available. Please try that out
To verify if you installed changes correctly the first line displays the commit hash. For the newest commit it will be f8692afe042a60464f6867b15453e6d6d46006e4
So the good/bad news is that I got my new system and it works -- a little unexpectedly, but it works. I have to type in BTN_MIDDLE
in the text field underneath where I click the "Change Key" button, and change the dropdown to "mouse", but it's working for me on the new system just great!
I'll plug in the old system later today and report back from the latest change.
please print the permissions of the files in /tmp/input-remapper-*/
for the broken system
This computer completely crashed and the new system does not have this problem. Sorry I lost the repro environment for this bug! You can probably close it.
EDIT: moved to https://github.com/sezanzeb/input-remapper/issues/403
In your case the helper receives commands, this is a different issue. I moved this to https://github.com/sezanzeb/input-remapper/issues/403
Howdy. I've used this when it was named key-mapper to remap the mouse buttons on this trackball before, but I'm on a new system now and no dice.
I'm using one of these: https://www.gamingtrackball.com
When I start
input-remapper-gtk
, the GameBall has a mouse icon next to it but the drop-down to select what I'm mapping is grayed out and only shows "keyboard":Clicking the "Change Key" button doesn't enable that button. Clicking mouse buttons in the text field doesn't detect them or let me remap them.
Here's the output of
sudo input-remapper-gtk -d
:I'm no expert, but it looks like the GameBall is being detected as a keyboard and a mouse? Don't know if that's the issue, but I'm suspicious.
I saw in another issue that you recommended someone try
sudo rm /tmp/input-remapper* -r
. I was just cargo culting, though; it didn't work for me.Let me know how I can help!