--- config.def.h 2023-01-21 07:22:27.659019476 -0300 +++ config_patched.h 2023-01-21 07:22:19.669437199 -0300 @@ -50,6 +50,7 @@ static const Layout layouts[] = { { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ + { Mod4Mask, KEY, movewithtag, {.ui = 1 << TAG} }, \ /* change the key to Mod1Mask if MODKEY is defined to Mod4Mask above */ { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, /* helper for spawning shell commands in the pre dwm-5.0 fashion */ --- dwm.c 2023-01-21 07:17:05.453254514 -0300 +++ dwm_patched.h 2023-01-21 07:24:10.998189290 -0300 @@ -208,6 +208,7 @@ static void showhide(Client *c); static void sigchld(int unused); static void spawn(const Arg *arg); static void tag(const Arg *arg); +static void movewithtag(const Arg *arg); static void tagmon(const Arg *arg); static void tile(Monitor *m); static void togglebar(const Arg *arg); @@ -1670,6 +1671,18 @@ tag(const Arg *arg) } } +void +movewithtag(const Arg *arg) +{ + if (selmon->sel && arg->ui & TAGMASK) { + selmon->sel->tags = arg->ui & TAGMASK; + focus(NULL); + arrange(selmon); + if((arg->ui & TAGMASK) != TAGMASK) + view(arg); + } +} + void tagmon(const Arg *arg) {