sezanzeb / input-remapper

๐ŸŽฎ โŒจ An easy to use tool to change the behaviour of your input devices.
GNU General Public License v3.0
3.75k stars 155 forks source link

Remapper stopped working in Ubuntu 22.04 when in Gnome Overview #415

Closed sojusnik closed 6 months ago

sojusnik commented 2 years ago

After updating to Ubuntu 22.04, remapper stopped detecting key presses when in the Gnome Overview or a menu of the task panel is opened (f.i. when you click on the date). Is this a known limitation?

I use a mouse button to invoke the Gnome Overview screen (by simulating a Super_L key press). While it's possible to invoke the Gnome Overview, by pressing the configured mouse button, it's actually not possible to close the overview by pressing this button again, but this was possible on Ubuntu 21.10.

remapper version:
input-remapper 1.4.2 bb2c487380ab2ba4ae5253276957d21dfc5204a3 https://github.com/sezanzeb/input-remapper
python-evdev 1.5.0

Happens on Ubuntu 22.04 on X11 with Gnome 42.1

sudo ls -l /proc/1/exe:
lrwxrwxrwx 1 root root 0 Jun  6 08:07 /proc/1/exe -> /usr/lib/systemd/systemd
content of .json file:
{
    "macros": {},
    "mapping": {
        "1,276,1": [
            "Alt_L + Right",
            "keyboard"
        ],
        "1,275,1": [
            "Alt_L + Left",
            "keyboard"
        ],
        "2,6,1": [
            "Alt_L + Tab",
            "keyboard"
        ],
        "2,6,-1": [
            "Super_L",
            "keyboard"
        ]
    }
}
$ sudo pkill -f input-remapper-service && input-remapper-gtk -d
12:56:55.687565 83529 GUI INFO logger.py:228: input-remapper-gtk 1.4.2 bb2c487380ab2ba4ae5253276957d21dfc5204a3 https://github.com/sezanzeb/input-remapper
12:56:55.687689 83529 GUI INFO logger.py:236: python-evdev 1.5.0
12:56:55.687750 83529 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:56:55.687800 83529 GUI DEBUG input-remapper-gtk:55: Using locale directory: /usr/share/input-remapper/lang
12:56:55.693298 83529 GUI DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-sojusnik/results"
12:56:55.693817 83529 GUI DEBUG pipe.py:62: Creating new pipe for "/tmp/input-remapper-sojusnik/commands"
12:56:55.706571 83529 GUI INFO global_config.py:105: Loaded config from "/home/sojusnik/.config/input-remapper/config.json"
12:56:55.709134 83529 GUI INFO daemon.py:205: Starting the service
12:56:55.709235 83529 GUI DEBUG daemon.py:216: Running `pkexec input-remapper-control --command start-daemon  -d`
12:57:05.076968 83534 Control INFO logger.py:318: Starting logging to "/var/log/input-remapper-control"
12:57:05.077118 83534 Control DEBUG input-remapper-control:232: Call for "['/usr/bin/input-remapper-control', '--command', 'start-daemon', '-d']"
12:57:05.083943 83534 Control DEBUG input-remapper-control:212: Booting finished
12:57:05.085046 83534 Control INFO input-remapper-control:262: Done
12:57:05.286833 83543 Service INFO logger.py:318: Starting logging to "/var/log/input-remapper"
12:57:05.287005 83543 Service DEBUG daemon.py:166: Creating daemon
12:57:05.287256 83543 Service INFO global_config.py:105: Loaded config from "/home/sojusnik/.config/input-remapper/config.json"
12:57:05.287360 83543 Service DEBUG shared_dict.py:57: Starting SharedDict process
12:57:05.289938 83544 Service DEBUG shared_dict.py:63: SharedDict process started
12:57:05.294669 83543 Service DEBUG daemon.py:252: Running daemon
12:57:05.327165 83529 GUI DEBUG daemon.py:235: Telling service about "/home/sojusnik/.config/input-remapper"
12:57:05.329050 83543 Service INFO global_config.py:105: Loaded config from "/home/sojusnik/.config/input-remapper/config.json"
12:57:05.329766 83529 GUI DEBUG user_interface.py:246: Running `pkexec input-remapper-control --command helper  -d`
12:57:13.234745 83548 Control INFO logger.py:318: Starting logging to "/var/log/input-remapper-control"
12:57:13.234875 83548 Control DEBUG input-remapper-control:232: Call for "['/usr/bin/input-remapper-control', '--command', 'helper', '-d']"
12:57:13.241384 83548 Control DEBUG input-remapper-control:212: Booting finished
12:57:13.242139 83548 Control INFO input-remapper-control:262: Done
12:57:13.278968 83529 GUI DEBUG global_uinputs.py:71: creating fake UInput device: 'input-remapper keyboard'
12:57:13.279218 83529 GUI DEBUG global_uinputs.py:71: creating fake UInput device: 'input-remapper gamepad'
12:57:13.279407 83529 GUI DEBUG global_uinputs.py:71: creating fake UInput device: 'input-remapper mouse'
12:57:13.436309 83559 GUI-Helper DEBUG pipe.py:79: Using existing pipe for "/tmp/input-remapper-sojusnik/results"
12:57:13.436544 83559 GUI-Helper DEBUG pipe.py:79: Using existing pipe for "/tmp/input-remapper-sojusnik/commands"
12:57:13.436674 83559 GUI-Helper DEBUG helper.py:110: Sending groups
12:57:13.438786 83559 GUI-Helper DEBUG groups.py:337: Discovering device paths
12:57:13.440062 83559 GUI-Helper DEBUG groups.py:378: Found "5_1133_45890_48:89:e7:34:33:15", "/dev/input/event16", "Keyboard K380 Keyboard", type: keyboard
12:57:13.469495 83529 GUI DEBUG groups.py:337: Discovering device paths
12:57:13.470400 83529 GUI DEBUG groups.py:446: Did not find any input device
12:57:13.471105 83559 GUI-Helper DEBUG groups.py:378: Found "5_1133_45083_48:89:e7:34:33:15", "/dev/input/event15", "M585/M590 Mouse", type: mouse
12:57:13.495204 83559 GUI-Helper DEBUG groups.py:378: Found "5_1133_45083_48:89:e7:34:33:15", "/dev/input/event14", "M585/M590 Keyboard", type: keyboard
12:57:13.755131 83559 GUI-Helper DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event3", "Video Bus", type: unknown
12:57:13.787227 83559 GUI-Helper DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event2", "Video Bus", type: unknown
12:57:13.835472 83559 GUI-Helper INFO groups.py:449: Found "Keyboard K380 Keyboard", "M585/M590 Mouse", "Video Bus"
12:57:13.835698 83559 GUI-Helper DEBUG helper.py:91: Waiting for the first command
12:57:13.839281 83529 GUI DEBUG reader.py:99: Received 3 devices
12:57:13.840065 83529 GUI DEBUG preset.py:379: The newest preset is "Keyboard K380 Keyboard", "tweaked"
12:57:13.840214 83529 GUI DEBUG user_interface.py:600: Selecting device "Keyboard K380 Keyboard"
12:57:13.840332 83529 GUI DEBUG user_interface.py:384: "Keyboard K380 Keyboard" presets: "tweaked"
12:57:13.840661 83529 GUI DEBUG user_interface.py:714: Selecting preset "tweaked"
12:57:13.841295 83529 GUI DEBUG editor.py:322: Disabling the text input
12:57:13.842248 83529 GUI DEBUG editor.py:322: Disabling the text input
12:57:13.843402 83529 GUI INFO preset.py:170: Loading preset from "/home/sojusnik/.config/input-remapper/presets/Keyboard K380 Keyboard/tweaked.json"
12:57:13.843774 83529 GUI DEBUG preset.py:200: <EventCombination (1, 29, 1), (1, 102, 1)> maps to ('Prior', 'keyboard')
12:57:13.843876 83529 GUI DEBUG preset.py:200: <EventCombination (1, 29, 1), (1, 107, 1)> maps to ('Next', 'keyboard')
12:57:13.843937 83529 GUI DEBUG preset.py:200: <EventCombination (1, 29, 1), (1, 104, 1)> maps to ('Home', 'keyboard')
12:57:13.843996 83529 GUI DEBUG preset.py:200: <EventCombination (1, 29, 1), (1, 109, 1)> maps to ('End', 'keyboard')
12:57:13.844341 83529 GUI DEBUG system_mapping.py:91: Gathering available keycodes
12:57:13.844391 83529 GUI DEBUG system_mapping.py:91: Gathering available keycodes
12:57:13.847143 83529 GUI DEBUG system_mapping.py:120: Writing "/home/sojusnik/.config/input-remapper/xmodmap.json"
12:57:13.847809 83529 GUI DEBUG system_mapping.py:91: Gathering available keycodes
12:57:13.861370 83529 GUI DEBUG system_mapping.py:120: Writing "/home/sojusnik/.config/input-remapper/xmodmap.json"
12:57:13.867846 83529 GUI DEBUG system_mapping.py:120: Writing "/home/sojusnik/.config/input-remapper/xmodmap.json"
12:57:13.872117 83529 GUI DEBUG editor.py:337: Enabling the text input
12:57:13.872669 83529 GUI DEBUG editor.py:337: Enabling the text input
12:57:13.873080 83529 GUI DEBUG reader.py:190: Sending start msg to helper for "Keyboard K380 Keyboard"
12:57:13.873191 83529 GUI DEBUG reader.py:206: Clearing reader
12:57:13.873266 83559 GUI-Helper DEBUG helper.py:103: Starting mainloop
12:57:13.873420 83559 GUI-Helper DEBUG helper.py:117: Received command "Keyboard K380 Keyboard"
12:57:13.873504 83559 GUI-Helper DEBUG helper.py:139: No more commands in pipe
12:57:13.873663 83559 GUI-Helper DEBUG helper.py:174: Starting reading keycodes from "Keyboard K380 Keyboard"
12:57:13.977062 83529 GUI DEBUG autocompletion.py:91: get_incomplete_parameter text:  match: None
12:57:21.604397 83529 GUI DEBUG user_interface.py:600: Selecting device "M585/M590 Mouse"
12:57:21.604889 83529 GUI DEBUG user_interface.py:384: "M585/M590 Mouse" presets: "tweaked"
12:57:21.605509 83529 GUI DEBUG user_interface.py:714: Selecting preset "tweaked"
12:57:21.607373 83529 GUI DEBUG editor.py:322: Disabling the text input
12:57:21.607932 83529 GUI DEBUG editor.py:322: Disabling the text input
12:57:21.609070 83529 GUI INFO preset.py:170: Loading preset from "/home/sojusnik/.config/input-remapper/presets/M585/M590 Mouse/tweaked.json"
12:57:21.609458 83529 GUI DEBUG preset.py:200: <EventCombination (1, 276, 1)> maps to ('Alt_L + Right', 'keyboard')
12:57:21.609624 83529 GUI DEBUG preset.py:200: <EventCombination (1, 275, 1)> maps to ('Alt_L + Left', 'keyboard')
12:57:21.609753 83529 GUI DEBUG preset.py:200: <EventCombination (2, 6, 1)> maps to ('Alt_L + Tab', 'keyboard')
12:57:21.609881 83529 GUI DEBUG preset.py:200: <EventCombination (2, 6, -1)> maps to ('Super_L', 'keyboard')
12:57:21.613501 83529 GUI DEBUG editor.py:337: Enabling the text input
12:57:21.614691 83529 GUI DEBUG editor.py:337: Enabling the text input
12:57:21.615247 83529 GUI DEBUG reader.py:190: Sending start msg to helper for "M585/M590 Mouse"
12:57:21.615464 83529 GUI DEBUG reader.py:206: Clearing reader
12:57:21.615520 83559 GUI-Helper DEBUG helper.py:193: Stops reading due to new command
12:57:21.655122 83559 GUI-Helper DEBUG helper.py:117: Received command "M585/M590 Mouse"
12:57:21.655259 83559 GUI-Helper DEBUG helper.py:139: No more commands in pipe
12:57:21.655633 83559 GUI-Helper DEBUG helper.py:174: Starting reading keycodes from "M585/M590 Mouse", "M585/M590 Keyboard"
12:57:21.715363 83529 GUI DEBUG autocompletion.py:91: get_incomplete_parameter text:  match: None
12:57:22.115981 83529 GUI DEBUG parse.py:350: Transformed "Alt_L+Right" to "hold_keys(Alt_L,Right)"
12:57:22.116183 83529 GUI DEBUG parse.py:427: checking the syntax of hold_keys(Alt_L,Right)
12:57:22.116609 83529 GUI DEBUG parse.py:273: calls hold_keys with Alt_L,Right
12:57:22.117102 83529 GUI DEBUG parse.py:330:   string Alt_L
12:57:22.117259 83529 GUI DEBUG parse.py:330:   string Right
12:57:22.117379 83529 GUI DEBUG parse.py:294: add call to hold_keys with ['Alt_L', 'Right'], {}
12:57:22.117859 83529 GUI DEBUG parse.py:350: Transformed "Alt_L+Left" to "hold_keys(Alt_L,Left)"
12:57:22.118076 83529 GUI DEBUG parse.py:427: checking the syntax of hold_keys(Alt_L,Left)
12:57:22.118299 83529 GUI DEBUG parse.py:273: calls hold_keys with Alt_L,Left
12:57:22.118467 83529 GUI DEBUG parse.py:330:   string Alt_L
12:57:22.118659 83529 GUI DEBUG parse.py:330:   string Left
12:57:22.118852 83529 GUI DEBUG parse.py:294: add call to hold_keys with ['Alt_L', 'Left'], {}
12:57:22.119250 83529 GUI DEBUG parse.py:350: Transformed "Alt_L+Tab" to "hold_keys(Alt_L,Tab)"
12:57:22.119395 83529 GUI DEBUG parse.py:427: checking the syntax of hold_keys(Alt_L,Tab)
12:57:22.119558 83529 GUI DEBUG parse.py:273: calls hold_keys with Alt_L,Tab
12:57:22.119698 83529 GUI DEBUG parse.py:330:   string Alt_L
12:57:22.119825 83529 GUI DEBUG parse.py:330:   string Tab
12:57:22.119933 83529 GUI DEBUG parse.py:294: add call to hold_keys with ['Alt_L', 'Tab'], {}
12:57:23.301112 83529 GUI DEBUG reader.py:162: down ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท <InputEvent ['BTN_LEFT', 'BTN_MOUSE'] (272) down>
12:57:23.301285 83529 GUI DEBUG reader.py:182: read result ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท <EventCombination (1, 272, 1)>
12:57:23.301389 83529 GUI DEBUG editor.py:597: Recording toggle is not on
12:57:23.344943 83529 GUI DEBUG user_interface.py:757: Not saving because preset did not change
12:57:23.345062 83529 GUI INFO user_interface.py:540: Applying preset "tweaked" for "M585/M590 Mouse"
12:57:23.346412 83543 Service INFO global_config.py:105: Loaded config from "/home/sojusnik/.config/input-remapper/config.json"
12:57:23.347843 83543 Service INFO daemon.py:420: Request to start injecting for "M585/M590 Mouse"
12:57:23.348187 83543 Service DEBUG daemon.py:265: Refreshing because last info is too old
12:57:23.449854 83543 Service DEBUG groups.py:337: Discovering device paths
12:57:23.452112 83543 Service DEBUG groups.py:378: Found "5_1133_45890_48:89:e7:34:33:15", "/dev/input/event16", "Keyboard K380 Keyboard", type: keyboard
12:57:23.487318 83543 Service DEBUG groups.py:378: Found "5_1133_45083_48:89:e7:34:33:15", "/dev/input/event15", "M585/M590 Mouse", type: mouse
12:57:23.519359 83543 Service DEBUG groups.py:378: Found "5_1133_45083_48:89:e7:34:33:15", "/dev/input/event14", "M585/M590 Keyboard", type: keyboard
12:57:23.755268 83543 Service DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event3", "Video Bus", type: unknown
12:57:23.775186 83543 Service DEBUG groups.py:378: Found "25_0_6_LNXVIDEO", "/dev/input/event2", "Video Bus", type: unknown
12:57:23.823840 83543 Service INFO groups.py:449: Found "Keyboard K380 Keyboard", "M585/M590 Mouse", "Video Bus"
12:57:23.824293 83543 Service INFO preset.py:170: Loading preset from "/home/sojusnik/.config/input-remapper/presets/M585/M590 Mouse/tweaked.json"
12:57:23.824848 83543 Service DEBUG preset.py:200: <EventCombination (1, 276, 1)> maps to ('Alt_L + Right', 'keyboard')
12:57:23.825208 83543 Service DEBUG preset.py:200: <EventCombination (1, 275, 1)> maps to ('Alt_L + Left', 'keyboard')
12:57:23.825495 83543 Service DEBUG preset.py:200: <EventCombination (2, 6, 1)> maps to ('Alt_L + Tab', 'keyboard')
12:57:23.825790 83543 Service DEBUG preset.py:200: <EventCombination (2, 6, -1)> maps to ('Super_L', 'keyboard')
12:57:23.826137 83543 Service DEBUG global_uinputs.py:51: creating UInput device: 'input-remapper keyboard'
12:57:23.931350 83543 Service DEBUG global_uinputs.py:122: Target "keyboard" already exists
12:57:23.931605 83543 Service DEBUG global_uinputs.py:122: Target "keyboard" already exists
12:57:23.931770 83543 Service DEBUG global_uinputs.py:122: Target "keyboard" already exists
12:57:23.932196 83543 Service DEBUG daemon.py:472: Using keycodes from "/home/sojusnik/.config/input-remapper/xmodmap.json"
12:57:23.932389 83543 Service DEBUG system_mapping.py:91: Gathering available keycodes
12:57:23.932588 83543 Service DEBUG system_mapping.py:91: Gathering available keycodes
12:57:23.939061 83543 Service DEBUG system_mapping.py:144: Updated keycodes with 215 new ones
12:57:23.941903 83583 Service INFO injector.py:301: Starting injecting the preset for "M585/M590 Mouse"
12:57:23.943255 83583 Service DEBUG context.py:90: Parsing macros
12:57:23.943848 83583 Service DEBUG parse.py:350: Transformed "Alt_L+Right" to "hold_keys(Alt_L,Right)"
12:57:23.944167 83583 Service DEBUG parse.py:429: preparing macro hold_keys(Alt_L,Right) for later execution
12:57:23.944553 83583 Service DEBUG parse.py:273: calls hold_keys with Alt_L,Right
12:57:23.944931 83583 Service DEBUG parse.py:330:   string Alt_L
12:57:23.945063 83583 Service DEBUG parse.py:330:   string Right
12:57:23.945336 83583 Service DEBUG parse.py:294: add call to hold_keys with ['Alt_L', 'Right'], {}
12:57:23.945536 83529 GUI DEBUG reader.py:147: release ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท <InputEvent ['BTN_LEFT', 'BTN_MOUSE'] (272) up>
12:57:23.945802 83583 Service DEBUG parse.py:350: Transformed "Alt_L+Left" to "hold_keys(Alt_L,Left)"
12:57:23.945941 83583 Service DEBUG parse.py:429: preparing macro hold_keys(Alt_L,Left) for later execution
12:57:23.946104 83583 Service DEBUG parse.py:273: calls hold_keys with Alt_L,Left
12:57:23.946246 83583 Service DEBUG parse.py:330:   string Alt_L
12:57:23.946377 83583 Service DEBUG parse.py:330:   string Left
12:57:23.946620 83583 Service DEBUG parse.py:294: add call to hold_keys with ['Alt_L', 'Left'], {}
12:57:23.946878 83583 Service DEBUG parse.py:350: Transformed "Alt_L+Tab" to "hold_keys(Alt_L,Tab)"
12:57:23.947020 83583 Service DEBUG parse.py:429: preparing macro hold_keys(Alt_L,Tab) for later execution
12:57:23.947178 83583 Service DEBUG parse.py:273: calls hold_keys with Alt_L,Tab
12:57:23.947316 83583 Service DEBUG parse.py:330:   string Alt_L
12:57:23.947419 83583 Service DEBUG parse.py:330:   string Tab
12:57:23.947508 83583 Service DEBUG parse.py:294: add call to hold_keys with ['Alt_L', 'Tab'], {}
12:57:23.948000 83583 Service DEBUG injector.py:198: Grabbing "/dev/input/event15" because of "<EventCombination (1, 276, 1)>"
12:57:23.948231 83583 Service DEBUG injector.py:218: Grab /dev/input/event15
12:57:23.948508 83583 Service DEBUG injector.py:211: No need to grab /dev/input/event14
12:57:24.096071 83583 Service DEBUG numlock.py:66: numlockx not found
12:57:24.096722 83583 Service DEBUG consumer_control.py:86: Starting to listen for events from /dev/input/event15, fd 27
12:57:24.147572 83529 GUI INFO user_interface.py:659: Group "M585/M590 Mouse" is currently mapped
12:57:25.780744 83583 Service DEBUG keycode_mapper.py:541: maps to (125, keyboard) ยทยทยทยทยทยทยท ((2, 6, -1))
12:57:25.834627 83583 Service DEBUG keycode_mapper.py:456: releasing (125, keyboard) ยทยทยทยทยท ((2, 6, 0))
12:57:26.920597 83583 Service DEBUG keycode_mapper.py:541: maps to (125, keyboard) ยทยทยทยทยทยทยท ((2, 6, -1))
12:57:26.988665 83583 Service DEBUG keycode_mapper.py:456: releasing (125, keyboard) ยทยทยทยทยท ((2, 6, 0))
12:57:31.390366 83583 Service DEBUG keycode_mapper.py:551: forwarding ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท ((1, 272, 1))
12:57:31.473239 83583 Service DEBUG keycode_mapper.py:469: forwarding release ยทยทยทยทยทยทยทยทยทยทยทยท ((1, 272, 0))
12:57:35.425618 83583 Service DEBUG keycode_mapper.py:541: maps to (125, keyboard) ยทยทยทยทยทยทยท ((2, 6, -1))
12:57:35.488440 83583 Service DEBUG keycode_mapper.py:456: releasing (125, keyboard) ยทยทยทยทยท ((2, 6, 0))
12:57:36.467912 83583 Service DEBUG keycode_mapper.py:541: maps to (125, keyboard) ยทยทยทยทยทยทยท ((2, 6, -1))
12:57:36.520482 83583 Service DEBUG keycode_mapper.py:456: releasing (125, keyboard) ยทยทยทยทยท ((2, 6, 0))
12:57:37.142828 83583 Service DEBUG keycode_mapper.py:541: maps to (125, keyboard) ยทยทยทยทยทยทยท ((2, 6, -1))
12:57:37.209174 83583 Service DEBUG keycode_mapper.py:456: releasing (125, keyboard) ยทยทยทยทยท ((2, 6, 0))
12:57:38.012864 83583 Service DEBUG keycode_mapper.py:551: forwarding ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท ((1, 272, 1))
12:57:38.087849 83583 Service DEBUG keycode_mapper.py:469: forwarding release ยทยทยทยทยทยทยทยทยทยทยทยท ((1, 272, 0))
12:57:43.540461 83583 Service DEBUG keycode_mapper.py:551: forwarding ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท ((1, 272, 1))
12:57:43.630618 83583 Service DEBUG keycode_mapper.py:469: forwarding release ยทยทยทยทยทยทยทยทยทยทยทยท ((1, 272, 0))
^CTraceback (most recent call last):
  File "/usr/bin/input-remapper-gtk", line 76, in <module>
    Gtk.main()
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 1678, in main
    with register_sigint_fallback(Gtk.main_quit):
  File "/usr/lib/python3.10/contextlib.py", line 142, in __exit__
    next(self.gen)
  File "/usr/lib/python3/dist-packages/gi/_ossighelper.py", line 237, in register_sigint_fallback
    signal.default_int_handler(signal.SIGINT, None)
KeyboardInterrupt
12:57:45.329194 83529 GUI DEBUG user_interface.py:332: Closing window
12:57:45.329938 83529 GUI DEBUG reader.py:197: Sending close msg to helper

(input-remapper-gtk:83529): Gtk-CRITICAL **: 12:57:45.330: gtk_main_quit: assertion 'main_loops != NULL' failed
12:57:45.330242 83559 GUI-Helper DEBUG helper.py:193: Stops reading due to new command
12:57:45.379173 83559 GUI-Helper DEBUG helper.py:117: Received command "terminate"
12:57:45.379306 83559 GUI-Helper DEBUG helper.py:120: Helper terminates
sezanzeb commented 2 years ago

Is this a known limitation?

No

I'm on manjaro with gnome 42.1, and closing the overview works for me. That's weird

sezanzeb commented 2 years ago

I suppose just pressing super_l on your keyboard works fine and the problem is exclusive to input-remapper mappings?

sojusnik commented 2 years ago

I suppose just pressing super_l on your keyboard works fine and the problem is exclusive to input-remapper mappings?

Exactly

sojusnik commented 2 years ago

I think I've found the reason: on my mouse, in addition to scrolling up and down, I'm also able to slide my mouse wheel to the left and right. To invoke the Gnome Overview, I'm using a swipe to the left, but when in the Overview, a swipe to the left switches the workspace to the left (instead of closing the Overview). This seems to be hardcoded since Gnome 42. So this action overrides remapper.

Maybe there's a way that remapper can override such hardcoded actions? Or maybe there's a way to disable those hardcoded actions?

sezanzeb commented 2 years ago

but wouldn't super_l on the keyboard be broken as well then?

maybe there is something broken due to https://github.com/sezanzeb/input-remapper/issues/411. If you map something to wheel directions, then HI_RES events will still reach the environment.

Does it work if super_l is mapped to a regular button?

sojusnik commented 2 years ago

but wouldn't super_l on the keyboard be broken as well then?

Why do you think so? super_l is hardcoded on the keyboard to open the overview (which works), while my mouse wheel swipe to left is mapped to super_l (which isn't working, because a swipe to left also switches to the left workspace in overview).

Does it work if super_l is mapped to a regular button?

I can't test this, because all mouse buttons I have are hardcoded for certain actions, like:

wheel up/down = switch to right/left workspace swipe wheel left/right = switch to right/left workspace left mouse click = focus window right mouse click = focus window middle mouse click = focus window forward button = select next window back button = select previous window

BTW, is it possible to configure remapper to react to a scroll wheel, only when the right mouse button is hold? The idea is to use the scroll wheel to change workspaces, but only when the right mouse button is also pressed and if it's released, then the scroll wheel should work as hardcoded by the OS.

sezanzeb commented 2 years ago

BTW, is it possible to configure remapper to react to a scroll wheel, only when the right mouse button is hold? The idea is to use the scroll wheel to change workspaces, but only when the right mouse button is also pressed and if it's released, then the scroll wheel should work as hardcoded by the OS.

it should be possible to combine right-click with wheel-down, like this:

image

and then you program your macro to do the workspace switch

sojusnik commented 2 years ago

Thanks, that worked!

sojusnik commented 2 years ago

Another observation that might help debugging this issue: when using swipe wheel left on my mouse (triggers Super_L, as described in first post) in a workspace without windows, then Gnome switches to the left workspace, so it behaves the same as in Gnome overview mode. But when I use swipe wheel left over a window on a workspace, then Gnome overview is triggered.

sojusnik commented 6 months ago

With 2.0.1 everything works as expected on Ubuntu 23.10 on Wayland. Awesome work, thanks!