sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

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:
Ddwm.suckless.org/patches/qubesdecorations/dwm-qubesdecorations-6.3.diff | 193-------------------------------------------------------------------------------
Ddwm.suckless.org/patches/qubesdecorations/five.png | 0
Ddwm.suckless.org/patches/qubesdecorations/index.md | 21---------------------
Ddwm.suckless.org/patches/qubesdecorations/three.png | 0
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 - -![screenshot](three.png) -![screenshot](five.png) - -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.