diff options
author | Philip Wittamore <philip@wittamore.com> | 2025-05-21 20:49:54 +0200 |
---|---|---|
committer | Philip Wittamore <philip@wittamore.com> | 2025-05-21 20:49:54 +0200 |
commit | 5ac7d0f954402a6942943d08821d5391d098677c (patch) | |
tree | c3d11df97f393908bc2f6dda96356f07ee90a31e | |
parent | ed58bff91b2d872a3c5db3db2e86015640d7c3db (diff) | |
download | dwm-5ac7d0f954402a6942943d08821d5391d098677c.tar.gz dwm-5ac7d0f954402a6942943d08821d5391d098677c.tar.bz2 dwm-5ac7d0f954402a6942943d08821d5391d098677c.zip |
update
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | config.def.h | 15 | ||||
-rw-r--r-- | config.h | 15 | ||||
-rwxr-xr-x | dwm | bin | 0 -> 73624 bytes | |||
-rw-r--r-- | dwm.c | 58 |
5 files changed, 79 insertions, 10 deletions
@@ -3,4 +3,5 @@ - xrdb - swallow - rotatestack +- adjacent diff --git a/config.def.h b/config.def.h index d8e7992..394512b 100644 --- a/config.def.h +++ b/config.def.h @@ -32,7 +32,7 @@ static const Rule rules[] = { /* class instance title tags mask isfloating isterminal noswallow monitor */ { "Gimp", NULL, NULL, 0, 1, 0, 0, -1 }, { "Firefox", NULL, NULL, 1 << 8, 0, 0, -1, -1 }, - { "St", NULL, NULL, 0, 0, 1, 0, -1 }, + { "Ghostty", NULL, NULL, 0, 0, 1, 0, -1 }, { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ }; @@ -63,7 +63,7 @@ static const Layout layouts[] = { /* commands */ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL }; -static const char *termcmd[] = { "st", NULL }; +static const char *termcmd[] = { "ghostty", NULL }; static const Key keys[] = { /* modifier key function argument */ @@ -78,22 +78,27 @@ static const Key keys[] = { { MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_p, spawn, {.v = dmenucmd } }, { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_w, spawn, SHCMD("librewolf") }, { MODKEY, XK_Tab, view, {0} }, { MODKEY, XK_space, setlayout, {0} }, { MODKEY, XK_comma, focusmon, {.i = -1 } }, { MODKEY, XK_semicolon, focusmon, {.i = +1 } }, { MODKEY, XK_F5, xrdb, {.v = NULL } }, + { MODKEY, XK_Return, spawn, {.v = termcmd } }, + { MODKEY, XK_Right, viewnext, {0} }, + { MODKEY, XK_Left, viewprev, {0} }, + { MODKEY|ShiftMask, XK_Right, tagtonext, {0} }, + { MODKEY|ShiftMask, XK_Left, tagtoprev, {0} }, + { MODKEY|ShiftMask, XK_Return, zoom, {0} }, { MODKEY|ShiftMask, XK_c, killclient, {0} }, { MODKEY|ShiftMask, XK_j, rotatestack, {.i = +1 } }, { MODKEY|ShiftMask, XK_k, rotatestack, {.i = -1 } }, { MODKEY|ShiftMask, XK_q, quit, {0} }, { MODKEY|ShiftMask, XK_x, spawn, SHCMD("rofi -show power-menu -modi power-menu:rofi-power-menu") }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, { MODKEY|ShiftMask, XK_agrave, tag, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, - { MODKEY|ShiftMask, XK_semicolon, tagmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_semicolon, tagmon, {.i = +1 } }, { 0, XF86XK_AudioMute, spawn, SHCMD("dwm-audio voltoggle") }, { 0, XF86XK_AudioLowerVolume, spawn, SHCMD("dwm-audio volquieter") }, { 0, XF86XK_AudioRaiseVolume, spawn, SHCMD("dwm-audio vollouder") }, @@ -32,7 +32,7 @@ static const Rule rules[] = { /* class instance title tags mask isfloating isterminal noswallow monitor */ { "Gimp", NULL, NULL, 0, 1, 0, 0, -1 }, { "Firefox", NULL, NULL, 1 << 8, 0, 0, -1, -1 }, - { "St", NULL, NULL, 0, 0, 1, 0, -1 }, + { "Ghostty", NULL, NULL, 0, 0, 1, 0, -1 }, { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ }; @@ -63,7 +63,7 @@ static const Layout layouts[] = { /* commands */ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL }; -static const char *termcmd[] = { "st", NULL }; +static const char *termcmd[] = { "ghostty", NULL }; static const Key keys[] = { /* modifier key function argument */ @@ -78,22 +78,27 @@ static const Key keys[] = { { MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_p, spawn, {.v = dmenucmd } }, { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_Return, zoom, {0} }, + { MODKEY, XK_w, spawn, SHCMD("librewolf") }, { MODKEY, XK_Tab, view, {0} }, { MODKEY, XK_space, setlayout, {0} }, { MODKEY, XK_comma, focusmon, {.i = -1 } }, { MODKEY, XK_semicolon, focusmon, {.i = +1 } }, { MODKEY, XK_F5, xrdb, {.v = NULL } }, + { MODKEY, XK_Return, spawn, {.v = termcmd } }, + { MODKEY, XK_Right, viewnext, {0} }, + { MODKEY, XK_Left, viewprev, {0} }, + { MODKEY|ShiftMask, XK_Right, tagtonext, {0} }, + { MODKEY|ShiftMask, XK_Left, tagtoprev, {0} }, + { MODKEY|ShiftMask, XK_Return, zoom, {0} }, { MODKEY|ShiftMask, XK_c, killclient, {0} }, { MODKEY|ShiftMask, XK_j, rotatestack, {.i = +1 } }, { MODKEY|ShiftMask, XK_k, rotatestack, {.i = -1 } }, { MODKEY|ShiftMask, XK_q, quit, {0} }, { MODKEY|ShiftMask, XK_x, spawn, SHCMD("rofi -show power-menu -modi power-menu:rofi-power-menu") }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, { MODKEY|ShiftMask, XK_agrave, tag, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, - { MODKEY|ShiftMask, XK_semicolon, tagmon, {.i = +1 } }, + { MODKEY|ShiftMask, XK_semicolon, tagmon, {.i = +1 } }, { 0, XF86XK_AudioMute, spawn, SHCMD("dwm-audio voltoggle") }, { 0, XF86XK_AudioLowerVolume, spawn, SHCMD("dwm-audio volquieter") }, { 0, XF86XK_AudioRaiseVolume, spawn, SHCMD("dwm-audio vollouder") }, Binary files differ@@ -256,6 +256,8 @@ static void updatetitle(Client *c); static void updatewindowtype(Client *c); static void updatewmhints(Client *c); static void view(const Arg *arg); +static void viewnext(const Arg *arg); +static void viewprev(const Arg *arg); static Client *wintoclient(Window w); static Monitor *wintomon(Window w); static int xerror(Display *dpy, XErrorEvent *ee); @@ -263,6 +265,10 @@ static int xerrordummy(Display *dpy, XErrorEvent *ee); static int xerrorstart(Display *dpy, XErrorEvent *ee); static void xrdb(const Arg *arg); static void zoom(const Arg *arg); +static unsigned int nexttag(void); +static unsigned int prevtag(void); +static void tagtonext(const Arg *arg); +static void tagtoprev(const Arg *arg); static pid_t getparentprocess(pid_t p); static int isdescprocess(pid_t p, pid_t c); @@ -1349,6 +1355,13 @@ movemouse(const Arg *arg) } } +unsigned int +nexttag(void) +{ + unsigned int seltag = selmon->tagset[selmon->seltags]; + return seltag == (1 << (LENGTH(tags) - 1)) ? 1 : seltag << 1; +} + Client * nexttiled(Client *c) { @@ -1365,6 +1378,13 @@ pop(Client *c) arrange(c->mon); } +unsigned int +prevtag(void) +{ + unsigned int seltag = selmon->tagset[selmon->seltags]; + return seltag == 1 ? (1 << (LENGTH(tags) - 1)) : seltag >> 1; +} + void propertynotify(XEvent *e) { @@ -1864,6 +1884,32 @@ tagmon(const Arg *arg) } void +tagtonext(const Arg *arg) +{ + unsigned int tmp; + + if (selmon->sel == NULL) + return; + + tmp = nexttag(); + tag(&(const Arg){.ui = tmp }); + view(&(const Arg){.ui = tmp }); +} + +void +tagtoprev(const Arg *arg) +{ + unsigned int tmp; + + if (selmon->sel == NULL) + return; + + tmp = prevtag(); + tag(&(const Arg){.ui = tmp }); + view(&(const Arg){.ui = tmp }); +} + +void tile(Monitor *m) { unsigned int i, n, h, mw, my, ty; @@ -2388,6 +2434,18 @@ swallowingclient(Window w) return NULL; } +void +viewnext(const Arg *arg) +{ + view(&(const Arg){.ui = nexttag()}); +} + +void +viewprev(const Arg *arg) +{ + view(&(const Arg){.ui = prevtag()}); +} + Client * wintoclient(Window w) { |