From 931c3c105c82bec845cd1ea2b5735bbac64236cc Mon Sep 17 00:00:00 2001 From: Arthur Khachaturov Date: Thu, 1 Aug 2024 02:07:04 +0300 Subject: [PATCH] chore: better keybinds? --- config.h | 36 ++++++++++++++---------------------- dwm.c | 9 +++++++++ 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/config.h b/config.h index 9d12078..9514d54 100644 --- a/config.h +++ b/config.h @@ -76,6 +76,7 @@ static const Layout layouts[] = { { MODKEY|ControlMask, KEY, tag, {.ui = 1 << TAG} }, \ { MODKEY|Mod1Mask, KEY, toggletag, {.ui = 1 << TAG} }, \ { MODKEY|ControlMask|ShiftMask, KEY, toggleview, {.ui = 1 << TAG} }, \ + { MODKEY|Mod1Mask|ControlMask, KEY, tagmetaws, {.i = TAG} }, #define SHCMD(...) { .v = (const char*[]){ __VA_ARGS__, NULL } } @@ -91,43 +92,34 @@ static const Key keys[] = { // movement // { MODKEY|ShiftMask, XK_l, incnmaster, {.i = +1 } }, // { MODKEY|ShiftMask, XK_h, incnmaster, {.i = -1 } }, - { MODKEY, XK_d, spawn, {.v = dmenucmd } }, + { MODKEY, XK_d, spawn, {.v = dmenucmd } }, { MODKEY, XK_Return, spawn, {.v = termcmd } }, - { MODKEY, XK_b, togglebar, {0} }, + { MODKEY|ShiftMask, XK_b, togglebar, {0} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_n, setmfact, {.f = -0.05} }, { MODKEY, XK_m, setmfact, {.f = +0.05} }, { MODKEY, XK_c, zoom, {0} }, - { MODKEY, XK_Tab, view, {0} }, { MODKEY, XK_q, killclient, {0} }, // layout - { MODKEY, XK_u, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_y, setlayout, {.v = &layouts[1]} }, + { MODKEY|ControlMask, XK_u, setlayout, {.v = &layouts[0]} }, + { MODKEY|ControlMask|ShiftMask, XK_u, setlayout, {.v = &layouts[1]} }, { MODKEY|ControlMask, XK_m, setlayout, {.v = &layouts[2]} }, { MODKEY|ControlMask|ShiftMask, XK_m, setlayout, {.v = &layouts[3]} }, { MODKEY, XK_f, togglefullscr, {0} }, - { MODKEY|ShiftMask, XK_f, togglefloating, {0} }, + { MODKEY|ShiftMask, XK_f, togglefloating, {0} }, { MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } }, { MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } }, { MODKEY, XK_0, view, {.ui = ~0 } }, { MODKEY|ControlMask, XK_0, tag, {.ui = ~0 } }, - { MODKEY, XK_p, invertdir, {0} }, + { MODKEY|ControlMask, XK_p, invertdir, {0} }, // metaws - { MODKEY, XK_Page_Up, traversemetaws, {.i = +1} }, - { MODKEY, XK_Page_Down, traversemetaws, {.i = -1} }, - { MODKEY|Mod1Mask, XK_h, viewmetaws, {.ui = 0} }, - { MODKEY|Mod1Mask, XK_j, viewmetaws, {.ui = 1} }, - { MODKEY|Mod1Mask, XK_k, viewmetaws, {.ui = 2} }, - { MODKEY|Mod1Mask, XK_l, viewmetaws, {.ui = 3} }, - - { MODKEY|Mod1Mask|ControlMask, XK_h, tagmetaws, {.i = 0} }, - { MODKEY|Mod1Mask|ControlMask, XK_j, tagmetaws, {.i = 1} }, - { MODKEY|Mod1Mask|ControlMask, XK_k, tagmetaws, {.i = 2} }, - { MODKEY|Mod1Mask|ControlMask, XK_l, tagmetaws, {.i = 3} }, - { MODKEY|Mod1Mask|ControlMask, XK_m, tagmetaws, {.i = -1} }, + { MODKEY, XK_Tab, traversemetaws, {.i = +1} }, + { MODKEY|ShiftMask, XK_Tab, traversemetaws, {.i = -1} }, + { MODKEY|Mod1Mask, XK_i, movemetaws, {.i = +1} }, + { MODKEY|Mod1Mask, XK_u, movemetaws, {.i = -1} }, // apps { MODKEY, XK_w, spawn, SHCMD("firefox") }, @@ -136,11 +128,11 @@ static const Key keys[] = { { MODKEY|ShiftMask, XK_s, spawn, SHCMD("flameshot", "gui") }, { MODKEY, XK_i, spawn, SHCMD("dunstctl", "history-pop") }, { MODKEY, XK_o, spawn, SHCMD("dunstctl", "close") }, - { MODKEY|ShiftMask, XK_i, spawn, SHCMD("dunstctl", "set-paused", "false") }, - { MODKEY|ShiftMask, XK_o, spawn, SHCMD("dunstctl", "set-paused", "true") }, + { MODKEY|ControlMask, XK_i, spawn, SHCMD("dunstctl", "set-paused", "false") }, + { MODKEY|ControlMask, XK_o, spawn, SHCMD("dunstctl", "set-paused", "true") }, { MODKEY|ShiftMask, XK_r, spawn, SHCMD("xr") }, { MODKEY, XK_x, spawn, SHCMD("vesktop") }, - { MODKEY, XK_v, spawn, SHCMD("vpn", "-d", "--visual") }, + { MODKEY|ControlMask, XK_v, spawn, SHCMD("vpn", "-d", "--visual") }, { MODKEY|ShiftMask, XK_v, spawn, SHCMD("vpn", "--visual") }, // tags diff --git a/dwm.c b/dwm.c index 0ac08be..d873ee5 100644 --- a/dwm.c +++ b/dwm.c @@ -205,6 +205,7 @@ static void maprequest(XEvent *e); static void monocle(Monitor *m); static void motionnotify(XEvent *e); static void movemouse(const Arg *arg); +static void movemetaws(const Arg *arg); static Client *nexttiled(Client *c); static void pop(Client *c); static void propertynotify(XEvent *e); @@ -1311,6 +1312,13 @@ motionnotify(XEvent *e) mon = m; } +void +movemetaws(const Arg *arg) +{ + const Arg a = {.i = (metaws + arg->i + LENGTH(metaworkspaces)) % LENGTH(metaworkspaces)}; + tagmetaws(&a); +} + void movemouse(const Arg *arg) { @@ -1931,6 +1939,7 @@ tagmetaws(const Arg *arg) selmon->sel->tags[i] = 0; selmon->sel->tags[arg->i] = ot; } + focus(NULL); arrange(selmon); }