local: letter tags and mod semicolon chords

This commit is contained in:
lupan committed 2026-10-19 09:26:06 +02:00
1 parent 9610f461c2
commit 2adf18bee6
2 files changed
+66 -56

No files matched your search

+33 -28
View File
@@ -30,7 +30,7 @@ static const char *colorslight[][3] = {
}; };
/* tagging */ /* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; static const char *tags[] = { "q", "w", "e", "r", "t", "a", "s", "d", "f", "g", "z", "x", "c", "v", "b" };
static const Rule rules[] = { static const Rule rules[] = {
/* xprop(1): /* xprop(1):
@@ -85,18 +85,17 @@ static Keychord *keychords[] = {
/* Keys function argument */ /* Keys function argument */
&((Keychord){1, {{MODKEY, XK_p}}, spawndmenu, {0} }), &((Keychord){1, {{MODKEY, XK_p}}, spawndmenu, {0} }),
&((Keychord){1, {{MODKEY, XK_u}}, shiftview, { .i = +1 } }), &((Keychord){1, {{MODKEY, XK_u}}, shiftview, { .i = +1 } }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_u}}, shifttag, { .i = +1 } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_u}}, shifttag, { .i = +1 } }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_y}}, shifttag, { .i = -1 } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_y}}, shifttag, { .i = -1 } }),
&((Keychord){1, {{MODKEY, XK_y}}, shiftview, { .i = -1 } }), &((Keychord){1, {{MODKEY, XK_y}}, shiftview, { .i = -1 } }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_Return}}, spawn, {.v = termcmd } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_Return}}, spawn, {.v = termcmd } }),
&((Keychord){2, {{MODKEY, XK_e}, {MODKEY, XK_e}}, spawn, {.v = termcmd } }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_b}}, togglebar, {0} }),
&((Keychord){1, {{MODKEY, XK_b}}, togglebar, {0} }),
&((Keychord){1, {{MODKEY, XK_j}}, focusstackvis, {.i = +1 } }), &((Keychord){1, {{MODKEY, XK_j}}, focusstackvis, {.i = +1 } }),
&((Keychord){1, {{MODKEY, XK_k}}, focusstackvis, {.i = -1 } }), &((Keychord){1, {{MODKEY, XK_k}}, focusstackvis, {.i = -1 } }),
&((Keychord){1, {{MODKEY|ControlMask, XK_j}}, focusstackhid, {.i = +1 } }), &((Keychord){1, {{MODKEY|ControlMask, XK_j}}, focusstackhid, {.i = +1 } }),
&((Keychord){1, {{MODKEY|ControlMask, XK_k}}, focusstackhid, {.i = -1 } }), &((Keychord){1, {{MODKEY|ControlMask, XK_k}}, focusstackhid, {.i = -1 } }),
&((Keychord){1, {{MODKEY, XK_i}}, incnmaster, {.i = +1 } }), &((Keychord){1, {{MODKEY, XK_i}}, incnmaster, {.i = +1 } }),
&((Keychord){1, {{MODKEY, XK_d}}, incnmaster, {.i = -1 } }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_d}}, incnmaster, {.i = -1 } }),
&((Keychord){1, {{MODKEY, XK_h}}, setmfact, {.f = -0.05} }), &((Keychord){1, {{MODKEY, XK_h}}, setmfact, {.f = -0.05} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_h}}, shiftboth, {.i = -1} }), &((Keychord){1, {{MODKEY|ShiftMask, XK_h}}, shiftboth, {.i = -1} }),
&((Keychord){1, {{MODKEY|ControlMask, XK_h}}, shiftswaptags, {.i = -1} }), &((Keychord){1, {{MODKEY|ControlMask, XK_h}}, shiftswaptags, {.i = -1} }),
@@ -107,12 +106,12 @@ static Keychord *keychords[] = {
&((Keychord){1, {{MODKEY|ShiftMask, XK_k}}, movestack, {.i = -1 } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_k}}, movestack, {.i = -1 } }),
&((Keychord){1, {{MODKEY, XK_Return}}, zoom, {0} }), &((Keychord){1, {{MODKEY, XK_Return}}, zoom, {0} }),
&((Keychord){1, {{MODKEY, XK_Tab}}, view, {0} }), &((Keychord){1, {{MODKEY, XK_Tab}}, view, {0} }),
&((Keychord){1, {{MODKEY, XK_w}}, goback, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_w}}, goback, {0} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_c}}, killclient, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ShiftMask, XK_c}}, killclient, {0} }),
&((Keychord){1, {{MODKEY, XK_t}}, setlayout, {.v = &layouts[0]} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_t}}, setlayout, {.v = &layouts[0]} }),
&((Keychord){1, {{MODKEY, XK_f}}, setlayout, {.v = &layouts[1]} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_f}}, setlayout, {.v = &layouts[1]} }),
&((Keychord){1, {{MODKEY, XK_m}}, setlayout, {.v = &layouts[2]} }), &((Keychord){1, {{MODKEY, XK_m}}, setlayout, {.v = &layouts[2]} }),
&((Keychord){1, {{MODKEY, XK_g}}, setlayout, {.v = &layouts[3]} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_g}}, setlayout, {.v = &layouts[3]} }),
&((Keychord){1, {{MODKEY, XK_space}}, setlayout, {0} }), &((Keychord){1, {{MODKEY, XK_space}}, setlayout, {0} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_space}}, togglefloating, {0} }), &((Keychord){1, {{MODKEY|ShiftMask, XK_space}}, togglefloating, {0} }),
&((Keychord){1, {{MODKEY, XK_0}}, view, {.ui = ~0 } }), &((Keychord){1, {{MODKEY, XK_0}}, view, {.ui = ~0 } }),
@@ -123,25 +122,31 @@ static Keychord *keychords[] = {
&((Keychord){1, {{MODKEY|ShiftMask, XK_period}}, tagmon, {.i = +1 } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_period}}, tagmon, {.i = +1 } }),
&((Keychord){1, {{MODKEY, XK_s}}, show, {0} }), &((Keychord){1, {{MODKEY, XK_s}}, show, {0} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_s}}, showall, {0} }), &((Keychord){1, {{MODKEY|ShiftMask, XK_s}}, showall, {0} }),
&((Keychord){1, {{MODKEY|ControlMask, XK_s}}, hide, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ControlMask, XK_s}}, hide, {0} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_q}}, quit, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ShiftMask, XK_q}}, quit, {0} }),
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_q}}, quit, {1} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ControlMask|ShiftMask, XK_q}}, quit, {1} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_e}}, exitdwm, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ShiftMask, XK_e}}, exitdwm, {0} }),
&((Keychord){1, {{MODKEY, XK_o}}, winview, {0} }), &((Keychord){1, {{MODKEY, XK_o}}, winview, {0} }),
&((Keychord){1, {{MODKEY, XK_a}}, gridall, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_a}}, gridall, {0} }),
&((Keychord){1, {{MODKEY, XK_r}}, winviewmono, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_r}}, winviewmono, {0} }),
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_s}}, spawn, {.v = suspendcmd } }), &((Keychord){2, {{MODKEY, XK_semicolon}, {ControlMask|ShiftMask, XK_s}}, spawn, {.v = suspendcmd } }),
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_l}}, spawn, {.v = lockcmd } }), &((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_l}}, spawn, {.v = lockcmd } }),
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_t}}, spawn, {.v = themecmd } }), &((Keychord){2, {{MODKEY, XK_semicolon}, {ControlMask|ShiftMask, XK_t}}, spawn, {.v = themecmd } }),
TAGKEYS( XK_1, 0) TAGKEYS( XK_q, 0)
TAGKEYS( XK_2, 1) TAGKEYS( XK_w, 1)
TAGKEYS( XK_3, 2) TAGKEYS( XK_e, 2)
TAGKEYS( XK_4, 3) TAGKEYS( XK_r, 3)
TAGKEYS( XK_5, 4) TAGKEYS( XK_t, 4)
TAGKEYS( XK_6, 5) TAGKEYS( XK_a, 5)
TAGKEYS( XK_7, 6) TAGKEYS( XK_s, 6)
TAGKEYS( XK_8, 7) TAGKEYS( XK_d, 7)
TAGKEYS( XK_9, 8) TAGKEYS( XK_f, 8)
TAGKEYS( XK_g, 9)
TAGKEYS( XK_z, 10)
TAGKEYS( XK_x, 11)
TAGKEYS( XK_c, 12)
TAGKEYS( XK_v, 13)
TAGKEYS( XK_b, 14)
&((Keychord){1, {{ ControlMask, XK_1}}, focusbynum, {.i = 0} }), &((Keychord){1, {{ ControlMask, XK_1}}, focusbynum, {.i = 0} }),
&((Keychord){1, {{ ControlMask, XK_2}}, focusbynum, {.i = 1} }), &((Keychord){1, {{ ControlMask, XK_2}}, focusbynum, {.i = 1} }),
&((Keychord){1, {{ ControlMask, XK_3}}, focusbynum, {.i = 2} }), &((Keychord){1, {{ ControlMask, XK_3}}, focusbynum, {.i = 2} }),
+33 -28
View File
@@ -30,7 +30,7 @@ static const char *colorslight[][3] = {
}; };
/* tagging */ /* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; static const char *tags[] = { "q", "w", "e", "r", "t", "a", "s", "d", "f", "g", "z", "x", "c", "v", "b" };
static const Rule rules[] = { static const Rule rules[] = {
/* xprop(1): /* xprop(1):
@@ -85,18 +85,17 @@ static Keychord *keychords[] = {
/* Keys function argument */ /* Keys function argument */
&((Keychord){1, {{MODKEY, XK_p}}, spawndmenu, {0} }), &((Keychord){1, {{MODKEY, XK_p}}, spawndmenu, {0} }),
&((Keychord){1, {{MODKEY, XK_u}}, shiftview, { .i = +1 } }), &((Keychord){1, {{MODKEY, XK_u}}, shiftview, { .i = +1 } }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_u}}, shifttag, { .i = +1 } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_u}}, shifttag, { .i = +1 } }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_y}}, shifttag, { .i = -1 } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_y}}, shifttag, { .i = -1 } }),
&((Keychord){1, {{MODKEY, XK_y}}, shiftview, { .i = -1 } }), &((Keychord){1, {{MODKEY, XK_y}}, shiftview, { .i = -1 } }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_Return}}, spawn, {.v = termcmd } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_Return}}, spawn, {.v = termcmd } }),
&((Keychord){2, {{MODKEY, XK_e}, {MODKEY, XK_e}}, spawn, {.v = termcmd } }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_b}}, togglebar, {0} }),
&((Keychord){1, {{MODKEY, XK_b}}, togglebar, {0} }),
&((Keychord){1, {{MODKEY, XK_j}}, focusstackvis, {.i = +1 } }), &((Keychord){1, {{MODKEY, XK_j}}, focusstackvis, {.i = +1 } }),
&((Keychord){1, {{MODKEY, XK_k}}, focusstackvis, {.i = -1 } }), &((Keychord){1, {{MODKEY, XK_k}}, focusstackvis, {.i = -1 } }),
&((Keychord){1, {{MODKEY|ControlMask, XK_j}}, focusstackhid, {.i = +1 } }), &((Keychord){1, {{MODKEY|ControlMask, XK_j}}, focusstackhid, {.i = +1 } }),
&((Keychord){1, {{MODKEY|ControlMask, XK_k}}, focusstackhid, {.i = -1 } }), &((Keychord){1, {{MODKEY|ControlMask, XK_k}}, focusstackhid, {.i = -1 } }),
&((Keychord){1, {{MODKEY, XK_i}}, incnmaster, {.i = +1 } }), &((Keychord){1, {{MODKEY, XK_i}}, incnmaster, {.i = +1 } }),
&((Keychord){1, {{MODKEY, XK_d}}, incnmaster, {.i = -1 } }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_d}}, incnmaster, {.i = -1 } }),
&((Keychord){1, {{MODKEY, XK_h}}, setmfact, {.f = -0.05} }), &((Keychord){1, {{MODKEY, XK_h}}, setmfact, {.f = -0.05} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_h}}, shiftboth, {.i = -1} }), &((Keychord){1, {{MODKEY|ShiftMask, XK_h}}, shiftboth, {.i = -1} }),
&((Keychord){1, {{MODKEY|ControlMask, XK_h}}, shiftswaptags, {.i = -1} }), &((Keychord){1, {{MODKEY|ControlMask, XK_h}}, shiftswaptags, {.i = -1} }),
@@ -107,12 +106,12 @@ static Keychord *keychords[] = {
&((Keychord){1, {{MODKEY|ShiftMask, XK_k}}, movestack, {.i = -1 } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_k}}, movestack, {.i = -1 } }),
&((Keychord){1, {{MODKEY, XK_Return}}, zoom, {0} }), &((Keychord){1, {{MODKEY, XK_Return}}, zoom, {0} }),
&((Keychord){1, {{MODKEY, XK_Tab}}, view, {0} }), &((Keychord){1, {{MODKEY, XK_Tab}}, view, {0} }),
&((Keychord){1, {{MODKEY, XK_w}}, goback, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_w}}, goback, {0} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_c}}, killclient, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ShiftMask, XK_c}}, killclient, {0} }),
&((Keychord){1, {{MODKEY, XK_t}}, setlayout, {.v = &layouts[0]} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_t}}, setlayout, {.v = &layouts[0]} }),
&((Keychord){1, {{MODKEY, XK_f}}, setlayout, {.v = &layouts[1]} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_f}}, setlayout, {.v = &layouts[1]} }),
&((Keychord){1, {{MODKEY, XK_m}}, setlayout, {.v = &layouts[2]} }), &((Keychord){1, {{MODKEY, XK_m}}, setlayout, {.v = &layouts[2]} }),
&((Keychord){1, {{MODKEY, XK_g}}, setlayout, {.v = &layouts[3]} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_g}}, setlayout, {.v = &layouts[3]} }),
&((Keychord){1, {{MODKEY, XK_space}}, setlayout, {0} }), &((Keychord){1, {{MODKEY, XK_space}}, setlayout, {0} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_space}}, togglefloating, {0} }), &((Keychord){1, {{MODKEY|ShiftMask, XK_space}}, togglefloating, {0} }),
&((Keychord){1, {{MODKEY, XK_0}}, view, {.ui = ~0 } }), &((Keychord){1, {{MODKEY, XK_0}}, view, {.ui = ~0 } }),
@@ -123,25 +122,31 @@ static Keychord *keychords[] = {
&((Keychord){1, {{MODKEY|ShiftMask, XK_period}}, tagmon, {.i = +1 } }), &((Keychord){1, {{MODKEY|ShiftMask, XK_period}}, tagmon, {.i = +1 } }),
&((Keychord){1, {{MODKEY, XK_s}}, show, {0} }), &((Keychord){1, {{MODKEY, XK_s}}, show, {0} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_s}}, showall, {0} }), &((Keychord){1, {{MODKEY|ShiftMask, XK_s}}, showall, {0} }),
&((Keychord){1, {{MODKEY|ControlMask, XK_s}}, hide, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ControlMask, XK_s}}, hide, {0} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_q}}, quit, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ShiftMask, XK_q}}, quit, {0} }),
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_q}}, quit, {1} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ControlMask|ShiftMask, XK_q}}, quit, {1} }),
&((Keychord){1, {{MODKEY|ShiftMask, XK_e}}, exitdwm, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {MODKEY|ShiftMask, XK_e}}, exitdwm, {0} }),
&((Keychord){1, {{MODKEY, XK_o}}, winview, {0} }), &((Keychord){1, {{MODKEY, XK_o}}, winview, {0} }),
&((Keychord){1, {{MODKEY, XK_a}}, gridall, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_a}}, gridall, {0} }),
&((Keychord){1, {{MODKEY, XK_r}}, winviewmono, {0} }), &((Keychord){2, {{MODKEY, XK_semicolon}, {0, XK_r}}, winviewmono, {0} }),
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_s}}, spawn, {.v = suspendcmd } }), &((Keychord){2, {{MODKEY, XK_semicolon}, {ControlMask|ShiftMask, XK_s}}, spawn, {.v = suspendcmd } }),
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_l}}, spawn, {.v = lockcmd } }), &((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_l}}, spawn, {.v = lockcmd } }),
&((Keychord){1, {{MODKEY|ControlMask|ShiftMask, XK_t}}, spawn, {.v = themecmd } }), &((Keychord){2, {{MODKEY, XK_semicolon}, {ControlMask|ShiftMask, XK_t}}, spawn, {.v = themecmd } }),
TAGKEYS( XK_1, 0) TAGKEYS( XK_q, 0)
TAGKEYS( XK_2, 1) TAGKEYS( XK_w, 1)
TAGKEYS( XK_3, 2) TAGKEYS( XK_e, 2)
TAGKEYS( XK_4, 3) TAGKEYS( XK_r, 3)
TAGKEYS( XK_5, 4) TAGKEYS( XK_t, 4)
TAGKEYS( XK_6, 5) TAGKEYS( XK_a, 5)
TAGKEYS( XK_7, 6) TAGKEYS( XK_s, 6)
TAGKEYS( XK_8, 7) TAGKEYS( XK_d, 7)
TAGKEYS( XK_9, 8) TAGKEYS( XK_f, 8)
TAGKEYS( XK_g, 9)
TAGKEYS( XK_z, 10)
TAGKEYS( XK_x, 11)
TAGKEYS( XK_c, 12)
TAGKEYS( XK_v, 13)
TAGKEYS( XK_b, 14)
&((Keychord){1, {{ ControlMask, XK_1}}, focusbynum, {.i = 0} }), &((Keychord){1, {{ ControlMask, XK_1}}, focusbynum, {.i = 0} }),
&((Keychord){1, {{ ControlMask, XK_2}}, focusbynum, {.i = 1} }), &((Keychord){1, {{ ControlMask, XK_2}}, focusbynum, {.i = 1} }),
&((Keychord){1, {{ ControlMask, XK_3}}, focusbynum, {.i = 2} }), &((Keychord){1, {{ ControlMask, XK_3}}, focusbynum, {.i = 2} }),