commit c4ea66906062b0f0ff50725c033178af74c29be9
parent 4aaa5c7590d62f9a7f0eb716d7ef6bd11f934abc
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Fri, 21 Jan 2022 11:59:23 +0100
Revert "[dwm][patch] Add qubesdecorations patch"
This reverts commit 7d617fac7e3cfbdb2e8508a9e0be4f9a978f1c96.
Please use proper hyperlinks: the links to monero etc are not proper.
Diffstat:
4 files changed, 0 insertions(+), 214 deletions(-)
diff --git a/dwm.suckless.org/patches/qubesdecorations/dwm-qubesdecorations-6.3.diff b/dwm.suckless.org/patches/qubesdecorations/dwm-qubesdecorations-6.3.diff
@@ -1,193 +0,0 @@
-From: 3o14r473 <3o14@pm.me>
-Donate: monero:41rMoMLvk8hEJYP2vbv3dNUGzN95CLXoANAtmAVaUxzse5KfPjhkE7d4PUwh8kCkF16FwwqfZTmS4ZKmYCjrsFAcGXTPpwH
-Subject: [PATCH] dwm-qubesdecorations-6.3.diff
-
-This patch enables dwm to read QubesOS-specific window properties and use the
-windowborders, titlebar and tagbar to indicate to the user what qube the
-focused window belongs to.
-
-Each qube-label gets its own SchemeSel colorscheme that can be conviniently configured in config.def.h
----
- config.def.h | 23 ++++++++++++++++++++---
- dwm.c        | 47 ++++++++++++++++++++++++++++++++++++++++++++---
- 2 files changed, 64 insertions(+), 6 deletions(-)
-
-diff --git a/config.def.h b/config.def.h
-index a2ac963..42dce05 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -12,10 +12,27 @@ static const char col_gray2[]       = "#444444";
- static const char col_gray3[]       = "#bbbbbb";
- static const char col_gray4[]       = "#eeeeee";
- static const char col_cyan[]        = "#005577";
-+static const char col_black[]       = "#000000";
-+static const char col_blue[]        = "#4363d8";
-+static const char col_gray[]        = "#bebebe";
-+static const char col_green[]       = "#3cb44b";
-+static const char col_orange[]      = "#f58231";
-+static const char col_purple[]      = "#9a009a";
-+static const char col_red[]         = "#e6194b";
-+static const char col_white[]       = "#ffffff";
-+static const char col_yellow[]      = "#ffe119";
- static const char *colors[][3]      = {
--	/*               fg         bg         border   */
--	[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
--	[SchemeSel]  = { col_gray4, col_cyan,  col_cyan  },
-+	/*fg         bg          border   */
-+	{ col_black, col_white,  col_white  }, /* SchemeSel dom0    */
-+	{ col_white, col_red,    col_red    }, /* SchemeSel label 1 */
-+	{ col_white, col_orange, col_orange }, /* SchemeSel label 2 */
-+	{ col_white, col_yellow, col_yellow }, /* SchemeSel label 3 */
-+	{ col_white, col_green,  col_green  }, /* SchemeSel label 4 */
-+	{ col_white, col_gray,   col_gray   }, /* SchemeSel label 5 */
-+	{ col_white, col_blue,   col_blue   }, /* SchemeSel label 6 */
-+	{ col_white, col_purple, col_purple }, /* SchemeSel label 7 */
-+	{ col_white, col_black,  col_black  }, /* SchemeSel label 8 */
-+	{ col_gray3, col_gray1,  col_gray2  }, /* SchemeNorm        */
- };
- 
- /* tagging */
-diff --git a/dwm.c b/dwm.c
-index a96f33c..be99dde 100644
---- a/dwm.c
-+++ b/dwm.c
-@@ -59,11 +59,11 @@
- 
- /* enums */
- enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
--enum { SchemeNorm, SchemeSel }; /* color schemes */
- enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
-        NetWMFullscreen, NetActiveWindow, NetWMWindowType,
-        NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
- enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */
-+enum { QubesLabel, QubesVMName, QubesLast }; /* QubesOS atoms */
- enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
-        ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
- 
-@@ -85,6 +86,7 @@ typedef struct {
- typedef struct Monitor Monitor;
- typedef struct Client Client;
- struct Client {
-+	char vmname[256];
- 	char name[256];
- 	float mina, maxa;
- 	int x, y, w, h;
-@@ -170,6 +172,7 @@ static void focusin(XEvent *e);
- static void focusmon(const Arg *arg);
- static void focusstack(const Arg *arg);
- static Atom getatomprop(Client *c, Atom prop);
-+static int getlabel(Client *c);
- static int getrootptr(int *x, int *y);
- static long getstate(Window w);
- static int gettextprop(Window w, Atom atom, char *text, unsigned int size);
-@@ -237,6 +240,7 @@ static void zoom(const Arg *arg);
- 
- /* variables */
- static const char broken[] = "broken";
-+static const char dom0[] = "dom0";
- static char stext[256];
- static int screen;
- static int sw, sh;           /* X display screen geometry width, height */
-@@ -260,8 +264,10 @@ static void (*handler[LASTEvent]) (XEvent *) = {
- 	[PropertyNotify] = propertynotify,
- 	[UnmapNotify] = unmapnotify
- };
--static Atom wmatom[WMLast], netatom[NetLast];
-+static Atom wmatom[WMLast], netatom[NetLast], qubesatom[QubesLast];
- static int running = 1;
-+static int SchemeSel = 0;
-+static const int SchemeNorm = 9;
- static Cur *cursor[CurLast];
- static Clr **scheme;
- static Display *dpy;
-@@ -702,6 +708,9 @@ drawbar(Monitor *m)
- 	unsigned int i, occ = 0, urg = 0;
- 	Client *c;
- 
-+	int size;
-+	char *fullname = NULL;
-+
- 	if (!m->showbar)
- 		return;
- 
-@@ -735,7 +744,11 @@ drawbar(Monitor *m)
- 	if ((w = m->ww - tw - x) > bh) {
- 		if (m->sel) {
- 			drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]);
--			drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0);
-+			size = strlen(m->sel->vmname) + strlen(m->sel->name) + 4;
-+			fullname = ecalloc(size, 1);
-+			snprintf(fullname, size, "[%s] %s", m->sel->vmname, m->sel->name);
-+			drw_text(drw, x, 0, w, bh, lrpad / 2, fullname, 0);
-+			XFree(fullname);
- 			if (m->sel->isfloating)
- 				drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0);
- 		} else {
-@@ -799,6 +812,7 @@ focus(Client *c)
- 		detachstack(c);
- 		attachstack(c);
- 		grabbuttons(c, 1);
-+		SchemeSel = getlabel(c);
- 		XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
- 		setfocus(c);
- 	} else {
-@@ -875,6 +889,28 @@ getatomprop(Client *c, Atom prop)
- 	return atom;
- }
- 
-+int
-+getlabel(Client *c)
-+{
-+	Atom actual_type;
-+	int actual_format;
-+	unsigned long nitems;
-+	unsigned long nbytes;
-+	char *value = 0;
-+	int result;
-+
-+	XGetWindowProperty(dpy, c->win, qubesatom[QubesLabel], 0, 1, False, XA_CARDINAL,
-+		&actual_type, &actual_format, &nitems, &nbytes, (unsigned char **) &value);
-+
-+	if (nitems) {
-+		result = (int)*value;
-+	} else {
-+		result = 0;
-+	}
-+	XFree(value);
-+	return result;
-+}
-+
- int
- getrootptr(int *x, int *y)
- {
-@@ -1239,7 +1275,7 @@ propertynotify(XEvent *e)
- 			drawbars();
- 			break;
- 		}
--		if (ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {
-+		if (ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName] || ev->atom == qubesatom[QubesVMName]) {
- 			updatetitle(c);
- 			if (c == c->mon->sel)
- 				drawbar(c->mon);
-@@ -1566,6 +1602,9 @@ setup(void)
- 	netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False);
- 	netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False);
- 	netatom[NetClientList] = XInternAtom(dpy, "_NET_CLIENT_LIST", False);
-+	/* init QubesOS atoms */
-+	qubesatom[QubesLabel] = XInternAtom(dpy, "_QUBES_LABEL", False);
-+	qubesatom[QubesVMName] = XInternAtom(dpy, "_QUBES_VMNAME", False);
- 	/* init cursors */
- 	cursor[CurNormal] = drw_cur_create(drw, XC_left_ptr);
- 	cursor[CurResize] = drw_cur_create(drw, XC_sizing);
-@@ -2001,6 +2040,8 @@ updatestatus(void)
- void
- updatetitle(Client *c)
- {
-+	if (!gettextprop(c->win, qubesatom[QubesVMName], c->vmname, sizeof c->vmname))
-+		strcpy(c->vmname, dom0);
- 	if (!gettextprop(c->win, netatom[NetWMName], c->name, sizeof c->name))
- 		gettextprop(c->win, XA_WM_NAME, c->name, sizeof c->name);
- 	if (c->name[0] == '\0') /* hack to mark broken clients */
--- 
-2.30.2
-
diff --git a/dwm.suckless.org/patches/qubesdecorations/five.png b/dwm.suckless.org/patches/qubesdecorations/five.png
Binary files differ.
diff --git a/dwm.suckless.org/patches/qubesdecorations/index.md b/dwm.suckless.org/patches/qubesdecorations/index.md
@@ -1,21 +0,0 @@
-qubesdecorations
-================
-
-Description
------------
-This patch enables dwm to read [QubesOS](https://qubes-os.org)-specific window properties and use the
-windowborders, titlebar and tagbar to indicate to the user what qube the
-focused window belongs to.
-
-Each qube-label gets its own SchemeSel colorscheme that can be conviniently configured in config.def.h
-
-
-
-
-Download
---------
-* [dwm-qubesdecorations-6.3.diff](dwm-qubesdecorations-6.3.diff) (2022-01-07)
-
-Author
--------
-* 3o14r473 - [fingerprint](E4FEE61C3B02F4CAB6D80CA7F105757D34BEFA98) [email](3o14@pm.me) [github](https://github.com/3o14r473) [moneroj](41rMoMLvk8hEJYP2vbv3dNUGzN95CLXoANAtmAVaUxzse5KfPjhkE7d4PUwh8kCkF16FwwqfZTmS4ZKmYCjrsFAcGXTPpwH)
diff --git a/dwm.suckless.org/patches/qubesdecorations/three.png b/dwm.suckless.org/patches/qubesdecorations/three.png
Binary files differ.