summaryrefslogtreecommitdiff
path: root/patches/dwm-alternativetags-6.2.diff
diff options
context:
space:
mode:
Diffstat (limited to 'patches/dwm-alternativetags-6.2.diff')
-rw-r--r--patches/dwm-alternativetags-6.2.diff130
1 files changed, 0 insertions, 130 deletions
diff --git a/patches/dwm-alternativetags-6.2.diff b/patches/dwm-alternativetags-6.2.diff
deleted file mode 100644
index 9eb8c8b..0000000
--- a/patches/dwm-alternativetags-6.2.diff
+++ /dev/null
@@ -1,130 +0,0 @@
-From b55c4bc2efa0331a6fb521d41169e8ddf8bc9b13 Mon Sep 17 00:00:00 2001
-From: Jack Bird <jack.bird@durham.ac.uk>
-Date: Sun, 29 Aug 2021 17:30:40 +0100
-Subject: [PATCH] Added momentary config option
-
----
- config.def.h | 3 +++
- dwm.c | 35 +++++++++++++++++++++++++++++++++--
- 2 files changed, 36 insertions(+), 2 deletions(-)
-
-diff --git a/config.def.h b/config.def.h
-index 1c0b587..4cfcef1 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -20,6 +20,8 @@ static const char *colors[][3] = {
-
- /* tagging */
- static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
-+static const char *tagsalt[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
-+static const int momentaryalttags = 0; /* 1 means alttags will show only when key is held down*/
-
- static const Rule rules[] = {
- /* xprop(1):
-@@ -84,6 +86,7 @@ static Key keys[] = {
- { MODKEY, XK_period, focusmon, {.i = +1 } },
- { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
- { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
-+ { MODKEY, XK_n, togglealttag, {0} },
- TAGKEYS( XK_1, 0)
- TAGKEYS( XK_2, 1)
- TAGKEYS( XK_3, 2)
-diff --git a/dwm.c b/dwm.c
-index 4465af1..1e6e6f3 100644
---- a/dwm.c
-+++ b/dwm.c
-@@ -130,6 +130,7 @@ struct Monitor {
- Monitor *next;
- Window barwin;
- const Layout *lt[2];
-+ unsigned int alttag;
- };
-
- typedef struct {
-@@ -176,6 +177,7 @@ static void grabbuttons(Client *c, int focused);
- static void grabkeys(void);
- static void incnmaster(const Arg *arg);
- static void keypress(XEvent *e);
-+static void keyrelease(XEvent *e);
- static void killclient(const Arg *arg);
- static void manage(Window w, XWindowAttributes *wa);
- static void mappingnotify(XEvent *e);
-@@ -209,6 +211,7 @@ static void spawn(const Arg *arg);
- static void tag(const Arg *arg);
- static void tagmon(const Arg *arg);
- static void tile(Monitor *);
-+static void togglealttag();
- static void togglebar(const Arg *arg);
- static void togglefloating(const Arg *arg);
- static void toggletag(const Arg *arg);
-@@ -253,6 +256,7 @@ static void (*handler[LASTEvent]) (XEvent *) = {
- [Expose] = expose,
- [FocusIn] = focusin,
- [KeyPress] = keypress,
-+ [KeyRelease] = keyrelease,
- [MappingNotify] = mappingnotify,
- [MapRequest] = maprequest,
- [MotionNotify] = motionnotify,
-@@ -695,7 +699,7 @@ dirtomon(int dir)
- void
- drawbar(Monitor *m)
- {
-- int x, w, sw = 0;
-+ int x, w, wdelta, sw = 0;
- int boxs = drw->fonts->h / 9;
- int boxw = drw->fonts->h / 6 + 2;
- unsigned int i, occ = 0, urg = 0;
-@@ -716,8 +720,9 @@ drawbar(Monitor *m)
- x = 0;
- for (i = 0; i < LENGTH(tags); i++) {
- w = TEXTW(tags[i]);
-+ wdelta = selmon->alttag ? abs(TEXTW(tags[i]) - TEXTW(tagsalt[i])) / 2 : 0;
- drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
-- drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i);
-+ drw_text(drw, x, 0, w, bh, wdelta + lrpad / 2, (selmon->alttag ? tagsalt[i] : tags[i]), urg & 1 << i);
- if (occ & 1 << i)
- drw_rect(drw, x + boxs, boxs, boxw, boxw,
- m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
-@@ -998,6 +1003,25 @@ keypress(XEvent *e)
- keys[i].func(&(keys[i].arg));
- }
-
-+void
-+keyrelease(XEvent *e)
-+{
-+ unsigned int i;
-+ KeySym keysym;
-+ XKeyEvent *ev;
-+
-+ ev = &e->xkey;
-+ keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
-+
-+ for (i = 0; i < LENGTH(keys); i++)
-+ if (momentaryalttags
-+ && keys[i].func && keys[i].func == togglealttag
-+ && selmon->alttag
-+ && (keysym == keys[i].keysym
-+ || CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)))
-+ keys[i].func(&(keys[i].arg));
-+}
-+
- void
- killclient(const Arg *arg)
- {
-@@ -1696,6 +1720,13 @@ tile(Monitor *m)
- }
- }
-
-+void
-+togglealttag()
-+{
-+ selmon->alttag = !selmon->alttag;
-+ drawbar(selmon);
-+}
-+
- void
- togglebar(const Arg *arg)
- {
---
-2.33.0
-