Use human readable modifier keys for keybindings ref. #265

vertigo
bakkeby 2 years ago
parent 4830423f69
commit 8216da50f8

@ -665,67 +665,76 @@ static const char *xkb_layouts[] = {
#endif // XKB_PATCH
/* key definitions */
#define MODKEY Mod1Mask
#define Shift ShiftMask
#define Ctrl ControlMask
#define Alt Mod1Mask
#define AltGr Mod3Mask
#define Super Mod4Mask
#define ShiftGr Mod5Mask
#define MODKEY Alt
#if COMBO_PATCH && SWAPTAGS_PATCH && TAGOTHERMONITOR_PATCH
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, combotag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask|ShiftMask, KEY, swaptags, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask|ControlMask, KEY, tagprevmon, {.ui = 1 << TAG} },
{ MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|Shift, KEY, combotag, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl|Shift, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Super|Shift, KEY, swaptags, {.ui = 1 << TAG} }, \
{ MODKEY|Super, KEY, tagnextmon, {.ui = 1 << TAG} }, \
{ MODKEY|Super|Ctrl, KEY, tagprevmon, {.ui = 1 << TAG} },
#elif COMBO_PATCH && SWAPTAGS_PATCH
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, combotag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask|ShiftMask, KEY, swaptags, {.ui = 1 << TAG} },
{ MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|Shift, KEY, combotag, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl|Shift, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Super|Shift, KEY, swaptags, {.ui = 1 << TAG} },
#elif COMBO_PATCH && TAGOTHERMONITOR_PATCH
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, combotag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask|ControlMask, KEY, tagprevmon, {.ui = 1 << TAG} },
{ MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|Shift, KEY, combotag, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl|Shift, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Super, KEY, tagnextmon, {.ui = 1 << TAG} }, \
{ MODKEY|Super|Ctrl, KEY, tagprevmon, {.ui = 1 << TAG} },
#elif COMBO_PATCH
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, combotag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
{ MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|Shift, KEY, combotag, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl|Shift, KEY, toggletag, {.ui = 1 << TAG} },
#elif SWAPTAGS_PATCH && TAGOTHERMONITOR_PATCH
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask|ShiftMask, KEY, swaptags, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask|ControlMask, KEY, tagprevmon, {.ui = 1 << TAG} },
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|Shift, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl|Shift, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Super|Shift, KEY, swaptags, {.ui = 1 << TAG} }, \
{ MODKEY|Super, KEY, tagnextmon, {.ui = 1 << TAG} }, \
{ MODKEY|Super|Ctrl, KEY, tagprevmon, {.ui = 1 << TAG} },
#elif SWAPTAGS_PATCH
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask|ShiftMask, KEY, swaptags, {.ui = 1 << TAG} },
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|Shift, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl|Shift, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Super|Shift, KEY, swaptags, {.ui = 1 << TAG} },
#elif TAGOTHERMONITOR_PATCH
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask, KEY, tagnextmon, {.ui = 1 << TAG} }, \
{ MODKEY|Mod4Mask|ControlMask, KEY, tagprevmon, {.ui = 1 << TAG} },
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|Shift, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl|Shift, KEY, toggletag, {.ui = 1 << TAG} }, \
{ MODKEY|Super, KEY, tagnextmon, {.ui = 1 << TAG} }, \
{ MODKEY|Super|Ctrl, KEY, tagprevmon, {.ui = 1 << TAG} },
#else
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|Shift, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|Ctrl|Shift, KEY, toggletag, {.ui = 1 << TAG} },
#endif // COMBO_PATCH / SWAPTAGS_PATCH / TAGOTHERMONITOR_PATCH
#if STACKER_PATCH
@ -797,22 +806,22 @@ static const Key keys[] = {
{ MODKEY, XK_Escape, setkeymode, {.ui = COMMANDMODE} },
#endif // KEYMODES_PATCH
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY|Shift, XK_Return, spawn, {.v = termcmd } },
#if RIODRAW_PATCH
{ MODKEY|ControlMask, XK_p, riospawnsync, {.v = dmenucmd } },
{ MODKEY|ControlMask, XK_Return, riospawn, {.v = termcmd } },
{ MODKEY|Ctrl, XK_p, riospawnsync, {.v = dmenucmd } },
{ MODKEY|Ctrl, XK_Return, riospawn, {.v = termcmd } },
{ MODKEY, XK_s, rioresize, {0} },
#endif // RIODRAW_PATCH
{ MODKEY, XK_b, togglebar, {0} },
#if TAB_PATCH
{ MODKEY|ControlMask, XK_b, tabmode, {-1} },
{ MODKEY|Ctrl, XK_b, tabmode, {-1} },
#endif // TAB_PATCH
#if FOCUSMASTER_PATCH
{ MODKEY|ControlMask, XK_space, focusmaster, {0} },
{ MODKEY|Ctrl, XK_space, focusmaster, {0} },
#endif // FOCUSMASTER_PATCH
#if STACKER_PATCH
STACKKEYS(MODKEY, focus)
STACKKEYS(MODKEY|ShiftMask, push)
STACKKEYS(MODKEY|Shift, push)
#else
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
@ -830,83 +839,83 @@ static const Key keys[] = {
{ MODKEY, XK_v, switchcol, {0} },
#endif // SWITCHCOL_PATCH
#if ROTATESTACK_PATCH
{ MODKEY|Mod4Mask, XK_j, rotatestack, {.i = +1 } },
{ MODKEY|Mod4Mask, XK_k, rotatestack, {.i = -1 } },
{ MODKEY|Super, XK_j, rotatestack, {.i = +1 } },
{ MODKEY|Super, XK_k, rotatestack, {.i = -1 } },
#endif // ROTATESTACK_PATCH
#if INPLACEROTATE_PATCH
{ MODKEY|Mod4Mask, XK_j, inplacerotate, {.i = +2 } }, // same as rotatestack
{ MODKEY|Mod4Mask, XK_k, inplacerotate, {.i = -2 } }, // same as reotatestack
{ MODKEY|Mod4Mask|ShiftMask, XK_j, inplacerotate, {.i = +1} },
{ MODKEY|Mod4Mask|ShiftMask, XK_k, inplacerotate, {.i = -1} },
{ MODKEY|Super, XK_j, inplacerotate, {.i = +2 } }, // same as rotatestack
{ MODKEY|Super, XK_k, inplacerotate, {.i = -2 } }, // same as reotatestack
{ MODKEY|Super|Shift, XK_j, inplacerotate, {.i = +1} },
{ MODKEY|Super|Shift, XK_k, inplacerotate, {.i = -1} },
#endif // INPLACEROTATE_PATCH
#if PUSH_PATCH || PUSH_NO_MASTER_PATCH
{ MODKEY|ControlMask, XK_j, pushdown, {0} },
{ MODKEY|ControlMask, XK_k, pushup, {0} },
{ MODKEY|Ctrl, XK_j, pushdown, {0} },
{ MODKEY|Ctrl, XK_k, pushup, {0} },
#endif // PUSH_PATCH / PUSH_NO_MASTER_PATCH
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
#if FLEXTILE_DELUXE_LAYOUT
{ MODKEY|ControlMask, XK_i, incnstack, {.i = +1 } },
{ MODKEY|ControlMask, XK_u, incnstack, {.i = -1 } },
{ MODKEY|Ctrl, XK_i, incnstack, {.i = +1 } },
{ MODKEY|Ctrl, XK_u, incnstack, {.i = -1 } },
#endif // FLEXTILE_DELUXE_LAYOUT
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
#if CFACTS_PATCH
{ MODKEY|ShiftMask, XK_h, setcfact, {.f = +0.25} },
{ MODKEY|ShiftMask, XK_l, setcfact, {.f = -0.25} },
{ MODKEY|ShiftMask, XK_o, setcfact, {0} },
{ MODKEY|Shift, XK_h, setcfact, {.f = +0.25} },
{ MODKEY|Shift, XK_l, setcfact, {.f = -0.25} },
{ MODKEY|Shift, XK_o, setcfact, {0} },
#endif // CFACTS_PATCH
#if ASPECTRESIZE_PATCH
{ MODKEY|ControlMask|ShiftMask, XK_e, aspectresize, {.i = +24} },
{ MODKEY|ControlMask|ShiftMask, XK_r, aspectresize, {.i = -24} },
{ MODKEY|Ctrl|Shift, XK_e, aspectresize, {.i = +24} },
{ MODKEY|Ctrl|Shift, XK_r, aspectresize, {.i = -24} },
#endif // ASPECTRESIZE_PATCH
#if MOVERESIZE_PATCH
{ MODKEY|Mod4Mask, XK_Down, moveresize, {.v = "0x 25y 0w 0h" } },
{ MODKEY|Mod4Mask, XK_Up, moveresize, {.v = "0x -25y 0w 0h" } },
{ MODKEY|Mod4Mask, XK_Right, moveresize, {.v = "25x 0y 0w 0h" } },
{ MODKEY|Mod4Mask, XK_Left, moveresize, {.v = "-25x 0y 0w 0h" } },
{ MODKEY|Mod4Mask|ShiftMask, XK_Down, moveresize, {.v = "0x 0y 0w 25h" } },
{ MODKEY|Mod4Mask|ShiftMask, XK_Up, moveresize, {.v = "0x 0y 0w -25h" } },
{ MODKEY|Mod4Mask|ShiftMask, XK_Right, moveresize, {.v = "0x 0y 25w 0h" } },
{ MODKEY|Mod4Mask|ShiftMask, XK_Left, moveresize, {.v = "0x 0y -25w 0h" } },
{ MODKEY|Super, XK_Down, moveresize, {.v = "0x 25y 0w 0h" } },
{ MODKEY|Super, XK_Up, moveresize, {.v = "0x -25y 0w 0h" } },
{ MODKEY|Super, XK_Right, moveresize, {.v = "25x 0y 0w 0h" } },
{ MODKEY|Super, XK_Left, moveresize, {.v = "-25x 0y 0w 0h" } },
{ MODKEY|Super|Shift, XK_Down, moveresize, {.v = "0x 0y 0w 25h" } },
{ MODKEY|Super|Shift, XK_Up, moveresize, {.v = "0x 0y 0w -25h" } },
{ MODKEY|Super|Shift, XK_Right, moveresize, {.v = "0x 0y 25w 0h" } },
{ MODKEY|Super|Shift, XK_Left, moveresize, {.v = "0x 0y -25w 0h" } },
#endif // MOVERESIZE_PATCH
#if MOVESTACK_PATCH
{ MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } },
{ MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } },
{ MODKEY|Shift, XK_j, movestack, {.i = +1 } },
{ MODKEY|Shift, XK_k, movestack, {.i = -1 } },
#endif // MOVESTACK_PATCH
#if TRANSFER_PATCH
{ MODKEY, XK_x, transfer, {0} },
#endif // TRANSFER_PATCH
#if TRANSFER_ALL_PATCH
{ MODKEY|ControlMask, XK_x, transferall, {0} },
{ MODKEY|Ctrl, XK_x, transferall, {0} },
#endif // TRANSFER_ALL_PATCH
#if REORGANIZETAGS_PATCH
{ MODKEY|ControlMask, XK_r, reorganizetags, {0} },
{ MODKEY|Ctrl, XK_r, reorganizetags, {0} },
#endif // REORGANIZETAGS_PATCH
#if DISTRIBUTETAGS_PATCH
{ MODKEY|ControlMask, XK_d, distributetags, {0} },
{ MODKEY|Ctrl, XK_d, distributetags, {0} },
#endif // DISTRIBUTETAGS_PATCH
#if INSETS_PATCH
{ MODKEY|ShiftMask|ControlMask, XK_a, updateinset, {.v = &default_inset } },
{ MODKEY|Shift|Ctrl, XK_a, updateinset, {.v = &default_inset } },
#endif // INSETS_PATCH
{ MODKEY, XK_Return, zoom, {0} },
#if VANITYGAPS_PATCH
{ MODKEY|Mod4Mask, XK_u, incrgaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_u, incrgaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_i, incrigaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_i, incrigaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_o, incrogaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_o, incrogaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_6, incrihgaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_6, incrihgaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_7, incrivgaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_7, incrivgaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_8, incrohgaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_8, incrohgaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_9, incrovgaps, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_9, incrovgaps, {.i = -1 } },
{ MODKEY|Mod4Mask, XK_0, togglegaps, {0} },
{ MODKEY|Mod4Mask|ShiftMask, XK_0, defaultgaps, {0} },
{ MODKEY|Super, XK_u, incrgaps, {.i = +1 } },
{ MODKEY|Super|Shift, XK_u, incrgaps, {.i = -1 } },
{ MODKEY|Super, XK_i, incrigaps, {.i = +1 } },
{ MODKEY|Super|Shift, XK_i, incrigaps, {.i = -1 } },
{ MODKEY|Super, XK_o, incrogaps, {.i = +1 } },
{ MODKEY|Super|Shift, XK_o, incrogaps, {.i = -1 } },
{ MODKEY|Super, XK_6, incrihgaps, {.i = +1 } },
{ MODKEY|Super|Shift, XK_6, incrihgaps, {.i = -1 } },
{ MODKEY|Super, XK_7, incrivgaps, {.i = +1 } },
{ MODKEY|Super|Shift, XK_7, incrivgaps, {.i = -1 } },
{ MODKEY|Super, XK_8, incrohgaps, {.i = +1 } },
{ MODKEY|Super|Shift, XK_8, incrohgaps, {.i = -1 } },
{ MODKEY|Super, XK_9, incrovgaps, {.i = +1 } },
{ MODKEY|Super|Shift, XK_9, incrovgaps, {.i = -1 } },
{ MODKEY|Super, XK_0, togglegaps, {0} },
{ MODKEY|Super|Shift, XK_0, defaultgaps, {0} },
#endif // VANITYGAPS_PATCH
#if ALT_TAB_PATCH
{ Mod1Mask, XK_Tab, alttabstart, {0} },
@ -914,42 +923,42 @@ static const Key keys[] = {
{ MODKEY, XK_Tab, view, {0} },
#endif // ALT_TAB_PATCH
#if SHIFTTAG_PATCH
{ MODKEY|ShiftMask, XK_Left, shifttag, { .i = -1 } }, // note keybinding conflict with focusadjacenttag tagtoleft
{ MODKEY|ShiftMask, XK_Right, shifttag, { .i = +1 } }, // note keybinding conflict with focusadjacenttag tagtoright
{ MODKEY|Shift, XK_Left, shifttag, { .i = -1 } }, // note keybinding conflict with focusadjacenttag tagtoleft
{ MODKEY|Shift, XK_Right, shifttag, { .i = +1 } }, // note keybinding conflict with focusadjacenttag tagtoright
#endif // SHIFTTAG_PATCH
#if SHIFTTAGCLIENTS_PATCH
{ MODKEY|ShiftMask|ControlMask, XK_Left, shifttagclients, { .i = -1 } },
{ MODKEY|ShiftMask|ControlMask, XK_Right, shifttagclients, { .i = +1 } },
{ MODKEY|Shift|Ctrl, XK_Left, shifttagclients, { .i = -1 } },
{ MODKEY|Shift|Ctrl, XK_Right, shifttagclients, { .i = +1 } },
#endif // SHIFTTAGCLIENTS_PATCH
#if SHIFTVIEW_PATCH
{ MODKEY|ShiftMask, XK_Tab, shiftview, { .i = -1 } },
{ MODKEY|ShiftMask, XK_backslash, shiftview, { .i = +1 } },
{ MODKEY|Shift, XK_Tab, shiftview, { .i = -1 } },
{ MODKEY|Shift, XK_backslash, shiftview, { .i = +1 } },
#endif // SHIFTVIEW_PATCH
#if SHIFTVIEW_CLIENTS_PATCH
{ MODKEY|Mod4Mask, XK_Tab, shiftviewclients, { .i = -1 } },
{ MODKEY|Mod4Mask, XK_backslash, shiftviewclients, { .i = +1 } },
{ MODKEY|Super, XK_Tab, shiftviewclients, { .i = -1 } },
{ MODKEY|Super, XK_backslash, shiftviewclients, { .i = +1 } },
#endif // SHIFTVIEW_CLIENTS_PATCH
#if SHIFTBOTH_PATCH
{ MODKEY|ControlMask, XK_Left, shiftboth, { .i = -1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoleft
{ MODKEY|ControlMask, XK_Right, shiftboth, { .i = +1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoright
{ MODKEY|Ctrl, XK_Left, shiftboth, { .i = -1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoleft
{ MODKEY|Ctrl, XK_Right, shiftboth, { .i = +1 } }, // note keybinding conflict with focusadjacenttag tagandviewtoright
#endif // SHIFTBOTH_PATCH
#if SHIFTSWAPTAGS_PATCH && SWAPTAGS_PATCH
{ MODKEY|Mod4Mask|ShiftMask, XK_Left, shiftswaptags, { .i = -1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_Right, shiftswaptags, { .i = +1 } },
{ MODKEY|Super|Shift, XK_Left, shiftswaptags, { .i = -1 } },
{ MODKEY|Super|Shift, XK_Right, shiftswaptags, { .i = +1 } },
#endif // SHIFTSWAPTAGS_PATCH
#if BAR_WINTITLEACTIONS_PATCH
{ MODKEY|ControlMask, XK_z, showhideclient, {0} },
{ MODKEY|Ctrl, XK_z, showhideclient, {0} },
#endif // BAR_WINTITLEACTIONS_PATCH
{ MODKEY|ShiftMask, XK_c, killclient, {0} },
{ MODKEY|Shift, XK_c, killclient, {0} },
#if KILLUNSEL_PATCH
{ MODKEY|ShiftMask, XK_x, killunsel, {0} },
{ MODKEY|Shift, XK_x, killunsel, {0} },
#endif // KILLUNSEL_PATCH
#if SELFRESTART_PATCH
{ MODKEY|ShiftMask, XK_r, self_restart, {0} },
{ MODKEY|Shift, XK_r, self_restart, {0} },
#endif // SELFRESTART_PATCH
{ MODKEY|ShiftMask, XK_q, quit, {0} },
{ MODKEY|Shift, XK_q, quit, {0} },
#if RESTARTSIG_PATCH
{ MODKEY|ControlMask|ShiftMask, XK_q, quit, {1} },
{ MODKEY|Ctrl|Shift, XK_q, quit, {1} },
#endif // RESTARTSIG_PATCH
#if FOCUSURGENT_PATCH
{ MODKEY, XK_u, focusurgent, {0} },
@ -961,7 +970,7 @@ static const Key keys[] = {
{ MODKEY, XK_o, winview, {0} },
#endif // WINVIEW_PATCH
#if XRDB_PATCH
{ MODKEY|ShiftMask, XK_F5, xrdb, {.v = NULL } },
{ MODKEY|Shift, XK_F5, xrdb, {.v = NULL } },
#endif // XRDB_PATCH
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
@ -970,96 +979,96 @@ static const Key keys[] = {
{ MODKEY, XK_c, setlayout, {.v = &layouts[3]} },
#endif // COLUMNS_LAYOUT
#if FLEXTILE_DELUXE_LAYOUT
{ MODKEY|ControlMask, XK_t, rotatelayoutaxis, {.i = +1 } }, /* flextile, 1 = layout axis */
{ MODKEY|ControlMask, XK_Tab, rotatelayoutaxis, {.i = +2 } }, /* flextile, 2 = master axis */
{ MODKEY|ControlMask|ShiftMask, XK_Tab, rotatelayoutaxis, {.i = +3 } }, /* flextile, 3 = stack axis */
{ MODKEY|ControlMask|Mod1Mask, XK_Tab, rotatelayoutaxis, {.i = +4 } }, /* flextile, 4 = secondary stack axis */
{ MODKEY|Mod5Mask, XK_t, rotatelayoutaxis, {.i = -1 } }, /* flextile, 1 = layout axis */
{ MODKEY|Mod5Mask, XK_Tab, rotatelayoutaxis, {.i = -2 } }, /* flextile, 2 = master axis */
{ MODKEY|Mod5Mask|ShiftMask, XK_Tab, rotatelayoutaxis, {.i = -3 } }, /* flextile, 3 = stack axis */
{ MODKEY|Mod5Mask|Mod1Mask, XK_Tab, rotatelayoutaxis, {.i = -4 } }, /* flextile, 4 = secondary stack axis */
{ MODKEY|ControlMask, XK_Return, mirrorlayout, {0} }, /* flextile, flip master and stack areas */
{ MODKEY|Ctrl, XK_t, rotatelayoutaxis, {.i = +1 } }, /* flextile, 1 = layout axis */
{ MODKEY|Ctrl, XK_Tab, rotatelayoutaxis, {.i = +2 } }, /* flextile, 2 = master axis */
{ MODKEY|Ctrl|Shift, XK_Tab, rotatelayoutaxis, {.i = +3 } }, /* flextile, 3 = stack axis */
{ MODKEY|Ctrl|Alt, XK_Tab, rotatelayoutaxis, {.i = +4 } }, /* flextile, 4 = secondary stack axis */
{ MODKEY|ShiftGr, XK_t, rotatelayoutaxis, {.i = -1 } }, /* flextile, 1 = layout axis */
{ MODKEY|ShiftGr, XK_Tab, rotatelayoutaxis, {.i = -2 } }, /* flextile, 2 = master axis */
{ MODKEY|ShiftGr|Shift, XK_Tab, rotatelayoutaxis, {.i = -3 } }, /* flextile, 3 = stack axis */
{ MODKEY|ShiftGr|Alt, XK_Tab, rotatelayoutaxis, {.i = -4 } }, /* flextile, 4 = secondary stack axis */
{ MODKEY|Ctrl, XK_Return, mirrorlayout, {0} }, /* flextile, flip master and stack areas */
#endif // FLEXTILE_DELUXE_LAYOUT
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY|Shift, XK_space, togglefloating, {0} },
#if MAXIMIZE_PATCH
{ MODKEY|ControlMask|ShiftMask, XK_h, togglehorizontalmax, {0} },
{ MODKEY|ControlMask|ShiftMask, XK_l, togglehorizontalmax, {0} },
{ MODKEY|ControlMask|ShiftMask, XK_j, toggleverticalmax, {0} },
{ MODKEY|ControlMask|ShiftMask, XK_k, toggleverticalmax, {0} },
{ MODKEY|ControlMask, XK_m, togglemax, {0} },
{ MODKEY|Ctrl|Shift, XK_h, togglehorizontalmax, {0} },
{ MODKEY|Ctrl|Shift, XK_l, togglehorizontalmax, {0} },
{ MODKEY|Ctrl|Shift, XK_j, toggleverticalmax, {0} },
{ MODKEY|Ctrl|Shift, XK_k, toggleverticalmax, {0} },
{ MODKEY|Ctrl, XK_m, togglemax, {0} },
#endif // MAXIMIZE_PATCH
#if NO_MOD_BUTTONS_PATCH
{ MODKEY|ShiftMask, XK_Escape, togglenomodbuttons, {0} },
{ MODKEY|Shift, XK_Escape, togglenomodbuttons, {0} },
#endif // NO_MOD_BUTTONS_PATCH
#if RENAMED_SCRATCHPADS_PATCH
{ MODKEY, XK_grave, togglescratch, {.v = spcmd_s } },
{ MODKEY|ControlMask, XK_grave, setscratch, {.v = spcmd_s } },
{ MODKEY|ShiftMask, XK_grave, removescratch, {.v = spcmd_s } },
{ MODKEY|Ctrl, XK_grave, setscratch, {.v = spcmd_s } },
{ MODKEY|Shift, XK_grave, removescratch, {.v = spcmd_s } },
#endif // RENAMED_SCRATCHPADS_PATCH
#if UNFLOATVISIBLE_PATCH
{ MODKEY|Mod4Mask, XK_space, unfloatvisible, {0} },
{ MODKEY|ShiftMask, XK_t, unfloatvisible, {.v = &layouts[0]} },
{ MODKEY|Super, XK_space, unfloatvisible, {0} },
{ MODKEY|Shift, XK_t, unfloatvisible, {.v = &layouts[0]} },
#endif // UNFLOATVISIBLE_PATCH
#if TOGGLEFULLSCREEN_PATCH
{ MODKEY, XK_y, togglefullscreen, {0} },
#endif // TOGGLEFULLSCREEN_PATCH
#if !FAKEFULLSCREEN_PATCH && FAKEFULLSCREEN_CLIENT_PATCH
{ MODKEY|ShiftMask, XK_y, togglefakefullscreen, {0} },
{ MODKEY|Shift, XK_y, togglefakefullscreen, {0} },
#endif // FAKEFULLSCREEN_CLIENT_PATCH
#if FULLSCREEN_PATCH
{ MODKEY|ShiftMask, XK_f, fullscreen, {0} },
{ MODKEY|Shift, XK_f, fullscreen, {0} },
#endif // FULLSCREEN_PATCH
#if STICKY_PATCH
{ MODKEY|ShiftMask, XK_s, togglesticky, {0} },
{ MODKEY|Shift, XK_s, togglesticky, {0} },
#endif // STICKY_PATCH
#if SCRATCHPAD_ALT_1_PATCH
{ MODKEY, XK_minus, scratchpad_show, {0} },
{ MODKEY|ShiftMask, XK_minus, scratchpad_hide, {0} },
{ MODKEY|Shift, XK_minus, scratchpad_hide, {0} },
{ MODKEY, XK_equal, scratchpad_remove, {0} },
#else
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY|Shift, XK_0, tag, {.ui = ~0 } },
#endif // SCRATCHPAD_ALT_1_PATCH
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
{ MODKEY, XK_period, focusmon, {.i = +1 } },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
{ MODKEY|Shift, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|Shift, XK_period, tagmon, {.i = +1 } },
#if FOCUSADJACENTTAG_PATCH
{ MODKEY, XK_Left, viewtoleft, {0} }, // note keybinding conflict with focusdir
{ MODKEY, XK_Right, viewtoright, {0} }, // note keybinding conflict with focusdir
{ MODKEY|ShiftMask, XK_Left, tagtoleft, {0} }, // note keybinding conflict with shifttag
{ MODKEY|ShiftMask, XK_Right, tagtoright, {0} }, // note keybinding conflict with shifttag
{ MODKEY|ControlMask, XK_Left, tagandviewtoleft, {0} },
{ MODKEY|ControlMask, XK_Right, tagandviewtoright, {0} },
{ MODKEY|Shift, XK_Left, tagtoleft, {0} }, // note keybinding conflict with shifttag
{ MODKEY|Shift, XK_Right, tagtoright, {0} }, // note keybinding conflict with shifttag
{ MODKEY|Ctrl, XK_Left, tagandviewtoleft, {0} },
{ MODKEY|Ctrl, XK_Right, tagandviewtoright, {0} },
#endif // FOCUSADJACENTTAG_PATCH
#if TAGALL_PATCH
{ MODKEY|ShiftMask, XK_F1, tagall, {.v = "F1"} },
{ MODKEY|ShiftMask, XK_F2, tagall, {.v = "F2"} },
{ MODKEY|ShiftMask, XK_F3, tagall, {.v = "F3"} },
{ MODKEY|ShiftMask, XK_F4, tagall, {.v = "F4"} },
{ MODKEY|ShiftMask, XK_F5, tagall, {.v = "F5"} },
{ MODKEY|ShiftMask, XK_F6, tagall, {.v = "F6"} },
{ MODKEY|ShiftMask, XK_F7, tagall, {.v = "F7"} },
{ MODKEY|ShiftMask, XK_F8, tagall, {.v = "F8"} },
{ MODKEY|ShiftMask, XK_F9, tagall, {.v = "F9"} },
{ MODKEY|ControlMask, XK_F1, tagall, {.v = "1"} },
{ MODKEY|ControlMask, XK_F2, tagall, {.v = "2"} },
{ MODKEY|ControlMask, XK_F3, tagall, {.v = "3"} },
{ MODKEY|ControlMask, XK_F4, tagall, {.v = "4"} },
{ MODKEY|ControlMask, XK_F5, tagall, {.v = "5"} },
{ MODKEY|ControlMask, XK_F6, tagall, {.v = "6"} },
{ MODKEY|ControlMask, XK_F7, tagall, {.v = "7"} },
{ MODKEY|ControlMask, XK_F8, tagall, {.v = "8"} },
{ MODKEY|ControlMask, XK_F9, tagall, {.v = "9"} },
{ MODKEY|Shift, XK_F1, tagall, {.v = "F1"} },
{ MODKEY|Shift, XK_F2, tagall, {.v = "F2"} },
{ MODKEY|Shift, XK_F3, tagall, {.v = "F3"} },
{ MODKEY|Shift, XK_F4, tagall, {.v = "F4"} },
{ MODKEY|Shift, XK_F5, tagall, {.v = "F5"} },
{ MODKEY|Shift, XK_F6, tagall, {.v = "F6"} },
{ MODKEY|Shift, XK_F7, tagall, {.v = "F7"} },
{ MODKEY|Shift, XK_F8, tagall, {.v = "F8"} },
{ MODKEY|Shift, XK_F9, tagall, {.v = "F9"} },
{ MODKEY|Ctrl, XK_F1, tagall, {.v = "1"} },
{ MODKEY|Ctrl, XK_F2, tagall, {.v = "2"} },
{ MODKEY|Ctrl, XK_F3, tagall, {.v = "3"} },
{ MODKEY|Ctrl, XK_F4, tagall, {.v = "4"} },
{ MODKEY|Ctrl, XK_F5, tagall, {.v = "5"} },
{ MODKEY|Ctrl, XK_F6, tagall, {.v = "6"} },
{ MODKEY|Ctrl, XK_F7, tagall, {.v = "7"} },
{ MODKEY|Ctrl, XK_F8, tagall, {.v = "8"} },
{ MODKEY|Ctrl, XK_F9, tagall, {.v = "9"} },
#endif // TAGALL_PATCH
#if TAGALLMON_PATCH
{ MODKEY|Mod4Mask|ShiftMask, XK_comma, tagallmon, {.i = +1 } },
{ MODKEY|Mod4Mask|ShiftMask, XK_period, tagallmon, {.i = -1 } },
{ MODKEY|Super|Shift, XK_comma, tagallmon, {.i = +1 } },
{ MODKEY|Super|Shift, XK_period, tagallmon, {.i = -1 } },
#endif // TAGALLMON_PATCH
#if TAGSWAPMON_PATCH
{ MODKEY|Mod4Mask|ControlMask, XK_comma, tagswapmon, {.i = +1 } },
{ MODKEY|Mod4Mask|ControlMask, XK_period, tagswapmon, {.i = -1 } },
{ MODKEY|Super|Ctrl, XK_comma, tagswapmon, {.i = +1 } },
{ MODKEY|Super|Ctrl, XK_period, tagswapmon, {.i = -1 } },
#endif // TAGSWAPMON_PATCH
#if BAR_ALTERNATIVE_TAGS_PATCH
{ MODKEY, XK_n, togglealttag, {0} },
@ -1068,14 +1077,14 @@ static const Key keys[] = {
{ MODKEY|ShiftMask, XK_n, nametag, {0} },
#endif // NAMETAG_PATCH
#if BAR_TAGGRID_PATCH
{ MODKEY|ControlMask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_VIEW } },
{ MODKEY|ControlMask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_VIEW } },
{ MODKEY|ControlMask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_VIEW } },
{ MODKEY|ControlMask, XK_Left, switchtag, { .ui = SWITCHTAG_LEFT | SWITCHTAG_VIEW } },
{ MODKEY|Mod4Mask, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
{ MODKEY|Mod4Mask, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
{ MODKEY|Mod4Mask, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
{ MODKEY|Mod4Mask, XK_Left, switchtag, { .ui = SWITCHTAG_LEFT | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
{ MODKEY|Ctrl, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_VIEW } },
{ MODKEY|Ctrl, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_VIEW } },
{ MODKEY|Ctrl, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_VIEW } },
{ MODKEY|Ctrl, XK_Left, switchtag, { .ui = SWITCHTAG_LEFT | SWITCHTAG_VIEW } },
{ MODKEY|Super, XK_Up, switchtag, { .ui = SWITCHTAG_UP | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
{ MODKEY|Super, XK_Down, switchtag, { .ui = SWITCHTAG_DOWN | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
{ MODKEY|Super, XK_Right, switchtag, { .ui = SWITCHTAG_RIGHT | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
{ MODKEY|Super, XK_Left, switchtag, { .ui = SWITCHTAG_LEFT | SWITCHTAG_TAG | SWITCHTAG_VIEW } },
#endif // BAR_TAGGRID_PATCH
#if MOVEPLACE_PATCH
{ MODKEY, XK_KP_7, moveplace, {.ui = WIN_NW }}, /* XK_KP_Home, */
@ -1099,73 +1108,73 @@ static const Key keys[] = {
{ MODKEY, XK_KP_2, explace, {.ui = EX_S }}, /* XK_KP_Down, */
{ MODKEY, XK_KP_3, explace, {.ui = EX_SE }}, /* XK_KP_Next, */
{ MODKEY|ShiftMask, XK_KP_8, exresize, {.v = (int []){ 0, 25 }}}, /* XK_KP_Up, */
{ MODKEY|ShiftMask, XK_KP_2, exresize, {.v = (int []){ 0, -25 }}}, /* XK_KP_Down, */
{ MODKEY|ShiftMask, XK_KP_6, exresize, {.v = (int []){ 25, 0 }}}, /* XK_KP_Right, */
{ MODKEY|ShiftMask, XK_KP_4, exresize, {.v = (int []){ -25, 0 }}}, /* XK_KP_Left, */
{ MODKEY|ShiftMask, XK_KP_5, exresize, {.v = (int []){ 25, 25 }}}, /* XK_KP_Begin, */
{ MODKEY|ShiftMask|ControlMask, XK_KP_5, exresize, {.v = (int []){ -25, -25 }}}, /* XK_KP_Begin, */
{ MODKEY|Shift, XK_KP_8, exresize, {.v = (int []){ 0, 25 }}}, /* XK_KP_Up, */
{ MODKEY|Shift, XK_KP_2, exresize, {.v = (int []){ 0, -25 }}}, /* XK_KP_Down, */
{ MODKEY|Shift, XK_KP_6, exresize, {.v = (int []){ 25, 0 }}}, /* XK_KP_Right, */
{ MODKEY|Shift, XK_KP_4, exresize, {.v = (int []){ -25, 0 }}}, /* XK_KP_Left, */
{ MODKEY|Shift, XK_KP_5, exresize, {.v = (int []){ 25, 25 }}}, /* XK_KP_Begin, */
{ MODKEY|Shift|Ctrl, XK_KP_5, exresize, {.v = (int []){ -25, -25 }}}, /* XK_KP_Begin, */
{ MODKEY|ControlMask, XK_KP_6, togglehorizontalexpand, {.i = +1} }, /* XK_KP_Right, */
{ MODKEY|ControlMask, XK_KP_3, togglehorizontalexpand, {.i = 0} }, /* XK_KP_Next, */
{ MODKEY|ControlMask, XK_KP_4, togglehorizontalexpand, {.i = -1} }, /* XK_KP_Left, */
{ MODKEY|ControlMask, XK_KP_8, toggleverticalexpand, {.i = +1} }, /* XK_KP_Up, */
{ MODKEY|ControlMask, XK_KP_1, toggleverticalexpand, {.i = 0} }, /* XK_KP_End, */
{ MODKEY|ControlMask, XK_KP_2, toggleverticalexpand, {.i = -1} }, /* XK_KP_Down, */
{ MODKEY|ControlMask, XK_KP_9, togglemaximize, {.i = -1} }, /* XK_KP_Prior, */
{ MODKEY|ControlMask, XK_KP_7, togglemaximize, {.i = +1} }, /* XK_KP_Home, */
{ MODKEY|ControlMask, XK_KP_5, togglemaximize, {.i = 0} }, /* XK_KP_Begin, */
{ MODKEY|Ctrl, XK_KP_6, togglehorizontalexpand, {.i = +1} }, /* XK_KP_Right, */
{ MODKEY|Ctrl, XK_KP_3, togglehorizontalexpand, {.i = 0} }, /* XK_KP_Next, */
{ MODKEY|Ctrl, XK_KP_4, togglehorizontalexpand, {.i = -1} }, /* XK_KP_Left, */
{ MODKEY|Ctrl, XK_KP_8, toggleverticalexpand, {.i = +1} }, /* XK_KP_Up, */
{ MODKEY|Ctrl, XK_KP_1, toggleverticalexpand, {.i = 0} }, /* XK_KP_End, */
{ MODKEY|Ctrl, XK_KP_2, toggleverticalexpand, {.i = -1} }, /* XK_KP_Down, */
{ MODKEY|Ctrl, XK_KP_9, togglemaximize, {.i = -1} }, /* XK_KP_Prior, */
{ MODKEY|Ctrl, XK_KP_7, togglemaximize, {.i = +1} }, /* XK_KP_Home, */
{ MODKEY|Ctrl, XK_KP_5, togglemaximize, {.i = 0} }, /* XK_KP_Begin, */
#endif // EXRESIZE_PATCH
#if FLOATPOS_PATCH
/* Note that due to key limitations the below example kybindings are defined with a Mod3Mask,
/* Note that due to key limitations the below example kybindings are defined with a AltGr,
* which is not always readily available. Refer to the patch wiki for more details. */
/* Client position is limited to monitor window area */
{ Mod3Mask, XK_u, floatpos, {.v = "-26x -26y" } }, // ↖
{ Mod3Mask, XK_i, floatpos, {.v = " 0x -26y" } }, // ↑
{ Mod3Mask, XK_o, floatpos, {.v = " 26x -26y" } }, // ↗
{ Mod3Mask, XK_j, floatpos, {.v = "-26x 0y" } }, // ←
{ Mod3Mask, XK_l, floatpos, {.v = " 26x 0y" } }, // →
{ Mod3Mask, XK_m, floatpos, {.v = "-26x 26y" } }, // ↙
{ Mod3Mask, XK_comma, floatpos, {.v = " 0x 26y" } }, // ↓
{ Mod3Mask, XK_period, floatpos, {.v = " 26x 26y" } }, // ↘
{ AltGr, XK_u, floatpos, {.v = "-26x -26y" } }, // ↖
{ AltGr, XK_i, floatpos, {.v = " 0x -26y" } }, // ↑
{ AltGr, XK_o, floatpos, {.v = " 26x -26y" } }, // ↗
{ AltGr, XK_j, floatpos, {.v = "-26x 0y" } }, // ←
{ AltGr, XK_l, floatpos, {.v = " 26x 0y" } }, // →
{ AltGr, XK_m, floatpos, {.v = "-26x 26y" } }, // ↙
{ AltGr, XK_comma, floatpos, {.v = " 0x 26y" } }, // ↓
{ AltGr, XK_period, floatpos, {.v = " 26x 26y" } }, // ↘
/* Absolute positioning (allows moving windows between monitors) */
{ Mod3Mask|ControlMask, XK_u, floatpos, {.v = "-26a -26a" } }, // ↖
{ Mod3Mask|ControlMask, XK_i, floatpos, {.v = " 0a -26a" } }, // ↑
{ Mod3Mask|ControlMask, XK_o, floatpos, {.v = " 26a -26a" } }, // ↗
{ Mod3Mask|ControlMask, XK_j, floatpos, {.v = "-26a 0a" } }, // ←
{ Mod3Mask|ControlMask, XK_l, floatpos, {.v = " 26a 0a" } }, // →
{ Mod3Mask|ControlMask, XK_m, floatpos, {.v = "-26a 26a" } }, // ↙
{ Mod3Mask|ControlMask, XK_comma, floatpos, {.v = " 0a 26a" } }, // ↓
{ Mod3Mask|ControlMask, XK_period, floatpos, {.v = " 26a 26a" } }, // ↘
{ AltGr|Ctrl, XK_u, floatpos, {.v = "-26a -26a" } }, // ↖
{ AltGr|Ctrl, XK_i, floatpos, {.v = " 0a -26a" } }, // ↑
{ AltGr|Ctrl, XK_o, floatpos, {.v = " 26a -26a" } }, // ↗
{ AltGr|Ctrl, XK_j, floatpos, {.v = "-26a 0a" } }, // ←
{ AltGr|Ctrl, XK_l, floatpos, {.v = " 26a 0a" } }, // →
{ AltGr|Ctrl, XK_m, floatpos, {.v = "-26a 26a" } }, // ↙
{ AltGr|Ctrl, XK_comma, floatpos, {.v = " 0a 26a" } }, // ↓
{ AltGr|Ctrl, XK_period, floatpos, {.v = " 26a 26a" } }, // ↘
/* Resize client, client center position is fixed which means that client expands in all directions */
{ Mod3Mask|ShiftMask, XK_u, floatpos, {.v = "-26w -26h" } }, // ↖
{ Mod3Mask|ShiftMask, XK_i, floatpos, {.v = " 0w -26h" } }, // ↑
{ Mod3Mask|ShiftMask, XK_o, floatpos, {.v = " 26w -26h" } }, // ↗
{ Mod3Mask|ShiftMask, XK_j, floatpos, {.v = "-26w 0h" } }, // ←
{ Mod3Mask|ShiftMask, XK_k, floatpos, {.v = "800W 800H" } }, // ·
{ Mod3Mask|ShiftMask, XK_l, floatpos, {.v = " 26w 0h" } }, // →
{ Mod3Mask|ShiftMask, XK_m, floatpos, {.v = "-26w 26h" } }, // ↙
{ Mod3Mask|ShiftMask, XK_comma, floatpos, {.v = " 0w 26h" } }, // ↓
{ Mod3Mask|ShiftMask, XK_period, floatpos, {.v = " 26w 26h" } }, // ↘
{ AltGr|Shift, XK_u, floatpos, {.v = "-26w -26h" } }, // ↖
{ AltGr|Shift, XK_i, floatpos, {.v = " 0w -26h" } }, // ↑
{ AltGr|Shift, XK_o, floatpos, {.v = " 26w -26h" } }, // ↗
{ AltGr|Shift, XK_j, floatpos, {.v = "-26w 0h" } }, // ←
{ AltGr|Shift, XK_k, floatpos, {.v = "800W 800H" } }, // ·
{ AltGr|Shift, XK_l, floatpos, {.v = " 26w 0h" } }, // →
{ AltGr|Shift, XK_m, floatpos, {.v = "-26w 26h" } }, // ↙
{ AltGr|Shift, XK_comma, floatpos, {.v = " 0w 26h" } }, // ↓
{ AltGr|Shift, XK_period, floatpos, {.v = " 26w 26h" } }, // ↘
/* Client is positioned in a floating grid, movement is relative to client's current position */
{ Mod3Mask|Mod1Mask, XK_u, floatpos, {.v = "-1p -1p" } }, // ↖
{ Mod3Mask|Mod1Mask, XK_i, floatpos, {.v = " 0p -1p" } }, // ↑
{ Mod3Mask|Mod1Mask, XK_o, floatpos, {.v = " 1p -1p" } }, // ↗
{ Mod3Mask|Mod1Mask, XK_j, floatpos, {.v = "-1p 0p" } }, // ←
{ Mod3Mask|Mod1Mask, XK_k, floatpos, {.v = " 0p 0p" } }, // ·
{ Mod3Mask|Mod1Mask, XK_l, floatpos, {.v = " 1p 0p" } }, // →
{ Mod3Mask|Mod1Mask, XK_m, floatpos, {.v = "-1p 1p" } }, // ↙
{ Mod3Mask|Mod1Mask, XK_comma, floatpos, {.v = " 0p 1p" } }, // ↓
{ Mod3Mask|Mod1Mask, XK_period, floatpos, {.v = " 1p 1p" } }, // ↘
{ AltGr|Alt, XK_u, floatpos, {.v = "-1p -1p" } }, // ↖
{ AltGr|Alt, XK_i, floatpos, {.v = " 0p -1p" } }, // ↑
{ AltGr|Alt, XK_o, floatpos, {.v = " 1p -1p" } }, // ↗
{ AltGr|Alt, XK_j, floatpos, {.v = "-1p 0p" } }, // ←
{ AltGr|Alt, XK_k, floatpos, {.v = " 0p 0p" } }, // ·
{ AltGr|Alt, XK_l, floatpos, {.v = " 1p 0p" } }, // →
{ AltGr|Alt, XK_m, floatpos, {.v = "-1p 1p" } }, // ↙
{ AltGr|Alt, XK_comma, floatpos, {.v = " 0p 1p" } }, // ↓
{ AltGr|Alt, XK_period, floatpos, {.v = " 1p 1p" } }, // ↘
#endif // FLOATPOS_PATCH
#if SETBORDERPX_PATCH
{ MODKEY|ControlMask, XK_minus, setborderpx, {.i = -1 } },
{ MODKEY|ControlMask, XK_plus, setborderpx, {.i = +1 } },
{ MODKEY|ControlMask, XK_numbersign, setborderpx, {.i = 0 } },
{ MODKEY|Ctrl, XK_minus, setborderpx, {.i = -1 } },
{ MODKEY|Ctrl, XK_plus, setborderpx, {.i = +1 } },
{ MODKEY|Ctrl, XK_numbersign, setborderpx, {.i = 0 } },
#endif // SETBORDERPX_PATCH
#if CYCLELAYOUTS_PATCH
{ MODKEY|ControlMask, XK_comma, cyclelayout, {.i = -1 } },
{ MODKEY|ControlMask, XK_period, cyclelayout, {.i = +1 } },
{ MODKEY|Ctrl, XK_comma, cyclelayout, {.i = -1 } },
{ MODKEY|Ctrl, XK_period, cyclelayout, {.i = +1 } },
#endif // CYCLELAYOUTS_PATCH
#if MPDCONTROL_PATCH
{ MODKEY, XK_F1, mpdchange, {.i = -1} },
@ -1187,25 +1196,25 @@ static const Key keys[] = {
static const Key cmdkeys[] = {
/* modifier keys function argument */
{ 0, XK_Escape, clearcmd, {0} },
{ ControlMask, XK_c, clearcmd, {0} },
{ Ctrl, XK_c, clearcmd, {0} },
{ 0, XK_i, setkeymode, {.ui = INSERTMODE} },
};
static const Command commands[] = {
/* modifier (4 keys) keysyms (4 keys) function argument */
{ {ControlMask, ShiftMask, 0, 0}, {XK_w, XK_h, 0, 0}, setlayout, {.v = &layouts[0]} },
{ {ControlMask, 0, 0, 0}, {XK_w, XK_o, 0, 0}, setlayout, {.v = &layouts[2]} },
{ {ControlMask, ShiftMask, 0, 0}, {XK_w, XK_o, 0, 0}, onlyclient, {0} },
{ {ControlMask, 0, 0, 0}, {XK_w, XK_v, 0, 0}, setlayout, {.v = &layouts[0]} },
{ {ControlMask, 0, 0, 0}, {XK_w, XK_less, 0, 0}, setmfact, {.f = -0.05} },
{ {ControlMask, ShiftMask, 0, 0}, {XK_w, XK_less, 0, 0}, setmfact, {.f = +0.05} },
{ {ControlMask, ShiftMask, 0, 0}, {XK_w, XK_0, 0, 0}, setmfact, {.f = +1.50} },
{ {ShiftMask, 0, 0, 0}, {XK_period, XK_e, 0, 0}, spawn, {.v = dmenucmd} },
{ {ShiftMask, 0, 0, 0}, {XK_period, XK_o, 0, 0}, spawn, {.v = dmenucmd} },
{ {ShiftMask, 0, 0, 0}, {XK_period, XK_q, XK_Return, 0}, quit, {0} },
{ {ShiftMask, 0, 0, 0}, {XK_period, XK_b, XK_d, XK_Return}, killclient, {0} },
{ {ShiftMask, 0, 0, 0}, {XK_period, XK_b, XK_n, XK_Return}, focusstack, {.i = +1} },
{ {ShiftMask, 0, ShiftMask, 0}, {XK_period, XK_b, XK_n, XK_Return}, focusstack, {.i = -1} },
/* modifier (4 keys) keysyms (4 keys) function argument */
{ {Ctrl, Shift, 0, 0}, {XK_w, XK_h, 0, 0}, setlayout, {.v = &layouts[0]} },
{ {Ctrl, 0, 0, 0}, {XK_w, XK_o, 0, 0}, setlayout, {.v = &layouts[2]} },
{ {Ctrl, Shift, 0, 0}, {XK_w, XK_o, 0, 0}, onlyclient, {0} },
{ {Ctrl, 0, 0, 0}, {XK_w, XK_v, 0, 0}, setlayout, {.v = &layouts[0]} },
{ {Ctrl, 0, 0, 0}, {XK_w, XK_less, 0, 0}, setmfact, {.f = -0.05} },
{ {Ctrl, Shift, 0, 0}, {XK_w, XK_less, 0, 0}, setmfact, {.f = +0.05} },
{ {Ctrl, Shift, 0, 0}, {XK_w, XK_0, 0, 0}, setmfact, {.f = +1.50} },
{ {Shift, 0, 0, 0}, {XK_period, XK_e, 0, 0}, spawn, {.v = dmenucmd} },
{ {Shift, 0, 0, 0}, {XK_period, XK_o, 0, 0}, spawn, {.v = dmenucmd} },
{ {Shift, 0, 0, 0}, {XK_period, XK_q, XK_Return, 0}, quit, {0} },
{ {Shift, 0, 0, 0}, {XK_period, XK_b, XK_d, XK_Return}, killclient, {0} },
{ {Shift, 0, 0, 0}, {XK_period, XK_b, XK_n, XK_Return}, focusstack, {.i = +1} },
{ {Shift, 0, Shift, 0}, {XK_period, XK_b, XK_n, XK_Return}, focusstack, {.i = -1} },
};
#endif // KEYMODES_PATCH
@ -1266,10 +1275,10 @@ static const Button buttons[] = {
{ ClkClientWin, MODKEY, Button7, resizemousescroll, {.v = &scrollargs[3]} },
#endif // TAPRESIZE_PATCH
#if DRAGCFACT_PATCH && CFACTS_PATCH
{ ClkClientWin, MODKEY|ShiftMask, Button3, dragcfact, {0} },
{ ClkClientWin, MODKEY|Shift, Button3, dragcfact, {0} },
#endif // DRAGCFACT_PATCH
#if DRAGMFACT_PATCH
{ ClkClientWin, MODKEY|ShiftMask, Button1, dragmfact, {0} },
{ ClkClientWin, MODKEY|Shift, Button1, dragmfact, {0} },
#endif // DRAGMFACT_PATCH
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },

Loading…
Cancel
Save