sites

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

commit 5fed4355e121f294c510bef315cd21a9080abe28
parent 492c46b18c0b1688ce3ebc8cfa79d99afa56cf56
Author: David Phillips <dbphillipsnz@gmail.com>
Date:   Sun, 31 Jan 2016 14:03:40 +1300

[st] Update argbbg patch to latest git HEAD

Diffstat:
Mst.suckless.org/patches/argbbg.md | 4++--
Dst.suckless.org/patches/st-git-20151129-argbbg.diff | 161-------------------------------------------------------------------------------
2 files changed, 2 insertions(+), 163 deletions(-)

diff --git a/st.suckless.org/patches/argbbg.md b/st.suckless.org/patches/argbbg.md @@ -17,10 +17,10 @@ make this patch effective. * [st-0.4.1-argbbg.diff](st-0.4.1-argbbg.diff) * [st-0.5-argbbg.diff](st-0.5-argbbg.diff) * [st-0.6-argbbg.diff](st-0.6-argbbg.diff) - * [st-git-20151129-argbbg.diff](st-git-20151129-argbbg.diff) + * [st-git-20160131-argbbg.diff](st-git-20160131-argbbg.diff) ## Authors ## * Eon S. Jeon - esjeon@hyunmu.am * pr - protodev@gmx.net (st-0.5 port) * Laslo Hunhold - dev@frign.de (st-0.6 port) - * David Phillips - dbphillipsnz@gmail.com (st-git-20151129 port) + * David Phillips - dbphillipsnz@gmail.com (st-git-20160131 port) diff --git a/st.suckless.org/patches/st-git-20151129-argbbg.diff b/st.suckless.org/patches/st-git-20151129-argbbg.diff @@ -1,161 +0,0 @@ -diff --git a/config.def.h b/config.def.h -index fd09d72..d2cf4d6 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -96,6 +96,8 @@ static const char *colorname[] = { - "#555555", - }; - -+/* bg opacity */ -+static const int alpha = 0xdd; - - /* - * Default colors (colorname index) -@@ -123,6 +125,7 @@ static unsigned int mousefg = 7; - static unsigned int mousebg = 0; - - /* -+ "black", - * Colors used, when the specific fg == defaultfg. So in reverse mode this - * will reverse too. Another logic would only make the simple feature too - * complex. -diff --git a/config.mk b/config.mk -index 81e3e47..ab35200 100644 ---- a/config.mk -+++ b/config.mk -@@ -14,7 +14,7 @@ X11LIB = /usr/X11R6/lib - INCS = -I. -I/usr/include -I${X11INC} \ - `pkg-config --cflags fontconfig` \ - `pkg-config --cflags freetype2` --LIBS = -L/usr/lib -lc -L${X11LIB} -lm -lrt -lX11 -lutil -lXft \ -+LIBS = -L/usr/lib -lc -L${X11LIB} -lm -lrt -lX11 -lutil -lXft -lXrender \ - `pkg-config --libs fontconfig` \ - `pkg-config --libs freetype2` - -diff --git a/st.c b/st.c -index c5d62c1..56d9912 100644 ---- a/st.c -+++ b/st.c -@@ -61,6 +61,7 @@ char *argv0; - #define XK_ANY_MOD UINT_MAX - #define XK_NO_MOD 0 - #define XK_SWITCH_MOD (1<<13) -+#define OPAQUE 0xff - - /* macros */ - #define MIN(a, b) ((a) < (b) ? (a) : (b)) -@@ -79,6 +80,7 @@ char *argv0; - #define TIMEDIFF(t1, t2) ((t1.tv_sec-t2.tv_sec)*1000 + \ - (t1.tv_nsec-t2.tv_nsec)/1E6) - #define MODBIT(x, set, bit) ((set) ? ((x) |= (bit)) : ((x) &= ~(bit))) -+#define USE_ARGB (alpha != OPAQUE && opt_embed == NULL) - - #define TRUECOLOR(r,g,b) (1 << 24 | (r) << 16 | (g) << 8 | (b)) - #define IS_TRUECOL(x) (1 << 24 & (x)) -@@ -267,6 +269,7 @@ typedef struct { - int w, h; /* window width and height */ - int ch; /* char height */ - int cw; /* char width */ -+ int depth; /* bit depth */ - char state; /* focus, redraw, visible */ - int cursor; /* cursor style */ - } XWindow; -@@ -3136,8 +3139,7 @@ xresize(int col, int row) - xw.th = MAX(1, row * xw.ch); - - XFreePixmap(xw.dpy, xw.buf); -- xw.buf = XCreatePixmap(xw.dpy, xw.win, xw.w, xw.h, -- DefaultDepth(xw.dpy, xw.scr)); -+ xw.buf = XCreatePixmap(xw.dpy, xw.win, xw.w, xw.h, xw.depth); - XftDrawChange(xw.draw, xw.buf); - xclear(0, 0, xw.w, xw.h); - } -@@ -3191,6 +3193,14 @@ xloadcols(void) - else - die("Could not allocate color %d\n", i); - } -+ -+ /* set alpha value of bg color */ -+ if (USE_ARGB) { -+ dc.col[defaultbg].color.alpha = (0xffff * alpha) / OPAQUE; //0xcccc; -+ dc.col[defaultbg].pixel &= 0x00111111; -+ dc.col[defaultbg].pixel |= alpha << 24; // 0xcc000000; -+ } -+ - loaded = 1; - } - -@@ -3450,7 +3460,38 @@ xinit(void) - if (!(xw.dpy = XOpenDisplay(NULL))) - die("Can't open display\n"); - xw.scr = XDefaultScreen(xw.dpy); -- xw.vis = XDefaultVisual(xw.dpy, xw.scr); -+ xw.depth = (USE_ARGB) ? 32: XDefaultDepth(xw.dpy, xw.scr); -+ if (! USE_ARGB) -+ xw.vis = XDefaultVisual(xw.dpy, xw.scr); -+ else { -+ XVisualInfo *vis; -+ XRenderPictFormat *fmt; -+ int nvi; -+ int i; -+ -+ XVisualInfo tpl = { -+ .screen = xw.scr, -+ .depth = 32, -+ .class = TrueColor -+ }; -+ -+ vis = XGetVisualInfo(xw.dpy, VisualScreenMask | VisualDepthMask | VisualClassMask, &tpl, &nvi); -+ xw.vis = NULL; -+ for(i = 0; i < nvi; i ++) { -+ fmt = XRenderFindVisualFormat(xw.dpy, vis[i].visual); -+ if (fmt->type == PictTypeDirect && fmt->direct.alphaMask) { -+ xw.vis = vis[i].visual; -+ break; -+ } -+ } -+ -+ XFree(vis); -+ -+ if (! xw.vis) { -+ fprintf(stderr, "Couldn't find ARGB visual.\n"); -+ exit(1); -+ } -+ } - - /* font */ - if (!FcInit()) -@@ -3460,7 +3501,10 @@ xinit(void) - xloadfonts(usedfont, 0); - - /* colors */ -- xw.cmap = XDefaultColormap(xw.dpy, xw.scr); -+ if (! USE_ARGB) -+ xw.cmap = XDefaultColormap(xw.dpy, xw.scr); -+ else -+ xw.cmap = XCreateColormap(xw.dpy, XRootWindow(xw.dpy, xw.scr), xw.vis, None); - xloadcols(); - - /* adjust fixed window geometry */ -@@ -3483,16 +3527,17 @@ xinit(void) - if (!(opt_embed && (parent = strtol(opt_embed, NULL, 0)))) - parent = XRootWindow(xw.dpy, xw.scr); - xw.win = XCreateWindow(xw.dpy, parent, xw.l, xw.t, -- xw.w, xw.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput, -+ xw.w, xw.h, 0, xw.depth, InputOutput, - xw.vis, CWBackPixel | CWBorderPixel | CWBitGravity - | CWEventMask | CWColormap, &xw.attrs); - - memset(&gcvalues, 0, sizeof(gcvalues)); - gcvalues.graphics_exposures = False; -- dc.gc = XCreateGC(xw.dpy, parent, GCGraphicsExposures, -+ xw.buf = XCreatePixmap(xw.dpy, xw.win, xw.w, xw.h, xw.depth); -+ dc.gc = XCreateGC(xw.dpy, -+ (USE_ARGB)? xw.buf: parent, -+ GCGraphicsExposures, - &gcvalues); -- xw.buf = XCreatePixmap(xw.dpy, xw.win, xw.w, xw.h, -- DefaultDepth(xw.dpy, xw.scr)); - XSetForeground(xw.dpy, dc.gc, dc.col[defaultbg].pixel); - XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, xw.w, xw.h); -