summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew <saintruler@gmail.com>2020-06-05 13:48:02 +0400
committerAndrew <saintruler@gmail.com>2020-06-05 13:48:02 +0400
commiteb9b7e135d71bf3c534fa1143037c58cb5553c55 (patch)
tree154c1afd4a5734a548ddecf9e31b4b0aef0ea9cd
parent588bb80ca4c11471c31d7d516ba39da5b6b6dca8 (diff)
Added function scrollview
-rw-r--r--config.def.h2
-rw-r--r--dwm.c19
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} },
};
diff --git a/dwm.c b/dwm.c
index 6e54eff..97cf3c5 100644
--- a/dwm.c
+++ b/dwm.c
@@ -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)
{