bbidulock / icewm

A window manager designed for speed, usability, and consistency
Other
577 stars 98 forks source link

Alt+Tab needs "enter" or mouse click to select the window #621

Closed Poldo333 closed 2 years ago

Poldo333 commented 2 years ago

Good morning,

I am on Debian Testing. Daily updated system. IceWM 2.8.0 Since last update, when I use Alt+Tab to switch between open windows, I need to press "enter" to select the window, or I need to click on the chosen window.

I am not sure this is a bug and not an issue in my configuration, but I do not remember of any recent change in my config...

Thanks for your help

gijsbers commented 2 years ago

Works fine here on a new Debian bookworm VM with 2.8.0. No "enter" needed.

gijsbers commented 2 years ago

You could use xev and test if your Alt+Tab keys always generate both a press down event and a release up event. If you are more adventurous, then you could turn on icewm event logging and see if the release up events are there too, but you may need to recompile with --enable-logevents. See the icewm man page.

gijsbers commented 2 years ago

Show us the output of icewm -p | grep KeySysSwitch

Poldo333 commented 2 years ago

On Tue, 23 Nov 2021 13:21:24 -0800 gijsbers @.***> wrote:

Show us the output of icewm -p | grep KeySysSwitch

-- You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub: https://github.com/bbidulock/icewm/issues/621#issuecomment-977178708

Hello, thanks for the help.

I tried to install icewm on another computer, and there is no issue with Alt+Tab. Probably an issue with my config, although I did not touch it since long time?

I tried xev, and here is the output when I press Alt+Tab:

KeyPress event, serial 38, synthetic NO, window 0x2a00001, root 0x111, subw 0x0, time 2299971059, (63,106), root:(63,106), state 0x0, keycode 64 (keysym 0xffe7, Meta_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False

FocusOut event, serial 38, synthetic NO, window 0x2a00001, mode NotifyGrab, detail NotifyAncestor

LeaveNotify event, serial 38, synthetic NO, window 0x2a00001, root 0x111, subw 0x0, time 2299971203, (63,106), root:(63,106), mode NotifyGrab, detail NotifyNonlinear, same_screen YES, focus YES, state 8

PropertyNotify event, serial 38, synthetic NO, window 0x2a00001, atom 0x155 (_NET_WM_STATE), time 2299971204, state PropertyNewValue

FocusOut event, serial 38, synthetic NO, window 0x2a00001, mode NotifyWhileGrabbed, detail NotifyNonlinear

And here the output of icewm -p | grep KeySysSwitch:

KeySysSwitchNext="Alt+Tab" KeySysSwitchLast="Alt+Shift+Tab" KeySysSwitchClass="Alt+grave" IceWM: A window manager is already running, use --replace to replace it

I also tried to reset the config file of icewm renaming the folder, relogging, but the issue is still there.

Thanks Regards

gijsbers commented 2 years ago

Did you read issue #574?

If I press and release the Alt key I get this in xev:

KeyPress event, serial 38, synthetic NO, window 0x1400001, root 0x177, subw 0x0, time 58524871, (58,70), root:(1671,986), state 0x0, keycode 108 (keysym 0xffea, Alt_R), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x1400001, root 0x177, subw 0x0, time 58524911, (58,70), root:(1671,986), state 0x8, keycode 108 (keysym 0xffea, Alt_R), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False

If I press and release the Tab key I get this in xev:

KeyPress event, serial 38, synthetic NO, window 0x1400001, root 0x177, subw 0x0, time 58526383, (58,70), root:(1671,986), state 0x0, keycode 23 (keysym 0xff09, Tab), same_screen YES, XLookupString gives 1 bytes: (09) " " XmbLookupString gives 1 bytes: (09) " " XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x1400001, root 0x177, subw 0x0, time 58526439, (58,70), root:(1671,986), state 0x0, keycode 23 (keysym 0xff09, Tab), same_screen YES, XLookupString gives 1 bytes: (09) " " XFilterEvent returns: False

You can't get that?

Poldo333 commented 2 years ago

Hi, I did read issue #574 .

Changing KeySysSwitchNext="Alt+Tab" to KeySysSwitchNext="Super+Tab" it is working correctly and ModSuperIsCtrlAlt=0. AFAIK this keyboard works properly on other systems.

Pressing and releasing "Tab" in xev:

KeyPress event, serial 38, synthetic NO, window 0x2400001,
root 0x111, subw 0x0, time 2342097310, (280,482), root:(280,482),
state 0x10, keycode 23 (keysym 0xff09, Tab), same_screen YES,
XLookupString gives 1 bytes: (09) " "
XmbLookupString gives 1 bytes: (09) "       "
XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x2400001,
root 0x111, subw 0x0, time 2342097406, (280,482), root:(280,482),
state 0x10, keycode 23 (keysym 0xff09, Tab), same_screen YES,
XLookupString gives 1 bytes: (09) " "
XFilterEvent returns: False

Pressing and releasing "Alt" in xev:

KeyPress event, serial 38, synthetic NO, window 0x2400001,
root 0x111, subw 0x0, time 2342174165, (252,440), root:(252,440),
state 0x10, keycode 64 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x2400001,
root 0x111, subw 0x0, time 2342174277, (252,440), root:(252,440),
state 0x18, keycode 64 (keysym 0xffe7, Meta_L), same_screen YES,
XLookupString gives 0 bytes: 
XFilterEvent returns: False
Poldo333 commented 2 years ago

Ok, I think I got the point here.

When I press Alt, xev says Meta_L, as shown above.

I remap the Alt button to Alt_L with this command:

xmodmap -e "keysym Meta_L = Alt_L"

Now it works properly. Probably during some update for some reason the Alt button was assigned as Meta.

BTW, do you know if the xmodmap command is persistent after a reboot?

gijsbers commented 2 years ago

You can maybe better remap the KeySysSwitch keys to Meta?