diff options
| -rw-r--r-- | config.def.h | 2 | ||||
| -rw-r--r-- | dwm.c | 19 |
2 files changed, 21 insertions, 0 deletions
diff --git a/config.def.h b/config.def.h index 3f7da51..4df636f 100644 --- a/config.def.h +++ b/config.def.h @@ -103,6 +103,8 @@ static Key keys[] = { TAGKEYS( XK_7, 6) TAGKEYS( XK_8, 7) TAGKEYS( XK_9, 8) + { MODKEY, XK_Left, scrollview, {.i = -1 } }, + { MODKEY, XK_Right, scrollview, {.i = +1 } }, { MODKEY|ShiftMask, XK_q, quit, {0} }, }; @@ -262,6 +262,7 @@ static void updatetitle(Client *c); static void updatewindowtype(Client *c); static void updatewmhints(Client *c); static void view(const Arg *arg); +static void scrollview(const Arg *arg); static Client *wintoclient(Window w); static Monitor *wintomon(Window w); static Client *wintosystrayicon(Window w); @@ -2408,6 +2409,24 @@ view(const Arg *arg) arrange(selmon); } +void +scrollview(const Arg *arg) +{ + int ui = 0; + if (arg->i < 0) + ui = selmon->tagset[selmon->seltags] >> 1; + else if (arg->i > 0) + ui = selmon->tagset[selmon->seltags] << 1; + + if ((ui & TAGMASK) == 0 || (ui & TAGMASK) == selmon->tagset[selmon->seltags]) + return; + selmon->seltags ^= 1; /* toggle sel tagset */ + if (ui & TAGMASK) + selmon->tagset[selmon->seltags] = ui; + focus(NULL); + arrange(selmon); +} + Client * wintoclient(Window w) { |