diff --git a/config.h b/config.h index 54b36cf..7964817 100644 --- a/config.h +++ b/config.h @@ -72,20 +72,21 @@ static const Layout layouts[] = { /* key definitions */ #define MODKEY Mod4Mask +#define AltMask Mod1Mask + #define TAGKEYS(KEY,TAG) \ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ { MODKEY|ShiftMask, KEY, tagview, {.ui = 1 << TAG} }, \ { MODKEY|ControlMask, KEY, tag, {.ui = 1 << TAG} }, \ - { MODKEY|Mod1Mask, KEY, toggletag, {.ui = 1 << TAG} }, \ + { MODKEY|AltMask, KEY, toggletag, {.ui = 1 << TAG} }, \ { MODKEY|ControlMask|ShiftMask, KEY, toggleview, {.ui = 1 << TAG} }, \ - { MODKEY|Mod1Mask|ControlMask, KEY, tagmetaws, {.i = TAG} }, \ - { MODKEY|Mod1Mask|ShiftMask|ControlMask, KEY, tagviewmetaws, {.i = TAG} }, + { AltMask, KEY, viewmetaws, {.ui = TAG} }, \ + { AltMask|ShiftMask, KEY, tagviewmetaws, {.ui = TAG} }, \ + { AltMask|ControlMask, KEY, tagmetaws, {.ui = TAG} }, \ #define SHCMD(...) { .v = (const char*[]){ __VA_ARGS__, NULL } } /* commands */ -static char dmenumon[2] = "0"; -// static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_accent, "-sf", col_gray4, NULL }; static const char *dmenucmd[] = { "dmenu_run", NULL }; static const char *termcmd[] = { "alacritty", NULL }; @@ -118,32 +119,26 @@ static const Key keys[] = { { MODKEY|ControlMask, XK_0, tag, {.ui = ~0 } }, { MODKEY|ControlMask, XK_p, invertdir, {0} }, - // metaws - { MODKEY|Mod1Mask, XK_i, traversemetaws, {.i = +1} }, - { MODKEY|Mod1Mask, XK_u, traversemetaws, {.i = -1} }, - { MODKEY|Mod1Mask, XK_m, tagmetaws, {.i = -1} }, - { MODKEY|ControlMask|Mod1Mask, XK_i, moveviewmetaws, {.i = +1} }, - { MODKEY|ControlMask|Mod1Mask, XK_u, moveviewmetaws, {.i = -1} }, - - { MODKEY|ShiftMask|ControlMask|Mod1Mask, XK_i, movemetaws, {.i = +1} }, - { MODKEY|ShiftMask|ControlMask|Mod1Mask, XK_u, movemetaws, {.i = -1} }, - // apps { MODKEY, XK_w, spawn, SHCMD("firefox") }, - { MODKEY|ShiftMask, XK_p, spawn, SHCMD("cast") }, { MODKEY, XK_t, spawn, SHCMD("ayugram-desktop") }, { MODKEY|ShiftMask, XK_s, spawn, SHCMD("flameshot", "gui") }, + { MODKEY|ShiftMask, XK_r, spawn, SHCMD("xr") }, + + // dunst { MODKEY, XK_i, spawn, SHCMD("dunstctl", "history-pop") }, { MODKEY, XK_o, spawn, SHCMD("dunstctl", "close") }, { MODKEY|ControlMask, XK_i, spawn, SHCMD("dunstctl", "set-paused", "false") }, { MODKEY|ControlMask, XK_o, spawn, SHCMD("dunstctl", "set-paused", "true") }, { MODKEY|ShiftMask, XK_i, spawn, SHCMD("dunstctl", "context") }, { MODKEY|ShiftMask, XK_o, spawn, SHCMD("dunstctl", "action") }, - { MODKEY|ShiftMask, XK_r, spawn, SHCMD("xr") }, - { MODKEY, XK_x, spawn, SHCMD("vesktop") }, + + // vpn { MODKEY, XK_v, spawn, SHCMD("vpn", "msk") }, { MODKEY|ControlMask, XK_v, spawn, SHCMD("vpn", "-d") }, { MODKEY|ShiftMask, XK_v, spawn, SHCMD("vpn") }, + { MODKEY|AltMask, XK_v, spawn, SHCMD("vpn", "-d", "msk") }, + // volume { MODKEY|ShiftMask, XK_Up, spawn, SHCMD("volume", "+1") }, { MODKEY|ShiftMask, XK_Down, spawn, SHCMD("volume", "-1") }, { MODKEY, XK_Up, spawn, SHCMD("volume", "+5") }, @@ -182,9 +177,9 @@ static const Button buttons[] = { { ClkTagBar, 0, Button1, view, {0} }, { ClkTagBar, ShiftMask, Button1, tagview, {0} }, { ClkTagBar, ControlMask, Button1, tag, {0} }, - { ClkTagBar, Mod1Mask, Button1, toggletag, {0} }, + { ClkTagBar, AltMask, Button1, toggletag, {0} }, { ClkTagBar, ControlMask|ShiftMask, Button1, toggleview, {0} }, - { ClkMwSymbol, 0, Button1, traversemetaws, {.i = +1} }, - { ClkMwSymbol, 0, Button3, traversemetaws, {.i = -1} }, + { ClkMwSymbol, 0, Button1, cyclemetaws, {.i = +1} }, + { ClkMwSymbol, 0, Button3, cyclemetaws, {.i = -1} }, }; diff --git a/dwm.c b/dwm.c index 6454c79..349744f 100644 --- a/dwm.c +++ b/dwm.c @@ -179,6 +179,7 @@ static void configure(Client *c); static void configurenotify(XEvent *e); static void configurerequest(XEvent *e); static Monitor *createmon(void); +static void cyclemetaws(const Arg *arg); static void destroynotify(XEvent *e); static void detach(Client *c); static void detachstack(Client *c); @@ -208,8 +209,6 @@ 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 void moveviewmetaws(const Arg *arg); static Client *nexttiled(Client *c); static void pop(Client *c); static void propertynotify(XEvent *e); @@ -246,7 +245,6 @@ static void togglefloating(const Arg *arg); static void togglefullscr(const Arg *arg); static void toggletag(const Arg *arg); static void toggleview(const Arg *arg); -static void traversemetaws(const Arg *arg); static void unfocus(Client *c, int setfocus); static void unmanage(Client *c, int destroyed); static void unmapnotify(XEvent *e); @@ -784,6 +782,11 @@ createmon(void) return m; } +void cyclemetaws(const Arg *arg) { + Arg a = {.ui = (metaws + arg->i + (LENGTH(metaworkspaces))) % LENGTH(metaworkspaces)}; + viewmetaws(&a); +} + void destroynotify(XEvent *e) { @@ -1331,21 +1334,6 @@ motionnotify(XEvent *e) mon = m; } -void -movemetaws(const Arg *arg) -{ - const Arg a = {.i = (metaws + arg->i + LENGTH(metaworkspaces)) % LENGTH(metaworkspaces)}; - tagmetaws(&a); -} - -void -moveviewmetaws(const Arg *arg) -{ - const Arg a = {.i = (metaws + arg->i + LENGTH(metaworkspaces)) % LENGTH(metaworkspaces)}; - tagmetaws(&a); - viewmetaws(&a); -} - void movemouse(const Arg *arg) { @@ -1920,9 +1908,6 @@ spawn(const Arg *arg) { struct sigaction sa; - if (arg->v == dmenucmd) - dmenumon[0] = '0' + selmon->num; - if (fork() == 0) { if (dpy) close(ConnectionNumber(dpy)); @@ -2074,17 +2059,6 @@ toggleview(const Arg *arg) } } -void -traversemetaws(const Arg *arg) -{ - if (!arg->i) return; - metaws = (metaws + arg->i + (LENGTH(metaworkspaces))) % LENGTH(metaworkspaces); - snprintf(mwsymbol, LENGTH(mwsymbol), "%s", metaworkspaces[metaws]); - focus(NULL); - arrange(NULL); - drawbars(); -} - void unfocus(Client *c, int setfocus) { @@ -2412,13 +2386,14 @@ view(const Arg *arg) void viewmetaws(const Arg *arg) { - if (arg->ui < LENGTH(metaworkspaces)) { - metaws = arg->ui; - snprintf(mwsymbol, LENGTH(mwsymbol), "%s", metaworkspaces[metaws]); - focus(NULL); - arrange(NULL); - drawbars(); - } + if (arg->ui >= LENGTH(metaworkspaces)) + return; + + metaws = arg->ui; + snprintf(mwsymbol, LENGTH(mwsymbol), "%s", metaworkspaces[metaws]); + focus(NULL); + arrange(NULL); + drawbars(); } pid_t