We already have ClipRaiseKey, ClipLowerKey, and ClipRaiseLowerKey. Why not DockRaiseKey, DockLowerKey, and DockRaiseLowerKey too? I sometimes put a window over part of the dock, and I find myself missing a raise-dock shortcut.
This patch seems to handle it.
diff -r e6e5940e0589 WPrefs.app/KeyboardShortcuts.c --- a/WPrefs.app/KeyboardShortcuts.c Thu Sep 24 13:59:35 2009 -0700 +++ b/WPrefs.app/KeyboardShortcuts.c Wed Jan 06 12:09:25 2010 -0500 @@ -118,6 +118,9 @@ "VirtualEdgeUpKey", "VirtualEdgeDownKey", #endif + "DockRaiseKey", + "DockLowerKey", + "DockRaiseLowerKey", "ClipRaiseKey", "ClipLowerKey", #ifndef XKB_MODELOCK @@ -546,6 +549,9 @@ WMAddListItem(panel->actLs, _("Move VirtualDesktop to next top edge")); WMAddListItem(panel->actLs, _("Move VirtualDesktop to next bottom edge")); #endif + WMAddListItem(panel->actLs, _("Raise Dock")); + WMAddListItem(panel->actLs, _("Lower Dock")); + WMAddListItem(panel->actLs, _("Raise/Lower Dock")); WMAddListItem(panel->actLs, _("Raise Clip")); WMAddListItem(panel->actLs, _("Lower Clip")); WMAddListItem(panel->actLs, _("Raise/Lower Clip")); diff -r e6e5940e0589 WindowMaker/Defaults/WindowMaker.in --- a/WindowMaker/Defaults/WindowMaker.in Thu Sep 24 13:59:35 2009 -0700 +++ b/WindowMaker/Defaults/WindowMaker.in Wed Jan 06 12:09:25 2010 -0500 @@ -99,9 +99,12 @@ MiniaturizeKey = "Mod1+M"; NextWorkspaceLayerKey = None; PrevWorkspaceLayerKey = None; + DockLowerKey = None; + DockRaiseKey = None; ClipLowerKey = None; ClipRaiseKey = None; ConstrainWindowSize = NO; + DockRaiseLowerKey = None; ClipRaiseLowerKey = None; TitleJustify = center; WindowTitleFont = "Trebuchet MS,Luxi Sans:bold:pixelsize=12"; diff -r e6e5940e0589 src/defaults.c --- a/src/defaults.c Thu Sep 24 13:59:35 2009 -0700 +++ b/src/defaults.c Wed Jan 06 12:09:25 2010 -0500 @@ -682,6 +682,15 @@ {"WindowMenuKey", "None", (void*)WKBD_WINDOWMENU, NULL, getKeybind, setKeyGrab }, + {"DockLowerKey", "None", (void*)WKBD_DOCKLOWER, + NULL, getKeybind, setKeyGrab + }, + {"DockRaiseKey", "None", (void*)WKBD_DOCKRAISE, + NULL, getKeybind, setKeyGrab + }, + {"DockRaiseLowerKey", "None", (void*)WKBD_DOCKRAISELOWER, + NULL, getKeybind, setKeyGrab + }, {"ClipLowerKey", "None", (void*)WKBD_CLIPLOWER, NULL, getKeybind, setKeyGrab }, diff -r e6e5940e0589 src/event.c --- a/src/event.c Thu Sep 24 13:59:35 2009 -0700 +++ b/src/event.c Wed Jan 06 12:09:25 2010 -0500 @@ -1687,6 +1687,18 @@ } } break; + case WKBD_DOCKLOWER: + if (!wPreferences.flags.nodock) + wDockLower(scr->dock); + break; + case WKBD_DOCKRAISE: + if (!wPreferences.flags.nodock) + wDockRaise(scr->dock); + break; + case WKBD_DOCKRAISELOWER: + if (!wPreferences.flags.nodock) + wDockRaiseLower(scr->dock); + break; case WKBD_CLIPLOWER: if (!wPreferences.flags.noclip) wDockLower(scr->workspaces[scr->current_workspace]->clip); diff -r e6e5940e0589 src/keybind.h --- a/src/keybind.h Thu Sep 24 13:59:35 2009 -0700 +++ b/src/keybind.h Wed Jan 06 12:09:25 2010 -0500 @@ -33,56 +33,60 @@ #define WKBD_VMAXIMIZE 7 #define WKBD_HMAXIMIZE 8 #define WKBD_SELECT 9 +/* Dock */ +#define WKBD_DOCKLOWER 10 +#define WKBD_DOCKRAISE 11 +#define WKBD_DOCKRAISELOWER 12 /* Clip */ -#define WKBD_CLIPLOWER 10 -#define WKBD_CLIPRAISE 11 -#define WKBD_CLIPRAISELOWER 12 +#define WKBD_CLIPLOWER 13 +#define WKBD_CLIPRAISE 14 +#define WKBD_CLIPRAISELOWER 15 /* window */ -#define WKBD_RAISE 13 -#define WKBD_LOWER 14 -#define WKBD_RAISELOWER 15 -#define WKBD_MOVERESIZE 16 -#define WKBD_SHADE 17 +#define WKBD_RAISE 16 +#define WKBD_LOWER 17 +#define WKBD_RAISELOWER 18 +#define WKBD_MOVERESIZE 19 +#define WKBD_SHADE 20 /* window, menu */ -#define WKBD_CLOSE 18 +#define WKBD_CLOSE 21 /* window */ -#define WKBD_FOCUSNEXT 19 -#define WKBD_FOCUSPREV 20 +#define WKBD_FOCUSNEXT 22 +#define WKBD_FOCUSPREV 23 -#define WKBD_WORKSPACE1 21 -#define WKBD_WORKSPACE2 22 -#define WKBD_WORKSPACE3 23 -#define WKBD_WORKSPACE4 24 -#define WKBD_WORKSPACE5 25 -#define WKBD_WORKSPACE6 26 -#define WKBD_WORKSPACE7 27 -#define WKBD_WORKSPACE8 28 -#define WKBD_WORKSPACE9 29 -#define WKBD_WORKSPACE10 30 -#define WKBD_NEXTWORKSPACE 31 -#define WKBD_PREVWORKSPACE 32 -#define WKBD_NEXTWSLAYER 33 -#define WKBD_PREVWSLAYER 34 +#define WKBD_WORKSPACE1 24 +#define WKBD_WORKSPACE2 25 +#define WKBD_WORKSPACE3 26 +#define WKBD_WORKSPACE4 27 +#define WKBD_WORKSPACE5 28 +#define WKBD_WORKSPACE6 29 +#define WKBD_WORKSPACE7 30 +#define WKBD_WORKSPACE8 31 +#define WKBD_WORKSPACE9 32 +#define WKBD_WORKSPACE10 33 +#define WKBD_NEXTWORKSPACE 34 +#define WKBD_PREVWORKSPACE 35 +#define WKBD_NEXTWSLAYER 36 +#define WKBD_PREVWSLAYER 37 /* window shortcuts */ -#define WKBD_WINDOW1 35 -#define WKBD_WINDOW2 36 -#define WKBD_WINDOW3 37 -#define WKBD_WINDOW4 38 -#define WKBD_WINDOW5 39 -#define WKBD_WINDOW6 40 -#define WKBD_WINDOW7 41 -#define WKBD_WINDOW8 42 -#define WKBD_WINDOW9 43 -#define WKBD_WINDOW10 44 +#define WKBD_WINDOW1 38 +#define WKBD_WINDOW2 39 +#define WKBD_WINDOW3 40 +#define WKBD_WINDOW4 41 +#define WKBD_WINDOW5 42 +#define WKBD_WINDOW6 43 +#define WKBD_WINDOW7 44 +#define WKBD_WINDOW8 45 +#define WKBD_WINDOW9 46 +#define WKBD_WINDOW10 47 -#define WKBD_SWITCH_SCREEN 45 +#define WKBD_SWITCH_SCREEN 48 #ifdef KEEP_XKB_LOCK_STATUS -# define WKBD_TOGGLE 46 -# define WKBD_TMP 47 +# define WKBD_TOGGLE 49 +# define WKBD_TMP 50 #else -# define WKBD_TMP 46 +# define WKBD_TMP 49 #endif #ifdef VIRTUAL_DESKTOP