wmaker: add directional window focus

This patch is adding directional window focus
(like in openbox), where the focus can be passed to
the current window neighboors with a shortcut key.
Comparisons are performed using window centres.

New options are FocusWindowLeftKey, FocusWindowRightKey,
FocusWindowUpKey, FocusWindowDownKey.
Other WM are setting those to SUPER+LEFT/RIGHT/UP/DOWN keys
but currently those are not set by default.

CirculateRaise option which is described in WPrefs as
'Raise window when switching focus with keyboard' is also
used to raise/not raise windows that are fully covered by
other windows.
This commit is contained in:
David Maciejak
2026-04-03 10:35:39 +01:00
committed by Carlos R. Mafra
parent a3c02a22bd
commit 33fba87ed1
8 changed files with 159 additions and 0 deletions
+9
View File
@@ -721,6 +721,15 @@ WDefaultEntry optionList[] = {
NULL, getKeybind, setKeyGrab, NULL, NULL},
{"FocusPrevKey", "Mod1+Shift+Tab", (void *)WKBD_FOCUSPREV,
NULL, getKeybind, setKeyGrab, NULL, NULL},
/* Directional window focus */
{"FocusWindowLeftKey", "None", (void *)WKBD_FOCUSLEFT,
NULL, getKeybind, setKeyGrab, NULL, NULL},
{"FocusWindowRightKey", "None", (void *)WKBD_FOCUSRIGHT,
NULL, getKeybind, setKeyGrab, NULL, NULL},
{"FocusWindowUpKey", "None", (void *)WKBD_FOCUSUP,
NULL, getKeybind, setKeyGrab, NULL, NULL},
{"FocusWindowDownKey", "None", (void *)WKBD_FOCUSDOWN,
NULL, getKeybind, setKeyGrab, NULL, NULL},
{"GroupNextKey", "None", (void *)WKBD_GROUPNEXT,
NULL, getKeybind, setKeyGrab, NULL, NULL},
{"GroupPrevKey", "None", (void *)WKBD_GROUPPREV,