From ae1dae2bf2d28928a457a7455d67d5fec8855e60 Mon Sep 17 00:00:00 2001 From: Yigit Colakoglu Date: Wed, 27 Dec 2023 20:48:09 +0100 Subject: [PATCH] Cattpuccin --- .local/src/dmenu/colors.h | 10 +- .local/src/dmenu/dmenu | Bin 0 -> 47872 bytes .local/src/dmenu/dmenu.c.orig | 1238 +++++++++++++++++ .local/src/dmenu/dmenu.o | Bin 0 -> 45624 bytes .local/src/dmenu/drw.o | Bin 0 -> 10560 bytes .../src/dmenu/patches/dmenu-border-4.9.diff | 25 + .local/src/dmenu/stest | Bin 0 -> 16408 bytes .local/src/dmenu/stest.o | Bin 0 -> 5248 bytes .local/src/dmenu/util.o | Bin 0 -> 2224 bytes .local/src/dwm/keybinds.h | 4 +- .../patches/dwm-focusmaster-return-6.2.diff | 90 ++ .local/src/dwm/patches/dwm-sticky-6.1.diff | 58 + .local/src/dwm/patches/dwm-zoomswap-6.2.diff | 95 ++ .local/src/dwm/rules.h | 5 +- .local/src/dwm/theme.h | 4 +- .local/src/dwmblocks/config.h | 8 +- .local/src/dwmblocks/dwmblocks | Bin 0 -> 18048 bytes .local/src/dwmblocks/dwmblocks.o | Bin 0 -> 11704 bytes .local/src/paleofetch/paleofetch | Bin 0 -> 23600 bytes .local/src/scroll/scroll | Bin 0 -> 18792 bytes .../slock/slock-message-20191002-b46028b.diff | 250 ++++ .local/src/st/.gitignore | 1 + .local/src/st/config.h | 63 +- .../st-externalpipe-eternal-0.8.3.diff | 74 + .local/src/st/patches/st-w3m-0.8.3.diff | 42 + .local/src/st/st | Bin 116408 -> 111304 bytes .local/src/st/st-boxdraw_v2-0.8.3.diff | 600 ++++++++ .local/src/st/st.o | Bin 80368 -> 80344 bytes .local/src/st/x.o | Bin 81608 -> 81840 bytes .local/src/sxiv/.ccls | 17 + .local/src/sxiv/autoreload_inotify.o | Bin 0 -> 3752 bytes .local/src/sxiv/commands.o | Bin 0 -> 19728 bytes .local/src/sxiv/image.o | Bin 0 -> 21936 bytes .local/src/sxiv/main.o | Bin 0 -> 42008 bytes .local/src/sxiv/options.o | Bin 0 -> 9144 bytes .local/src/sxiv/thumbs.o | Bin 0 -> 16784 bytes .local/src/sxiv/util.o | Bin 0 -> 6944 bytes .local/src/sxiv/window.o | Bin 0 -> 21976 bytes .local/src/tabbed/tabbed | Bin 0 -> 32288 bytes .local/src/tabbed/tabbed.o | Bin 0 -> 42560 bytes .local/src/tabbed/xembed | Bin 0 -> 14384 bytes .local/src/tabbed/xembed.o | Bin 0 -> 2432 bytes 42 files changed, 2538 insertions(+), 46 deletions(-) create mode 100755 .local/src/dmenu/dmenu create mode 100644 .local/src/dmenu/dmenu.c.orig create mode 100644 .local/src/dmenu/dmenu.o create mode 100644 .local/src/dmenu/drw.o create mode 100644 .local/src/dmenu/patches/dmenu-border-4.9.diff create mode 100755 .local/src/dmenu/stest create mode 100644 .local/src/dmenu/stest.o create mode 100644 .local/src/dmenu/util.o create mode 100644 .local/src/dwm/patches/dwm-focusmaster-return-6.2.diff create mode 100644 .local/src/dwm/patches/dwm-sticky-6.1.diff create mode 100644 .local/src/dwm/patches/dwm-zoomswap-6.2.diff create mode 100755 .local/src/dwmblocks/dwmblocks create mode 100644 .local/src/dwmblocks/dwmblocks.o create mode 100755 .local/src/paleofetch/paleofetch create mode 100755 .local/src/scroll/scroll create mode 100644 .local/src/slock/slock-message-20191002-b46028b.diff create mode 100644 .local/src/st/.gitignore create mode 100644 .local/src/st/patches/st-externalpipe-eternal-0.8.3.diff create mode 100644 .local/src/st/patches/st-w3m-0.8.3.diff create mode 100644 .local/src/st/st-boxdraw_v2-0.8.3.diff create mode 100644 .local/src/sxiv/.ccls create mode 100644 .local/src/sxiv/autoreload_inotify.o create mode 100644 .local/src/sxiv/commands.o create mode 100644 .local/src/sxiv/image.o create mode 100644 .local/src/sxiv/main.o create mode 100644 .local/src/sxiv/options.o create mode 100644 .local/src/sxiv/thumbs.o create mode 100644 .local/src/sxiv/util.o create mode 100644 .local/src/sxiv/window.o create mode 100755 .local/src/tabbed/tabbed create mode 100644 .local/src/tabbed/tabbed.o create mode 100755 .local/src/tabbed/xembed create mode 100644 .local/src/tabbed/xembed.o diff --git a/.local/src/dmenu/colors.h b/.local/src/dmenu/colors.h index f24e4ebd..56d2794d 100644 --- a/.local/src/dmenu/colors.h +++ b/.local/src/dmenu/colors.h @@ -3,11 +3,11 @@ static const unsigned int border_width = 0; /* Fix border transparency */ static const char *colors[SchemeLast][2] = { /* fg bg */ - [SchemeNorm] = { "#e5e9f0", "#0f111a", "#bf616a" }, - [SchemeSel] = { "#0f111a", "#bf616a", "#bf616a" }, - [SchemeOut] = { "#000000", "#00ffff", "#bf616a" }, - [SchemeNormHighlight] = { "#81a1c1", "#0f111a", "#bf616a" }, - [SchemeSelHighlight] = { "#88c0d0", "#bf616a", "#bf616a" }, + [SchemeNorm] = { "#cdd6f4", "#1e1e2e" }, + [SchemeSel] = { "#1e1e2e", "#89dceb" }, + [SchemeOut] = { "#000000", "#89dceb" }, + [SchemeNormHighlight] = { "#cdd6f4", "#1e1e2e", "#1e1e2e" }, + [SchemeSelHighlight] = { "#1e1e2e", "#89dceb", "#a6e3a1" }, }; diff --git a/.local/src/dmenu/dmenu b/.local/src/dmenu/dmenu new file mode 100755 index 0000000000000000000000000000000000000000..0da187f32db8370ca09776e03d614ffa2857cc49 GIT binary patch literal 47872 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 p;aRnvCFEZxsAJ>8U$^OZsrjlP?)aTH{Y8IQB +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#ifdef XINERAMA +#include +#endif +#include + +#include "drw.h" +#include "util.h" + +/* macros */ +#define OPAQUE 0xffU +#define OPACITY "_NET_WM_WINDOW_OPACITY" +#define INTERSECT(x,y,w,h,r) (MAX(0, MIN((x)+(w),(r).x_org+(r).width) - MAX((x),(r).x_org)) \ + * MAX(0, MIN((y)+(h),(r).y_org+(r).height) - MAX((y),(r).y_org))) +#define LENGTH(X) (sizeof X / sizeof X[0]) +#define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad) + +/* enums */ +enum { SchemeNorm, SchemeSel,SchemeNormHighlight, SchemeSelHighlight, SchemeOut, SchemeLast, SchemeHp}; /* color schemes */ + +struct item { + char *text; + struct item *left, *right; + int hp; + int id; /* for multiselect */ + double distance; +}; + + +static char **hpitems = NULL; +static int hplength = 0; +static char text[BUFSIZ] = ""; +static char *embed; +static int bh, mw, mh; +static int inputw = 0, promptw, passwd = 0; +static int lrpad; /* sum of left and right padding */ +static size_t cursor; +static struct item *items = NULL; +static struct item *matches, *matchend; +static struct item *prev, *curr, *next, *sel; +static int mon = -1, screen; + +static int *selid = NULL; +static unsigned int selidsize = 0; + +static Atom clip, utf8; +static Display *dpy; +static Window root, parentwin, win; +static XIC xic; +char *censort; + +static Drw *drw; +static int usergb = 0; +static Visual *visual; +static int depth; +static Colormap cmap; + +static Clr *scheme[SchemeLast]; + +#include "config.h" +#include "colors.h" + +static int (*fstrncmp)(const char *, const char *, size_t) = strncmp; +static char *(*fstrstr)(const char *, const char *) = strstr; + + +static int +issel(size_t id) +{ + for (int i = 0;i < selidsize;i++) + if (selid[i] == id) + return 1; + return 0; +} + +static void +xinitvisual() +{ + XVisualInfo *infos; + XRenderPictFormat *fmt; + int nitems; + int i; + + XVisualInfo tpl = { + .screen = screen, + .depth = 32, + .class = TrueColor + }; + long masks = VisualScreenMask | VisualDepthMask | VisualClassMask; + + infos = XGetVisualInfo(dpy, masks, &tpl, &nitems); + visual = NULL; + for(i = 0; i < nitems; i ++) { + fmt = XRenderFindVisualFormat(dpy, infos[i].visual); + if (fmt->type == PictTypeDirect && fmt->direct.alphaMask) { + visual = infos[i].visual; + depth = infos[i].depth; + cmap = XCreateColormap(dpy, root, visual, AllocNone); + usergb = 1; + break; + } + } + + XFree(infos); + + if (! visual) { + visual = DefaultVisual(dpy, screen); + depth = DefaultDepth(dpy, screen); + cmap = DefaultColormap(dpy, screen); + } +} + + +static char** +tokenize(char *source, const char *delim, int *llen) { + int listlength = 0; + char **list = malloc(1 * sizeof(char*)); + char *token = strtok(source, delim); + + while (token) { + if (!(list = realloc(list, sizeof(char*) * (listlength + 1)))) + die("Unable to realloc %d bytes\n", sizeof(char*) * (listlength + 1)); + if (!(list[listlength] = strdup(token))) + die("Unable to strdup %d bytes\n", strlen(token) + 1); + token = strtok(NULL, delim); + listlength++; + } + + *llen = listlength; + return list; +} + +static int +arrayhas(char **list, int length, char *item) { + for (int i = 0; i < length; i++) { + int len1 = strlen(list[i]); + int len2 = strlen(item); + if (fstrncmp(list[i], item, len1 > len2 ? len2 : len1) == 0) + return 1; + } + return 0; +} + +static void +appenditem(struct item *item, struct item **list, struct item **last) +{ + if (*last) + (*last)->right = item; + else + *list = item; + + item->left = *last; + item->right = NULL; + *last = item; +} + +static void +calcoffsets(void) +{ + int i, n; + + if (lines > 0) + n = lines * bh; + else + n = mw - (promptw + inputw + TEXTW("<") + TEXTW(">")); + /* calculate which items will begin the next page and previous page */ + for (i = 0, next = curr; next; next = next->right) + if ((i += (lines > 0) ? bh : MIN(TEXTW(next->text), n)) > n) + break; + for (i = 0, prev = curr; prev && prev->left; prev = prev->left) + if ((i += (lines > 0) ? bh : MIN(TEXTW(prev->left->text), n)) > n) + break; +} + +static void +cleanup(void) +{ + size_t i; + + XUngrabKey(dpy, AnyKey, AnyModifier, root); + for (i = 0; i < SchemeLast; i++) + free(scheme[i]); + drw_free(drw); + XSync(dpy, False); + XCloseDisplay(dpy); + free(selid); +} + +static char * +cistrstr(const char *s, const char *sub) +{ + size_t len; + + for (len = strlen(sub); *s; s++) + if (!strncasecmp(s, sub, len)) + return (char *)s; + return NULL; +} + +static void +drawhighlights(struct item *item, int x, int y, int maxw) +{ + int i, indent; + char *highlight; + char c; + + if (!(strlen(item->text) && strlen(text))) + return; + + drw_setscheme(drw, scheme[item == sel + ? SchemeSelHighlight + : SchemeNormHighlight]); + for (i = 0, highlight = item->text; *highlight && text[i];) { + if (!fstrncmp(&(*highlight), &text[i], 1)) + { + /* get indentation */ + c = *highlight; + *highlight = '\0'; + indent = TEXTW(item->text); + *highlight = c; + + /* highlight character */ + c = highlight[1]; + highlight[1] = '\0'; + drw_text( + drw, + x + indent - (lrpad / 2), + y, + MIN(maxw - indent, TEXTW(highlight) - lrpad), + bh, 0, highlight, 0 + ); + highlight[1] = c; + i++; + } + highlight++; + } +} + +static int +drawitem(struct item *item, int x, int y, int w) +{ + int r; + if (item == sel) + drw_setscheme(drw, scheme[SchemeSel]); + else if (item->hp) + drw_setscheme(drw, scheme[SchemeHp]); + else if (issel(item->id)) + drw_setscheme(drw, scheme[SchemeOut]); + else + drw_setscheme(drw, scheme[SchemeNorm]); + + r = drw_text(drw, x, y, w, bh, lrpad / 2, item->text, 0); + drawhighlights(item, x, y, w); + /* TODO Fix Alpha conflict with drawhighlights */ + return r; +} + +static void +drawmenu(void) +{ + unsigned int curpos; + struct item *item; + int x = 0, y = 0, fh = drw->fonts->h, w; + + drw_setscheme(drw, scheme[SchemeNorm]); + drw_rect(drw, 0, 0, mw, mh, 1, 1); + + if (prompt && *prompt) { + drw_setscheme(drw, scheme[SchemeSel]); + x = drw_text(drw, x, 0, promptw, bh, lrpad / 2, prompt, 0); + } + /* draw input field */ + w = (lines > 0 || !matches) ? mw - x : inputw; + drw_setscheme(drw, scheme[SchemeNorm]); + if (passwd) { + censort = ecalloc(1, sizeof(text)); + memset(censort, '*', strlen(text)); + drw_text(drw, x, 0, w, bh, lrpad / 2, censort, 0); + free(censort); + } else { + drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0); + } + + curpos = TEXTW(text) - TEXTW(&text[cursor]); + if ((curpos += lrpad / 2 - 1) < w) { + drw_setscheme(drw, scheme[SchemeNorm]); + drw_rect(drw, x + curpos, 2 + (bh - fh) / 2, 2, fh - 4, 1, 0); + } + + if (lines > 0) { + /* draw vertical list */ + for (item = curr; item != next; item = item->right) + drawitem(item, x, y += bh, mw - x); + } else if (matches) { + /* draw horizontal list */ + x += inputw; + w = TEXTW("<"); + if (curr->left) { + drw_setscheme(drw, scheme[SchemeNorm]); + drw_text(drw, x, 0, w, bh, lrpad / 2, "<", 0); + } + x += w; + for (item = curr; item != next; item = item->right) + x = drawitem(item, x, 0, MIN(TEXTW(item->text), mw - x - TEXTW(">"))); + if (next) { + w = TEXTW(">"); + drw_setscheme(drw, scheme[SchemeNorm]); + drw_text(drw, mw - w, 0, w, bh, lrpad / 2, ">", 0); + } + } + drw_map(drw, win, 0, 0, mw, mh); +} + +static void +grabfocus(void) +{ + struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 }; + Window focuswin; + int i, revertwin; + + for (i = 0; i < 100; ++i) { + XGetInputFocus(dpy, &focuswin, &revertwin); + if (focuswin == win) + return; + XSetInputFocus(dpy, win, RevertToParent, CurrentTime); + nanosleep(&ts, NULL); + } + die("cannot grab focus"); +} + +static void +grabkeyboard(void) +{ + struct timespec ts = { .tv_sec = 0, .tv_nsec = 1000000 }; + int i; + + if (embed) + return; + /* try to grab keyboard, we may have to wait for another process to ungrab */ + for (i = 0; i < 1000; i++) { + if (XGrabKeyboard(dpy, DefaultRootWindow(dpy), True, GrabModeAsync, + GrabModeAsync, CurrentTime) == GrabSuccess) + return; + nanosleep(&ts, NULL); + } + die("cannot grab keyboard"); +} + +int +compare_distance(const void *a, const void *b) +{ + struct item *da = *(struct item **) a; + struct item *db = *(struct item **) b; + + if (!db) + return 1; + if (!da) + return -1; + + return da->distance == db->distance ? 0 : da->distance < db->distance ? -1 : 1; +} + +void +fuzzymatch(void) +{ + /* bang - we have so much memory */ + struct item *it; + struct item **fuzzymatches = NULL; + char c; + int number_of_matches = 0, i, pidx, sidx, eidx; + int text_len = strlen(text), itext_len; + + matches = matchend = NULL; + + /* walk through all items */ + for (it = items; it && it->text; it++) { + if (text_len) { + itext_len = strlen(it->text); + pidx = 0; /* pointer */ + sidx = eidx = -1; /* start of match, end of match */ + /* walk through item text */ + for (i = 0; i < itext_len && (c = it->text[i]); i++) { + /* fuzzy match pattern */ + if (!fstrncmp(&text[pidx], &c, 1)) { + if(sidx == -1) + sidx = i; + pidx++; + if (pidx == text_len) { + eidx = i; + break; + } + } + } + /* build list of matches */ + if (eidx != -1) { + /* compute distance */ + /* add penalty if match starts late (log(sidx+2)) + * add penalty for long a match without many matching characters */ + it->distance = log(sidx + 2) + (double)(eidx - sidx - text_len); + /* fprintf(stderr, "distance %s %f\n", it->text, it->distance); */ + appenditem(it, &matches, &matchend); + number_of_matches++; + } + } else { + appenditem(it, &matches, &matchend); + } + } + + if (number_of_matches) { + /* initialize array with matches */ + if (!(fuzzymatches = realloc(fuzzymatches, number_of_matches * sizeof(struct item*)))) + die("cannot realloc %u bytes:", number_of_matches * sizeof(struct item*)); + for (i = 0, it = matches; it && i < number_of_matches; i++, it = it->right) { + fuzzymatches[i] = it; + } + /* sort matches according to distance */ + qsort(fuzzymatches, number_of_matches, sizeof(struct item*), compare_distance); + /* rebuild list of matches */ + matches = matchend = NULL; + for (i = 0, it = fuzzymatches[i]; i < number_of_matches && it && \ + it->text; i++, it = fuzzymatches[i]) { + appenditem(it, &matches, &matchend); + } + free(fuzzymatches); + } + curr = sel = matches; + calcoffsets(); +} + +static void +match(void) +{ + if (fuzzy) { + fuzzymatch(); + return; + } + static char **tokv = NULL; + static int tokn = 0; + + char buf[sizeof text], *s; + int i, tokc = 0; + size_t len, textsize; + struct item *item, *lhpprefix, *lprefix, *lsubstr, *hpprefixend, *prefixend, *substrend; + + strcpy(buf, text); + /* separate input text into tokens to be matched individually */ + for (s = strtok(buf, " "); s; tokv[tokc - 1] = s, s = strtok(NULL, " ")) + if (++tokc > tokn && !(tokv = realloc(tokv, ++tokn * sizeof *tokv))) + die("cannot realloc %u bytes:", tokn * sizeof *tokv); + len = tokc ? strlen(tokv[0]) : 0; + + matches = lhpprefix = lprefix = lsubstr = matchend = hpprefixend = prefixend = substrend = NULL; + textsize = strlen(text) + 1; + for (item = items; item && item->text; item++) { + for (i = 0; i < tokc; i++) + if (!fstrstr(item->text, tokv[i])) + break; + if (i != tokc) /* not all tokens match */ + continue; + /* exact matches go first, then prefixes with high priority, then prefixes, then substrings */ + if (!tokc || !fstrncmp(text, item->text, textsize)) + appenditem(item, &matches, &matchend); + else if (item->hp && !fstrncmp(tokv[0], item->text, len)) + appenditem(item, &lhpprefix, &hpprefixend); + else if (!fstrncmp(tokv[0], item->text, len)) + appenditem(item, &lprefix, &prefixend); + else + appenditem(item, &lsubstr, &substrend); + } + if (lhpprefix) { + if (matches) { + matchend->right = lhpprefix; + lhpprefix->left = matchend; + } else + matches = lhpprefix; + matchend = hpprefixend; + } + if (lprefix) { + if (matches) { + matchend->right = lprefix; + lprefix->left = matchend; + } else + matches = lprefix; + matchend = prefixend; + } + if (lsubstr) { + if (matches) { + matchend->right = lsubstr; + lsubstr->left = matchend; + } else + matches = lsubstr; + matchend = substrend; + } + curr = sel = matches; + calcoffsets(); +} + +static void +insert(const char *str, ssize_t n) +{ + if (strlen(text) + n > sizeof text - 1) + return; + /* move existing text out of the way, insert new text, and update cursor */ + memmove(&text[cursor + n], &text[cursor], sizeof text - cursor - MAX(n, 0)); + if (n > 0) + memcpy(&text[cursor], str, n); + cursor += n; + match(); +} + +static size_t +nextrune(int inc) +{ + ssize_t n; + + /* return location of next utf8 rune in the given direction (+1 or -1) */ + for (n = cursor + inc; n + inc >= 0 && (text[n] & 0xc0) == 0x80; n += inc) + ; + return n; +} + +static void +movewordedge(int dir) +{ + if (dir < 0) { /* move cursor to the start of the word*/ + while (cursor > 0 && strchr(worddelimiters, text[nextrune(-1)])) + cursor = nextrune(-1); + while (cursor > 0 && !strchr(worddelimiters, text[nextrune(-1)])) + cursor = nextrune(-1); + } else { /* move cursor to the end of the word */ + while (text[cursor] && strchr(worddelimiters, text[cursor])) + cursor = nextrune(+1); + while (text[cursor] && !strchr(worddelimiters, text[cursor])) + cursor = nextrune(+1); + } +} + +static void +keypress(XKeyEvent *ev) +{ + char buf[32]; + int len; + KeySym ksym; + Status status; + + len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status); + switch (status) { + default: /* XLookupNone, XBufferOverflow */ + return; + case XLookupChars: + goto insert; + case XLookupKeySym: + case XLookupBoth: + break; + } + + if (ev->state & ControlMask) { + switch(ksym) { + case XK_a: ksym = XK_Home; break; + case XK_b: ksym = XK_Left; break; + case XK_c: ksym = XK_Escape; break; + case XK_d: ksym = XK_Delete; break; + case XK_e: ksym = XK_End; break; + case XK_f: ksym = XK_Right; break; + case XK_g: ksym = XK_Escape; break; + case XK_i: ksym = XK_Tab; break; + case XK_J: /* fallthrough */ + case XK_m: /* fallthrough */ + case XK_M: ksym = XK_Return; ev->state &= ~ControlMask; break; + case XK_n: ksym = XK_Down; break; + case XK_p: ksym = XK_Up; break; + case XK_V: + XConvertSelection(dpy, (ev->state & ShiftMask) ? clip : XA_PRIMARY, + utf8, utf8, win, CurrentTime); + return; + case XK_u: /* delete left */ + insert(NULL, 0 - cursor); + break; + case XK_w: /* delete word */ + while (cursor > 0 && strchr(worddelimiters, text[nextrune(-1)])) + insert(NULL, nextrune(-1) - cursor); + while (cursor > 0 && !strchr(worddelimiters, text[nextrune(-1)])) + insert(NULL, nextrune(-1) - cursor); + break; + case XK_Y: /* paste selection */ + case XK_y: + XConvertSelection(dpy, (ev->state & ShiftMask) ? clip : XA_PRIMARY, + utf8, utf8, win, CurrentTime); + return; + case XK_Left: + movewordedge(-1); + goto draw; + case XK_Right: + movewordedge(+1); + goto draw; + case XK_Return: + case XK_KP_Enter: + if (sel && issel(sel->id)) { + for (int i = 0;i < selidsize;i++) + if (selid[i] == sel->id) + selid[i] = -1; + } else { + for (int i = 0;i < selidsize;i++) + if (selid[i] == -1) { + selid[i] = sel->id; + return; + } + selidsize++; + selid = realloc(selid, (selidsize + 1) * sizeof(int)); + selid[selidsize - 1] = sel->id; + } + break; + case XK_bracketleft: + cleanup(); + exit(1); + case XK_h: ksym = XK_Prior; break; + case XK_j: ksym = XK_Down; break; + case XK_k: ksym = XK_Up; break; + case XK_l: ksym = XK_Next; break; + default: + return; + } + } else if (ev->state & Mod1Mask) { + switch(ksym) { + case XK_b: + movewordedge(-1); + goto draw; + case XK_f: + movewordedge(+1); + goto draw; + case XK_g: ksym = XK_Home; break; + case XK_G: ksym = XK_End; break; + case XK_h: ksym = XK_Up; break; + case XK_j: ksym = XK_Next; break; + case XK_k: ksym = XK_Prior; break; + case XK_l: ksym = XK_Down; break; + default: + return; + } + } + + switch(ksym) { + default: +insert: + if (!iscntrl(*buf)) + insert(buf, len); + break; + case XK_Delete: + if (text[cursor] == '\0') + return; + cursor = nextrune(+1); + /* fallthrough */ + case XK_BackSpace: + if (cursor == 0) + return; + insert(NULL, nextrune(-1) - cursor); + break; + case XK_End: + if (text[cursor] != '\0') { + cursor = strlen(text); + break; + } + if (next) { + /* jump to end of list and position items in reverse */ + curr = matchend; + calcoffsets(); + curr = prev; + calcoffsets(); + while (next && (curr = curr->right)) + calcoffsets(); + } + sel = matchend; + break; + case XK_Escape: + cleanup(); + exit(1); + case XK_Home: + if (sel == matches) { + cursor = 0; + break; + } + sel = curr = matches; + calcoffsets(); + break; + case XK_Left: + if (cursor > 0 && (!sel || !sel->left || lines > 0)) { + cursor = nextrune(-1); + break; + } + if (lines > 0) + return; + /* fallthrough */ + case XK_Up: + if (sel && sel->left && (sel = sel->left)->right == curr) { + curr = prev; + calcoffsets(); + } + break; + case XK_Next: + if (!next) + return; + sel = curr = next; + calcoffsets(); + break; + case XK_Prior: + if (!prev) + return; + sel = curr = prev; + calcoffsets(); + break; + case XK_Return: + case XK_KP_Enter: + if (!(ev->state & ControlMask)) { + for (int i = 0;i < selidsize;i++) + if (selid[i] != -1 && (!sel || sel->id != selid[i])) + puts(items[selid[i]].text); + if (sel && !(ev->state & ShiftMask)) + puts(sel->text); + else + puts(text); + cleanup(); + exit(0); + } + break; + case XK_Right: + if (text[cursor] != '\0') { + cursor = nextrune(+1); + break; + } + if (lines > 0) + return; + /* fallthrough */ + case XK_Down: + if (sel && sel->right && (sel = sel->right) == next) { + curr = next; + calcoffsets(); + } + break; + case XK_Tab: + if (!sel) + return; + strncpy(text, sel->text, sizeof text - 1); + text[sizeof text - 1] = '\0'; + cursor = strlen(text); + match(); + break; + } + +draw: + drawmenu(); +} + +static void +buttonpress(XEvent *e) +{ + struct item *item; + XButtonPressedEvent *ev = &e->xbutton; + int x = 0, y = 0, h = bh, w; + + if (ev->window != win) + return; + + /* right-click: exit */ + if (ev->button == Button3) + exit(1); + + if (prompt && *prompt) + x += promptw; + + /* input field */ + w = (lines > 0 || !matches) ? mw - x : inputw; + + /* left-click on input: clear input, + * NOTE: if there is no left-arrow the space for < is reserved so + * add that to the input width */ + if (ev->button == Button1 && + ((lines <= 0 && ev->x >= 0 && ev->x <= x + w + + ((!prev || !curr->left) ? TEXTW("<") : 0)) || + (lines > 0 && ev->y >= y && ev->y <= y + h))) { + insert(NULL, -cursor); + drawmenu(); + return; + } + /* middle-mouse click: paste selection */ + if (ev->button == Button2) { + XConvertSelection(dpy, (ev->state & ShiftMask) ? clip : XA_PRIMARY, + utf8, utf8, win, CurrentTime); + drawmenu(); + return; + } + /* scroll up */ + if (ev->button == Button4 && prev) { + sel = curr = prev; + calcoffsets(); + drawmenu(); + return; + } + /* scroll down */ + if (ev->button == Button5 && next) { + sel = curr = next; + calcoffsets(); + drawmenu(); + return; + } + if (ev->button != Button1) + return; + /* disabled below, needs to be fixed */ + /* + if (ev->state & ~ControlMask) + return; + */ + if (lines > 0) { + /* vertical list: (ctrl)left-click on item */ + w = mw - x; + for (item = curr; item != next; item = item->right) { + y += h; + if (ev->y >= y && ev->y <= (y + h)) { + puts(item->text); + if (!(ev->state & ControlMask)) + exit(0); + sel = item; + if (sel) { + sel->out = 1; + drawmenu(); + } + return; + } + } + } else if (matches) { + /* left-click on left arrow */ + x += inputw; + w = TEXTW("<"); + if (prev && curr->left) { + if (ev->x >= x && ev->x <= x + w) { + sel = curr = prev; + calcoffsets(); + drawmenu(); + return; + } + } + /* horizontal list: (ctrl)left-click on item */ + for (item = curr; item != next; item = item->right) { + x += w; + w = MIN(TEXTW(item->text), mw - x - TEXTW(">")); + if (ev->x >= x && ev->x <= x + w) { + puts(item->text); + if (!(ev->state & ControlMask)) + exit(0); + sel = item; + if (sel) { + sel->out = 1; + drawmenu(); + } + return; + } + } + /* left-click on right arrow */ + w = TEXTW(">"); + x = mw - w; + if (next && ev->x >= x && ev->x <= x + w) { + sel = curr = next; + calcoffsets(); + drawmenu(); + return; + } + } +} + +static void +mousemove(XEvent *e) +{ + struct item *item; + XPointerMovedEvent *ev = &e->xmotion; + int x = 0, y = 0, h = bh, w; + + if (lines > 0) { + w = mw - x; + for (item = curr; item != next; item = item->right) { + y += h; + if (ev->y >= y && ev->y <= (y + h)) { + sel = item; + calcoffsets(); + drawmenu(); + return; + } + } + } else if (matches) { + x += inputw + promptw; + w = TEXTW("<"); + for (item = curr; item != next; item = item->right) { + x += w; + w = MIN(TEXTW(item->text), mw - x - TEXTW(">")); + if (ev->x >= x && ev->x <= x + w) { + sel = item; + calcoffsets(); + drawmenu(); + return; + } + } + } +} + +static void +paste(void) +{ + char *p, *q; + int di; + unsigned long dl; + Atom da; + + /* we have been given the current selection, now insert it into input */ + if (XGetWindowProperty(dpy, win, utf8, 0, (sizeof text / 4) + 1, False, + utf8, &da, &di, &dl, &dl, (unsigned char **)&p) + == Success && p) { + insert(p, (q = strchr(p, '\n')) ? q - p : (ssize_t)strlen(p)); + XFree(p); + } + drawmenu(); +} + +static void +readstdin(void) +{ + char buf[sizeof text], *p; + size_t i, imax = 0, size = 0; + unsigned int tmpmax = 0; + + if(passwd){ + inputw = lines = 0; + return; + } + /* read each line from stdin and add it to the item list */ + for (i = 0; fgets(buf, sizeof buf, stdin); i++) { + if (i + 1 >= size / sizeof *items) + if (!(items = realloc(items, (size += BUFSIZ)))) + die("cannot realloc %u bytes:", size); + if ((p = strchr(buf, '\n'))) + *p = '\0'; + if (!(items[i].text = strdup(buf))) + die("cannot strdup %u bytes:", strlen(buf) + 1); + items[i].id = i; /* for multiselect */ + items[i].hp = arrayhas(hpitems, hplength, items[i].text); + drw_font_getexts(drw->fonts, buf, strlen(buf), &tmpmax, NULL); + if (tmpmax > inputw) { + inputw = tmpmax; + imax = i; + } + } + if (items) + items[i].text = NULL; + inputw = items ? TEXTW(items[imax].text) : 0; + lines = MIN(lines, i); +} + +static void +run(void) +{ + XEvent ev; + + while (!XNextEvent(dpy, &ev)) { + if (XFilterEvent(&ev, win)) + continue; + switch(ev.type) { + case DestroyNotify: + if (ev.xdestroywindow.window != win) + break; + cleanup(); + exit(1); + case ButtonPress: + buttonpress(&ev); + break; + case MotionNotify: + mousemove(&ev); + break; + case Expose: + if (ev.xexpose.count == 0) + drw_map(drw, win, 0, 0, mw, mh); + break; + case FocusIn: + /* regrab focus from parent window */ + if (ev.xfocus.window != win) + grabfocus(); + break; + case KeyPress: + keypress(&ev.xkey); + break; + case SelectionNotify: + if (ev.xselection.property == utf8) + paste(); + break; + case VisibilityNotify: + if (ev.xvisibility.state != VisibilityUnobscured) + XRaiseWindow(dpy, win); + break; + } + } +} + +static void +setup(void) +{ + int x, y, i, j; + unsigned int du; + XSetWindowAttributes swa; + XIM xim; + Window w, dw, *dws; + XWindowAttributes wa; + XClassHint ch = {"dmenu", "dmenu"}; +#ifdef XINERAMA + XineramaScreenInfo *info; + Window pw; + int a, di, n, area = 0; +#endif + /* init appearance */ + for (j = 0; j < SchemeLast; j++) + scheme[j] = drw_scm_create(drw, colors[j], alphas[j], 2); + + clip = XInternAtom(dpy, "CLIPBOARD", False); + utf8 = XInternAtom(dpy, "UTF8_STRING", False); + + /* calculate menu geometry */ + bh = drw->fonts->h + 2; + bh = MAX(bh,lineheight); /* make a menu line AT LEAST 'lineheight' tall */ + lines = MAX(lines, 0); + mh = (lines + 1) * bh; +#ifdef XINERAMA + i = 0; + if (parentwin == root && (info = XineramaQueryScreens(dpy, &n))) { + XGetInputFocus(dpy, &w, &di); + if (mon >= 0 && mon < n) + i = mon; + else if (w != root && w != PointerRoot && w != None) { + /* find top-level window containing current input focus */ + do { + if (XQueryTree(dpy, (pw = w), &dw, &w, &dws, &du) && dws) + XFree(dws); + } while (w != root && w != pw); + /* find xinerama screen with which the window intersects most */ + if (XGetWindowAttributes(dpy, pw, &wa)) + for (j = 0; j < n; j++) + if ((a = INTERSECT(wa.x, wa.y, wa.width, wa.height, info[j])) > area) { + area = a; + i = j; + } + } + /* no focused window is on screen, so use pointer location instead */ + if (mon < 0 && !area && XQueryPointer(dpy, root, &dw, &dw, &x, &y, &di, &di, &du)) + for (i = 0; i < n; i++) + if (INTERSECT(x, y, 1, 1, info[i])) + break; + + x = info[i].x_org + dmx; + y = info[i].y_org + (topbar ? dmy : info[i].height - mh - dmy); + mw = (dmw>0 ? dmw : info[i].width); + XFree(info); + } else +#endif + { + if (!XGetWindowAttributes(dpy, parentwin, &wa)) + die("could not get embedding window attributes: 0x%lx", + parentwin); + x = dmx; + y = topbar ? dmy : wa.height - mh - dmy; + mw = (dmw>0 ? dmw : wa.width); + } + promptw = (prompt && *prompt) ? TEXTW(prompt) - lrpad / 4 : 0; + inputw = MIN(inputw, mw/3); + match(); + + /* create menu window */ + swa.override_redirect = True; + swa.background_pixel = scheme[SchemeNorm][ColBg].pixel; + swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask | + ButtonPressMask | PointerMotionMask; + win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0, + CopyFromParent, CopyFromParent, CopyFromParent, + CWOverrideRedirect | CWBackPixel | CWEventMask, &swa); + swa.background_pixel = 0; + swa.border_pixel = 0; + swa.colormap = cmap; + swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask; + win = XCreateWindow(dpy, parentwin, x, y, mw, mh, border_width, + depth, InputOutput, visual, + CWOverrideRedirect | CWBackPixel | CWColormap | CWEventMask | CWBorderPixel, &swa); + XSetWindowBorder(dpy, win, scheme[SchemeSel][ColBg].pixel); + XSetClassHint(dpy, win, &ch); + + + /* input methods */ + if ((xim = XOpenIM(dpy, NULL, NULL, NULL)) == NULL) + die("XOpenIM failed: could not open input device"); + + xic = XCreateIC(xim, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, + XNClientWindow, win, XNFocusWindow, win, NULL); + + XMapRaised(dpy, win); + if (embed) { + XSelectInput(dpy, parentwin, FocusChangeMask | SubstructureNotifyMask); + if (XQueryTree(dpy, parentwin, &dw, &w, &dws, &du) && dws) { + for (i = 0; i < du && dws[i] != win; ++i) + XSelectInput(dpy, dws[i], FocusChangeMask); + XFree(dws); + } + grabfocus(); + } + drw_resize(drw, mw, mh); + drawmenu(); +} + +static void +usage(void) +{ + fputs("usage: dmenu [-bfiv] [-l lines] [-h height] [-p prompt] [-fn font] [-m monitor]\n" + " [-nb color] [-nf color] [-sb color] [-sf color] [-w windowid]\n", stderr); + exit(1); +} + +int +main(int argc, char *argv[]) +{ + XWindowAttributes wa; + int i, fast = 0; + + for (i = 1; i < argc; i++) + /* these options take no arguments */ + if (!strcmp(argv[i], "-v")) { /* prints version information */ + puts("dmenu-"VERSION); + exit(0); + } else if (!strcmp(argv[i], "-b")) /* appears at the bottom of the screen */ + topbar = 0; + else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */ + fast = 1; + else if (!strcmp(argv[i], "-F")) /* grabs keyboard before reading stdin */ + fuzzy = 1; + else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */ + fstrncmp = strncasecmp; + fstrstr = cistrstr; + } else if (!strcmp(argv[i], "-P")){ /* is the input a password */ + passwd = 1; + } else if (i + 1 == argc) + usage(); + /* these options take one argument */ + else if (!strcmp(argv[i], "-l")) /* number of lines in vertical list */ + lines = atoi(argv[++i]); + else if (!strcmp(argv[i], "-h")) { /* minimum height of one menu line */ + lineheight = atoi(argv[++i]); + lineheight = MAX(lineheight, min_lineheight); + } + else if (!strcmp(argv[i], "-x")) /* window x offset */ + dmx = atoi(argv[++i]); + else if (!strcmp(argv[i], "-y")) /* window y offset (from bottom up if -b) */ + dmy = atoi(argv[++i]); + else if (!strcmp(argv[i], "-z")) /* make dmenu this wide */ + dmw = atoi(argv[++i]); + else if (!strcmp(argv[i], "-m")) + mon = atoi(argv[++i]); + else if (!strcmp(argv[i], "-p")) /* adds prompt to left of input field */ + prompt = argv[++i]; + else if (!strcmp(argv[i], "-fn")) /* font or font set */ + fonts[0] = argv[++i]; + else if (!strcmp(argv[i], "-nb")) /* normal background color */ + colors[SchemeNorm][ColBg] = argv[++i]; + else if (!strcmp(argv[i], "-nf")) /* normal foreground color */ + colors[SchemeNorm][ColFg] = argv[++i]; + else if (!strcmp(argv[i], "-sb")) /* selected background color */ + colors[SchemeSel][ColBg] = argv[++i]; + else if (!strcmp(argv[i], "-sf")) /* selected foreground color */ + colors[SchemeSel][ColFg] = argv[++i]; + else if (!strcmp(argv[i], "-hb")) /* high priority background color */ + colors[SchemeHp][ColBg] = argv[++i]; + else if (!strcmp(argv[i], "-hf")) /* low priority background color */ + colors[SchemeHp][ColFg] = argv[++i]; + else if (!strcmp(argv[i], "-w")) /* embedding window id */ + embed = argv[++i]; + else if (!strcmp(argv[i], "-nhb")) /* normal hi background color */ + colors[SchemeNormHighlight][ColBg] = argv[++i]; + else if (!strcmp(argv[i], "-nhf")) /* normal hi foreground color */ + colors[SchemeNormHighlight][ColFg] = argv[++i]; + else if (!strcmp(argv[i], "-shb")) /* selected hi background color */ + colors[SchemeSelHighlight][ColBg] = argv[++i]; + else if (!strcmp(argv[i], "-shf")) /* selected hi foreground color */ + colors[SchemeSelHighlight][ColFg] = argv[++i]; + else if (!strcmp(argv[i], "-hp")) + hpitems = tokenize(argv[++i], ",", &hplength); + else if (!strcmp(argv[i], "-it")) { /* embedding window id */ + const char * text = argv[++i]; + insert(text, strlen(text)); + } + else + usage(); + + if (!setlocale(LC_CTYPE, "") || !XSupportsLocale()) + fputs("warning: no locale support\n", stderr); + if (!(dpy = XOpenDisplay(NULL))) + die("cannot open display"); + screen = DefaultScreen(dpy); + root = RootWindow(dpy, screen); + if (!embed || !(parentwin = strtol(embed, NULL, 0))) + parentwin = root; + if (!XGetWindowAttributes(dpy, parentwin, &wa)) + die("could not get embedding window attributes: 0x%lx", + parentwin); + xinitvisual(); + drw = drw_create(dpy, screen, root, wa.width, wa.height, visual, depth, cmap); + if (!drw_fontset_create(drw, fonts, LENGTH(fonts))) + die("no fonts could be loaded."); + lrpad = drw->fonts->h; + +#ifdef __OpenBSD__ + if (pledge("stdio rpath", NULL) == -1) + die("pledge"); +#endif + + if (fast && !isatty(0)) { + grabkeyboard(); + readstdin(); + } else { + readstdin(); + grabkeyboard(); + } + setup(); + run(); + + return 1; /* unreachable */ +} diff --git a/.local/src/dmenu/dmenu.o b/.local/src/dmenu/dmenu.o new file mode 100644 index 0000000000000000000000000000000000000000..17c69acf8408125a9cc7cf4c4247e25ed2370fec GIT binary patch literal 45624 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 literal 0 HcmV?d00001 diff --git a/.local/src/dmenu/drw.o b/.local/src/dmenu/drw.o new file mode 100644 index 0000000000000000000000000000000000000000..af000c29b5ce17cafa23932e930acae56af857ed GIT binary patch literal 10560 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 Tv61k;OMd>*O4euWZ6E(XuWe}e literal 0 HcmV?d00001 diff --git a/.local/src/dmenu/patches/dmenu-border-4.9.diff b/.local/src/dmenu/patches/dmenu-border-4.9.diff new file mode 100644 index 00000000..89b44376 --- /dev/null +++ b/.local/src/dmenu/patches/dmenu-border-4.9.diff @@ -0,0 +1,25 @@ +diff -up dmenu-4.9-b/config.def.h dmenu-4.9-a/config.def.h +--- dmenu-4.9-b/config.def.h 2019-02-02 13:55:02.000000000 +0100 ++++ dmenu-4.9-a/config.def.h 2019-05-19 02:10:12.740040403 +0200 +@@ -21,3 +21,6 @@ static unsigned int lines = 0; + * for example: " /?\"&[]" + */ + static const char worddelimiters[] = " "; ++ ++/* Size of the window border */ ++static const unsigned int border_width = 5; +diff -up dmenu-4.9-b/dmenu.c dmenu-4.9-a/dmenu.c +--- dmenu-4.9-b/dmenu.c 2019-02-02 13:55:02.000000000 +0100 ++++ dmenu-4.9-a/dmenu.c 2019-05-19 02:11:20.966710117 +0200 +@@ -654,9 +654,10 @@ setup(void) + swa.override_redirect = True; + swa.background_pixel = scheme[SchemeNorm][ColBg].pixel; + swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask; +- win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0, ++ win = XCreateWindow(dpy, parentwin, x, y, mw, mh, border_width, + CopyFromParent, CopyFromParent, CopyFromParent, + CWOverrideRedirect | CWBackPixel | CWEventMask, &swa); ++ XSetWindowBorder(dpy, win, scheme[SchemeSel][ColBg].pixel); + XSetClassHint(dpy, win, &ch); + + /* open input methods */ diff --git a/.local/src/dmenu/stest b/.local/src/dmenu/stest new file mode 100755 index 0000000000000000000000000000000000000000..91a34fb5c790de7042b5668c71f8c57c9d1ec501 GIT binary patch literal 16408 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 bgF@V6bI$FuBHgal?2p`FYOJ*x*jVvD8kxUH literal 0 HcmV?d00001 diff --git a/.local/src/dmenu/stest.o b/.local/src/dmenu/stest.o new file mode 100644 index 0000000000000000000000000000000000000000..63f314a7efb3ffb9d8965926f94dcafed3005205 GIT binary patch literal 5248 zcmbW4Z){uD6~M3UG%*eJbN{T%U}I)=AZX+fr`vFuisHl_FW^G7u4Pga632e|vpRNW zzefUt)yQ_i7#B8*0PRDI_&}!#sbbSsZBu8|Qle>0Tcv$0L#SfQ%tSY-WrGRtocr#v zZ!YmZ>`2e|p5Hy^+nu@Q0EUi*L*N5+$xH)ZkfulXEB12b>s?8!U&U@nxqztPKu->>QTO!HKgFe~s9=_^f$H zpf?vd*dL!xB+Z%Gxzyr!vpM_0rR52L>A=i<%EVrVdI)q~pV-Jg<-vM$xAo>&UD8KBM}87s|H}lDwvTdjN!LP{8GA(2GBQqta=VoujOHj8aW2Hek*9 zaKBc%3Y{m%T*V7ov5xGcetUC%+0E>3qj1*Scx&}fK#fLiw0zMhdqTCn6`K_!MaV4xOlW=G{m&8vJ45U#_J@B>#OEvwh&?-CMe9Z{)cfZJe)n zHr^U7yy4A%ls2l)!kpVRR{qe?qL(9u_v3pLm$*4BmmlUxx#JbPiywFWHn8J^^$()u z_Y5aB9Ki0Z7ttM-nz%IbX2&adoTH6BY&8Nk4bxU9ysKBB2ugpqyNv31&|lvXb0)9P z8`Wr6BOl&qd(OkIE019QK5^nYPZ6Wa+1rAlQmP$Zan|xMZ$`^+;3B4CWl=(Dv2O^Va*-uZEyw89!%*Z}3 z#%{(o;`8@GGa%R~-l4#bxTC(Fg6D4EAKaeX-M$_`5uX=Q0K?Py`oLt^*8?uY80&ut?yH0S181BrM2uDP$5@M$oC8y93bbU^L+!uytyFGlyI2?9p!UyArGJe@{H54FF=dD zCUoLA3ce!Z;8~G)SSNLxt+Nh(?==~AZspnrcngJsW$vr8~$P&{!$zM z<2L-YHk{=wGiT`u#$R9z6*iNK&$6_+#4@QQTZmhUIi|-(2Jk0@KZD?uG_zS2&(1zL zz-AV+^J!~_nalGQizgChF2_j*v~d~p2-pY|Z# z630GqdS0PD-kZenzC*!ySYO0A6N2OUqLBTp;JV=^U?E;;y)|wzN6T06Z-cQ{=Cp%Q2247zohV&h5l2~s(JXmV*eAN zzpHTauPgi)LgxnpdsO3p7B{*Mze#Y)!zmF*SNM+v4@+_6I=oY{uL=9RC42lMMCURs z@$C|)Hv$f0-HwYmQRt%}m+zMqP92V86#t^cF%EqLTvGV2h5n&vF>msHMCXsZ2QG>q z5bMG@ua$VO;AoHcGTFx^`%MymRN@$G2V5vciC+gg#rc60|9Xj^kT~v@?D_X6=(rwy zcN3?2L4Je8&q;B0>itCoSY%x6rO(P)jtYt4UJ&{>hFw@|b&RC`nU$6cA%_H>Lw5=~@;kA;r9un^6+~iC) zzF^Ah`ak;t@Wa%pUtB}LP!{E6fiBX_$M6Sh3UfUKmn>nCGy@L@1Zx<5>AMQ=4V0VU zLN3e@aXF>TOI)2FzyC0%>R%K7zf&9n6iBrAororb3Mc;q3a4qE-FzJ9fSNoy3Peh~YH6{_uN>{HgwMKkD4* wG9?bQN1P*mqv56cn8{NX!sJ^#yM{YRUgPDl0sFT4C_g8%>k literal 0 HcmV?d00001 diff --git a/.local/src/dmenu/util.o b/.local/src/dmenu/util.o new file mode 100644 index 0000000000000000000000000000000000000000..8e55fa18d6ada0bfba70d02362b40ffaf2d35ebf GIT binary patch literal 2224 zcmbtUO=uHQ5T0$TjWtbT?V(Z+5mrf{E}Ik~q$<%yyGoE+D{3#ACR-cKpPNldRWM>b zgb?V#qX!Qj6g(94C^YE7t4B}Pqfig^ASe~$%?e!*H_wR z+#gQLxBTIhT=s{b%5|js!_VYZOTUnxTl%%UX6d(b+tTmkPpGq6v+rmK4Gjy1B5kdC z3LW&mXss1_iv>os)~p=RT1i>`n3Mw^gi#NxEFAoX2Gl1&Yn~v>9Mc*b)Ud}2Xic>0 z4|+TC>cRCO#w|3`vDD_k`T&R4>1-_YvYq&(UG-`$t0N1T`;bZJ^QBB2U}|zQ9t=%g zx*85f#+9fN2}afExEfO#KRRyF-kt7tqjojnaLGz| z^@i91Tmi-r6@7;rexwT?>Vhj>aGJVXeVmikC-2WXC&VVY@S$qv@=6Aj)T9d8oDLN; zs~ZL^EtHL1(Of{^$m>N|C|Au4lrdB?K(FOY(Cv$XbxEqW!nxab;7`YvR}81SuooA{ z-!RcV5AE=@9h6{5Yy=>Xttsx zm@~xAiN_o+jADS!FTn{+*XXcOJS<^9+GN`A)BaCT{20R-oghnQoEtIR36CL8HUBlA z{(V$4ic1u}Kkt{v`2JicFhDl_*hQIR1pY7NF`mcu1q^VTb4V|_fiBz|h|xO}?<%@b zWBJa$oZoX7xkPp5zhwE-R7? +Date: Fri, 27 Aug 2021 01:14:44 +0100 +Subject: [PATCH] 6.2 focusmaster return + +--- + dwm.c | 39 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 39 insertions(+) + +diff --git a/dwm.c b/dwm.c +index 4465af1..5219cbd 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -127,6 +127,7 @@ struct Monitor { + Client *clients; + Client *sel; + Client *stack; ++ Client *tagmarked[32]; + Monitor *next; + Window barwin; + const Layout *lt[2]; +@@ -167,6 +168,7 @@ static void enternotify(XEvent *e); + static void expose(XEvent *e); + static void focus(Client *c); + static void focusin(XEvent *e); ++static void focusmaster(const Arg *arg); + static void focusmon(const Arg *arg); + static void focusstack(const Arg *arg); + static int getrootptr(int *x, int *y); +@@ -659,6 +661,10 @@ detach(Client *c) + { + Client **tc; + ++ for (int i = 1; i < LENGTH(tags); i++) ++ if (c == c->mon->tagmarked[i]) ++ c->mon->tagmarked[i] = NULL; ++ + for (tc = &c->mon->clients; *tc && *tc != c; tc = &(*tc)->next); + *tc = c->next; + } +@@ -815,6 +821,34 @@ focusin(XEvent *e) + setfocus(selmon->sel); + } + ++void ++focusmaster(const Arg *arg) ++{ ++ Client *master; ++ ++ if (selmon->nmaster > 1) ++ return; ++ if (!selmon->sel || (selmon->sel->isfullscreen && lockfullscreen)) ++ return; ++ ++ master = nexttiled(selmon->clients); ++ ++ if (!master) ++ return; ++ ++ int i; ++ for (i = 0; !(selmon->tagset[selmon->seltags] & 1 << i); i++); ++ i++; ++ ++ if (selmon->sel == master) { ++ if (selmon->tagmarked[i] && ISVISIBLE(selmon->tagmarked[i])) ++ focus(selmon->tagmarked[i]); ++ } else { ++ selmon->tagmarked[i] = selmon->sel; ++ focus(master); ++ } ++} ++ + void + focusmon(const Arg *arg) + { +@@ -1202,6 +1236,11 @@ nexttiled(Client *c) + void + pop(Client *c) + { ++ int i; ++ for (i = 0; !(selmon->tagset[selmon->seltags] & 1 << i); i++); ++ i++; ++ ++ c->mon->tagmarked[i] = nexttiled(c->mon->clients); + detach(c); + attach(c); + focus(c); +-- +2.33.0 + diff --git a/.local/src/dwm/patches/dwm-sticky-6.1.diff b/.local/src/dwm/patches/dwm-sticky-6.1.diff new file mode 100644 index 00000000..717793f5 --- /dev/null +++ b/.local/src/dwm/patches/dwm-sticky-6.1.diff @@ -0,0 +1,58 @@ +diff --git a/config.def.h b/config.def.h +index 7054c06..9b5d5b8 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -76,6 +76,7 @@ static Key keys[] = { + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, ++ { MODKEY, XK_s, togglesticky, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, + { MODKEY, XK_comma, focusmon, {.i = -1 } }, +diff --git a/dwm.c b/dwm.c +index 0362114..0ef5c7f 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -49,7 +49,7 @@ + #define CLEANMASK(mask) (mask & ~(numlockmask|LockMask) & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)) + #define INTERSECT(x,y,w,h,m) (MAX(0, MIN((x)+(w),(m)->wx+(m)->ww) - MAX((x),(m)->wx)) \ + * MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy))) +-#define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags])) ++#define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]) || C->issticky) + #define LENGTH(X) (sizeof X / sizeof X[0]) + #define MOUSEMASK (BUTTONMASK|PointerMotionMask) + #define WIDTH(X) ((X)->w + 2 * (X)->bw) +@@ -92,7 +92,7 @@ struct Client { + int basew, baseh, incw, inch, maxw, maxh, minw, minh; + int bw, oldbw; + unsigned int tags; +- int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; ++ int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, issticky; + Client *next; + Client *snext; + Monitor *mon; +@@ -211,6 +211,7 @@ static void tagmon(const Arg *arg); + static void tile(Monitor *); + static void togglebar(const Arg *arg); + static void togglefloating(const Arg *arg); ++static void togglesticky(const Arg *arg); + static void toggletag(const Arg *arg); + static void toggleview(const Arg *arg); + static void unfocus(Client *c, int setfocus); +@@ -1713,6 +1714,15 @@ togglefloating(const Arg *arg) + } + + void ++togglesticky(const Arg *arg) ++{ ++ if (!selmon->sel) ++ return; ++ selmon->sel->issticky = !selmon->sel->issticky; ++ arrange(selmon); ++} ++ ++void + toggletag(const Arg *arg) + { + unsigned int newtags; diff --git a/.local/src/dwm/patches/dwm-zoomswap-6.2.diff b/.local/src/dwm/patches/dwm-zoomswap-6.2.diff new file mode 100644 index 00000000..3c658e64 --- /dev/null +++ b/.local/src/dwm/patches/dwm-zoomswap-6.2.diff @@ -0,0 +1,95 @@ +From 3867ef5a68e15a4faff377ddbc8371853de4a800 Mon Sep 17 00:00:00 2001 +From: aleks +Date: Sat, 19 Oct 2019 00:56:21 +0200 +Subject: [PATCH] Put master to exact position of zoomed client + +The default behaviour when zooming a client is to put the previous +master on top of the client-stack. This patch puts the master to the +exact position of the zoomed client in the stack. +--- + dwm.c | 44 ++++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 40 insertions(+), 4 deletions(-) + +diff --git a/dwm.c b/dwm.c +index 4465af1..1719b36 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -165,6 +165,7 @@ static void drawbar(Monitor *m); + static void drawbars(void); + static void enternotify(XEvent *e); + static void expose(XEvent *e); ++static Client *findbefore(Client *c); + static void focus(Client *c); + static void focusin(XEvent *e); + static void focusmon(const Arg *arg); +@@ -235,6 +236,7 @@ static int xerrorstart(Display *dpy, XErrorEvent *ee); + static void zoom(const Arg *arg); + + /* variables */ ++static Client *prevzoom = NULL; + static const char broken[] = "broken"; + static char stext[256]; + static int screen; +@@ -780,6 +782,16 @@ expose(XEvent *e) + drawbar(m); + } + ++Client * ++findbefore(Client *c) ++{ ++ Client *tmp; ++ if (c == selmon->clients) ++ return NULL; ++ for (tmp = selmon->clients; tmp && tmp->next != c; tmp = tmp->next); ++ return tmp; ++} ++ + void + focus(Client *c) + { +@@ -2114,14 +2126,38 @@ void + zoom(const Arg *arg) + { + Client *c = selmon->sel; ++ Client *at = NULL, *cold, *cprevious = NULL; + + if (!selmon->lt[selmon->sellt]->arrange + || (selmon->sel && selmon->sel->isfloating)) + return; +- if (c == nexttiled(selmon->clients)) +- if (!c || !(c = nexttiled(c->next))) +- return; +- pop(c); ++ if (c == nexttiled(selmon->clients)) { ++ at = findbefore(prevzoom); ++ if (at) ++ cprevious = nexttiled(at->next); ++ if (!cprevious || cprevious != prevzoom) { ++ prevzoom = NULL; ++ if (!c || !(c = nexttiled(c->next))) ++ return; ++ } else ++ c = cprevious; ++ } ++ cold = nexttiled(selmon->clients); ++ if (c != cold && !at) ++ at = findbefore(c); ++ detach(c); ++ attach(c); ++ /* swap windows instead of pushing the previous one down */ ++ if (c != cold && at) { ++ prevzoom = cold; ++ if (cold && at != cold) { ++ detach(cold); ++ cold->next = at->next; ++ at->next = cold; ++ } ++ } ++ focus(c); ++ arrange(c->mon); + } + + int +-- +2.23.0 + diff --git a/.local/src/dwm/rules.h b/.local/src/dwm/rules.h index 56eb6a10..6b3d839b 100644 --- a/.local/src/dwm/rules.h +++ b/.local/src/dwm/rules.h @@ -20,6 +20,7 @@ static const Rule rules[] = { /* class instance title tags mask isfloating floatpos isterminal noswallow monitor */ { "discord" , NULL , NULL , 1 << 8 , NULL , NULL , 0 , 0 , -1 }, +{ "spot" , NULL , NULL , 1 << 8 , NULL , NULL , 0 , 0 , -1 }, { "Signal" , NULL , NULL , 1 << 8 , NULL , NULL , 0 , 0 , -1 }, { "Brave-browser" , NULL , NULL , 1 << 1 , NULL , NULL , 0 , 0 , -1 }, { "Firefox" , NULL , NULL , 1 << 1 , NULL , NULL , 0 , 0 , -1 }, @@ -29,7 +30,8 @@ static const Rule rules[] = { { "tabbed-surf" , NULL , NULL , 1 << 1 , NULL , NULL , 0 , 0 , -1 }, { "bitwarden" , NULL , NULL , 1 << 6 , NULL , NULL , 0 , 0 , -1 }, { "QtPass" , NULL , NULL , 1 << 6 , NULL , NULL , 0 , 0 , -1 }, -{ "st-256color" , NULL , NULL , 1 << 0 , NULL , NULL , 1 , 0 , -1 }, +{ "st-256color" , NULL , NULL , 1 << 0 , NULL , NULL , 1 , 1 , -1 }, +{ "gef_helper" , NULL , NULL , 0 , NULL , NULL , 1 , 1 , -1 }, { "Tor Browser" , NULL , NULL , 1 << 1 , NULL , NULL , 0 , 0 , -1 }, { "TelegramDesktop" , NULL , NULL , 1 << 8 , NULL , NULL , 0 , 0 , -1 }, { "thunderbird" , NULL , NULL , 1 << 7 , NULL , NULL , 0 , 0 , -1 }, @@ -50,6 +52,7 @@ static const Rule rules[] = { { "htop" , NULL , NULL , 0 , 1 , "50% 50% 1200W 600H" , 0 , 0 , -1 }, { "Pavucontrol" , NULL , NULL , 0 , 1 , "50% 50% 1200W 600H" , 0 , 0 , -1 }, { "Zathura" , NULL , NULL , 0 , 0 , NULL , 0 , 1 , -1 }, +{ "DEA" , NULL , NULL , 0 , 1 , NULL , 0 , 1 , -1 }, { "Qemu-system-x86_64", NULL , NULL , 0 , 1 , NULL , 0 , 1 , -1 }, { "spfeh" , NULL , NULL , SPTAG(1) , 1 , NULL , 0 , 0 , -1 }, { "obsidian" , NULL , NULL , 1 << 4 , 0 , NULL , 0 , 1 , -1 }, diff --git a/.local/src/dwm/theme.h b/.local/src/dwm/theme.h index 521dc404..1d71515a 100644 --- a/.local/src/dwm/theme.h +++ b/.local/src/dwm/theme.h @@ -27,8 +27,8 @@ static int floatposgrid_x = 5; /* float grid columns */ static int floatposgrid_y = 5; /* float grid rows */ static const char *fonts[] = { "CaskaydiaCove Nerd Font:size=10" }; -static const char fore[] = "#e5e9f0"; -static const char back[] = "#0f111a"; +static const char fore[] = "#cdd6f4"; +static const char back[] = "#1e1e2e"; static const char border[] = "#3a575c"; static const char col0[] = "#3b4252"; static const char col1[] = "#bf616a"; /* red */ diff --git a/.local/src/dwmblocks/config.h b/.local/src/dwmblocks/config.h index c5b496e6..5c71b921 100644 --- a/.local/src/dwmblocks/config.h +++ b/.local/src/dwmblocks/config.h @@ -17,12 +17,12 @@ static Block blocks[] = { { "", PATH("keyboard"), 120, 24}, { "", PATH("redshift"), 120, 29}, // { "", PATH("mpc"), 240, 29}, - { "", PATH("hamster"), 60, 31}, +// { "", PATH("hamster"), 60, 31}, { "", PATH("bluetooth"), 120, 26}, { "", PATH("timer"), 5, 30}, - { "", PATH("mconnect"), 120, 20}, - { "", PATH("todo"), 120, 27}, - { "", PATH("nextcloud"), 600, 25}, +// { "", PATH("mconnect"), 120, 20}, +// { "", PATH("todo"), 120, 27}, +// { "", PATH("nextcloud"), 600, 25}, { "", PATH("cpu-temp"), 30, 17}, { "", PATH("memory"), 120, 21}, { "", PATH("weather"), 60, 16}, diff --git a/.local/src/dwmblocks/dwmblocks b/.local/src/dwmblocks/dwmblocks new file mode 100755 index 0000000000000000000000000000000000000000..cc97c7e2bd8b2e843af2b1f6a4c9c40179cecb80 GIT binary patch literal 18048 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 literal 0 HcmV?d00001 diff --git a/.local/src/paleofetch/paleofetch b/.local/src/paleofetch/paleofetch new file mode 100755 index 0000000000000000000000000000000000000000..9a37714e556781058008515f4bf6764f80d744a0 GIT binary patch literal 23600 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 literal 0 HcmV?d00001 diff --git a/.local/src/scroll/scroll b/.local/src/scroll/scroll new file mode 100755 index 0000000000000000000000000000000000000000..da77ad8d1d7d85d0fa7e705869415640323aeab4 GIT binary patch literal 18792 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 +Date: Wed, 2 Oct 2019 14:59:00 -0400 +Subject: [PATCH] Add a message command. Fixes old version's bugs. + +--- + config.def.h | 9 ++++ + config.mk | 2 +- + slock.1 | 7 +++ + slock.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++-- + 4 files changed, 133 insertions(+), 5 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 9855e21..c2a0ab2 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -10,3 +10,12 @@ static const char *colorname[NUMCOLS] = { + + /* treat a cleared input like a wrong password (color) */ + static const int failonclear = 1; ++ ++/* default message */ ++static const char * message = "Suckless: Software that sucks less."; ++ ++/* text color */ ++static const char * text_color = "#ffffff"; ++ ++/* text size (must be a valid size) */ ++static const char * font_name = "6x10"; +diff --git a/config.mk b/config.mk +index 74429ae..c4ccf66 100644 +--- a/config.mk ++++ b/config.mk +@@ -12,7 +12,7 @@ X11LIB = /usr/X11R6/lib + + # includes and libs + INCS = -I. -I/usr/include -I${X11INC} +-LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr ++LIBS = -L/usr/lib -lc -lcrypt -L${X11LIB} -lX11 -lXext -lXrandr -lXinerama + + # flags + CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -DHAVE_SHADOW_H +diff --git a/slock.1 b/slock.1 +index 82cdcd6..946165f 100644 +--- a/slock.1 ++++ b/slock.1 +@@ -6,6 +6,8 @@ + .Sh SYNOPSIS + .Nm + .Op Fl v ++.Op Fl f ++.Op Fl m Ar message + .Op Ar cmd Op Ar arg ... + .Sh DESCRIPTION + .Nm +@@ -16,6 +18,11 @@ is executed after the screen has been locked. + .Bl -tag -width Ds + .It Fl v + Print version information to stdout and exit. ++.It Fl f ++List all valid X fonts and exit. ++.It Fl m Ar message ++Overrides default slock lock message. ++.TP + .El + .Sh SECURITY CONSIDERATIONS + To make sure a locked screen can not be bypassed by switching VTs +diff --git a/slock.c b/slock.c +index 5ae738c..610929b 100644 +--- a/slock.c ++++ b/slock.c +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -24,6 +25,9 @@ + + char *argv0; + ++/* global count to prevent repeated error messages */ ++int count_error = 0; ++ + enum { + INIT, + INPUT, +@@ -83,6 +87,98 @@ dontkillme(void) + } + #endif + ++static void ++writemessage(Display *dpy, Window win, int screen) ++{ ++ int len, line_len, width, height, s_width, s_height, i, j, k, tab_replace, tab_size; ++ XGCValues gr_values; ++ XFontStruct *fontinfo; ++ XColor color, dummy; ++ XineramaScreenInfo *xsi; ++ GC gc; ++ fontinfo = XLoadQueryFont(dpy, font_name); ++ ++ if (fontinfo == NULL) { ++ if (count_error == 0) { ++ fprintf(stderr, "slock: Unable to load font \"%s\"\n", font_name); ++ fprintf(stderr, "slock: Try listing fonts with 'slock -f'\n"); ++ count_error++; ++ } ++ return; ++ } ++ ++ tab_size = 8 * XTextWidth(fontinfo, " ", 1); ++ ++ XAllocNamedColor(dpy, DefaultColormap(dpy, screen), ++ text_color, &color, &dummy); ++ ++ gr_values.font = fontinfo->fid; ++ gr_values.foreground = color.pixel; ++ gc=XCreateGC(dpy,win,GCFont+GCForeground, &gr_values); ++ ++ /* To prevent "Uninitialized" warnings. */ ++ xsi = NULL; ++ ++ /* ++ * Start formatting and drawing text ++ */ ++ ++ len = strlen(message); ++ ++ /* Max max line length (cut at '\n') */ ++ line_len = 0; ++ k = 0; ++ for (i = j = 0; i < len; i++) { ++ if (message[i] == '\n') { ++ if (i - j > line_len) ++ line_len = i - j; ++ k++; ++ i++; ++ j = i; ++ } ++ } ++ /* If there is only one line */ ++ if (line_len == 0) ++ line_len = len; ++ ++ if (XineramaIsActive(dpy)) { ++ xsi = XineramaQueryScreens(dpy, &i); ++ s_width = xsi[0].width; ++ s_height = xsi[0].height; ++ } else { ++ s_width = DisplayWidth(dpy, screen); ++ s_height = DisplayHeight(dpy, screen); ++ } ++ ++ height = s_height*3/7 - (k*20)/3; ++ width = (s_width - XTextWidth(fontinfo, message, line_len))/2; ++ ++ /* Look for '\n' and print the text between them. */ ++ for (i = j = k = 0; i <= len; i++) { ++ /* i == len is the special case for the last line */ ++ if (i == len || message[i] == '\n') { ++ tab_replace = 0; ++ while (message[j] == '\t' && j < i) { ++ tab_replace++; ++ j++; ++ } ++ ++ XDrawString(dpy, win, gc, width + tab_size*tab_replace, height + 20*k, message + j, i - j); ++ while (i < len && message[i] == '\n') { ++ i++; ++ j = i; ++ k++; ++ } ++ } ++ } ++ ++ /* xsi should not be NULL anyway if Xinerama is active, but to be safe */ ++ if (XineramaIsActive(dpy) && xsi != NULL) ++ XFree(xsi); ++} ++ ++ ++ + static const char * + gethash(void) + { +@@ -194,6 +290,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, + locks[screen]->win, + locks[screen]->colors[color]); + XClearWindow(dpy, locks[screen]->win); ++ writemessage(dpy, locks[screen]->win, screen); + } + oldc = color; + } +@@ -300,7 +397,7 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen) + static void + usage(void) + { +- die("usage: slock [-v] [cmd [arg ...]]\n"); ++ die("usage: slock [-v] [-f] [-m message] [cmd [arg ...]]\n"); + } + + int +@@ -313,12 +410,25 @@ main(int argc, char **argv) { + gid_t dgid; + const char *hash; + Display *dpy; +- int s, nlocks, nscreens; ++ int i, s, nlocks, nscreens; ++ int count_fonts; ++ char **font_names; + + ARGBEGIN { + case 'v': + fprintf(stderr, "slock-"VERSION"\n"); + return 0; ++ case 'm': ++ message = EARGF(usage()); ++ break; ++ case 'f': ++ if (!(dpy = XOpenDisplay(NULL))) ++ die("slock: cannot open display\n"); ++ font_names = XListFonts(dpy, "*", 10000 /* list 10000 fonts*/, &count_fonts); ++ for (i=0; iwin, s); + nlocks++; +- else ++ } else { + break; ++ } + } + XSync(dpy, 0); + +-- +2.20.1 + diff --git a/.local/src/st/.gitignore b/.local/src/st/.gitignore new file mode 100644 index 00000000..4ff999b0 --- /dev/null +++ b/.local/src/st/.gitignore @@ -0,0 +1 @@ +ccls-cache diff --git a/.local/src/st/config.h b/.local/src/st/config.h index 1013af6e..a620b643 100644 --- a/.local/src/st/config.h +++ b/.local/src/st/config.h @@ -56,41 +56,42 @@ char *termname = "st-256color"; unsigned int tabspaces = 8; +/* Terminal colors (16 first used in escape sequence) */ static const char *colorname[] = { + /* 8 normal colors */ + "#45475A", + "#F38BA8", + "#A6E3A1", + "#F9E2AF", + "#89B4FA", + "#F5C2E7", + "#94E2D5", + "#BAC2DE", + + /* 8 bright colors */ + "#585B70", + "#F38BA8", + "#A6E3A1", + "#F9E2AF", + "#89B4FA", + "#F5C2E7", + "#94E2D5", + "#A6ADC8", + +[256] = "#CDD6F4", /* default foreground colour */ +[257] = "#1E1E2E", /* default background colour */ +[258] = "#F5E0DC", /*575268*/ - /* 8 normal colors */ - [0] = "#3b4252", /* black */ - [1] = "#bf616a", /* red */ - [2] = "#a3be8c", /* green */ - [3] = "#ebcb8b", /* yellow */ - [4] = "#81a1c1", /* blue */ - [5] = "#b48ead", /* magenta */ - [6] = "#88c0d0", /* cyan */ - [7] = "#e5e9f0", /* white */ - - /* 8 bright colors */ - [8] = "#4c566a", /* black */ - [9] = "#bf616a", /* red */ - [10] = "#a3be8c", /* green */ - [11] = "#ebcb8b", /* yellow */ - [12] = "#81a1c1", /* blue */ - [13] = "#b48ead", /* magenta */ - [14] = "#8fbcbb", /* cyan */ - [15] = "#eceff4", /* white */ - - /* special colors */ - [256] = "#0f111a", /* background */ - [257] = "#d8dee9", /* foreground */ - - /* More special colors */ }; -unsigned int defaultfg = 257; -unsigned int defaultbg = 256; -unsigned int bg = 256, bgUnfocused = 256; -static unsigned int defaultcs = 257; -static unsigned int defaultrcs = 256; - +/* + * foreground, background, cursor, reverse cursor + */ +unsigned int defaultfg = 256; +unsigned int defaultbg = 257; +unsigned int defaultcs = 258; +unsigned int bg = 257, bgUnfocused = 257; +static unsigned int defaultrcs = 258; static unsigned int defaultitalic = 7; static unsigned int defaultunderline = 7; diff --git a/.local/src/st/patches/st-externalpipe-eternal-0.8.3.diff b/.local/src/st/patches/st-externalpipe-eternal-0.8.3.diff new file mode 100644 index 00000000..4ba830b9 --- /dev/null +++ b/.local/src/st/patches/st-externalpipe-eternal-0.8.3.diff @@ -0,0 +1,74 @@ +From 2228468a6db1e648c69849860d30867c0e77650e Mon Sep 17 00:00:00 2001 +From: AtomToast +Date: Wed, 29 Apr 2020 02:31:29 +0200 +Subject: [PATCH] apply Luke Smiths external pipe eternal patch + +Enables external pipe to work on the entire scrollback history. + +Source: https://github.com/LukeSmithxyz/st/commit/da13ef12463d1870caed94584db464d68c6b3182 +Made to work on semi-vanilla st. + +This patch requires both externalpipe and scrollback patch in order to work +--- + st.c | 25 +++++++++++++++++++++---- + 1 file changed, 21 insertions(+), 4 deletions(-) + +diff --git a/st.c b/st.c +index d4c88a2..2716f44 100644 +--- a/st.c ++++ b/st.c +@@ -46,6 +46,7 @@ + #define TLINE(y) ((y) < term.scr ? term.hist[((y) + term.histi - \ + term.scr + HISTSIZE + 1) % HISTSIZE] : \ + term.line[(y) - term.scr]) ++#define TLINE_HIST(y) ((y) <= HISTSIZE-term.row+2 ? term.hist[(y)] : term.line[(y-HISTSIZE+term.row-3)]) + + enum term_mode { + MODE_WRAP = 1 << 0, +@@ -431,6 +432,20 @@ tlinelen(int y) + return i; + } + ++int ++tlinehistlen(int y) ++{ ++ int i = term.col; ++ ++ if (TLINE_HIST(y)[i - 1].mode & ATTR_WRAP) ++ return i; ++ ++ while (i > 0 && TLINE_HIST(y)[i - 1].u == ' ') ++ --i; ++ ++ return i; ++} ++ + void + selstart(int col, int row, int snap) + { +@@ -2025,16 +2040,18 @@ externalpipe(const Arg *arg) + /* ignore sigpipe for now, in case child exists early */ + oldsigpipe = signal(SIGPIPE, SIG_IGN); + newline = 0; +- for (n = 0; n < term.row; n++) { +- bp = term.line[n]; +- lastpos = MIN(tlinelen(n) + 1, term.col) - 1; ++ for (n = 0; n <= HISTSIZE + 2; n++) { ++ bp = TLINE_HIST(n); ++ lastpos = MIN(tlinehistlen(n) + 1, term.col) - 1; + if (lastpos < 0) + break; ++ if (lastpos == 0) ++ continue; + end = &bp[lastpos + 1]; + for (; bp < end; ++bp) + if (xwrite(to[1], buf, utf8encode(bp->u, buf)) < 0) + break; +- if ((newline = term.line[n][lastpos].mode & ATTR_WRAP)) ++ if ((newline = TLINE_HIST(n)[lastpos].mode & ATTR_WRAP)) + continue; + if (xwrite(to[1], "\n", 1) < 0) + break; +-- +2.26.2 + diff --git a/.local/src/st/patches/st-w3m-0.8.3.diff b/.local/src/st/patches/st-w3m-0.8.3.diff new file mode 100644 index 00000000..a4e104b4 --- /dev/null +++ b/.local/src/st/patches/st-w3m-0.8.3.diff @@ -0,0 +1,42 @@ +From 69cffc587b54b0a9cd81adb87abad8e526d5b25b Mon Sep 17 00:00:00 2001 +From: "Avi Halachmi (:avih)" +Date: Thu, 4 Jun 2020 17:35:08 +0300 +Subject: [PATCH] support w3m images + +w3m images are a hack which renders on top of the terminal's drawable, +which didn't work in st because when using double buffering, the front +buffer (on which w3m draws its images) is ignored, and st draws only +on the back buffer, which is then copied to the front buffer. + +There's a patch to make it work at the FAQ already, but that patch +canceles double-buffering, which can have negative side effects on +some cases such as flickering. + +This patch achieves the same goal but instead of canceling the double +buffer it first copies the front buffer to the back buffer. + +This has the same issues as the FAQ patch in that the cursor line is +deleted at the image (because st renders always full lines), but +otherwise it's simpler and does keeps double buffering. +--- + x.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/x.c b/x.c +index e5f1737..b6ae162 100644 +--- a/x.c ++++ b/x.c +@@ -1594,6 +1594,8 @@ xsettitle(char *p) + int + xstartdraw(void) + { ++ if (IS_SET(MODE_VISIBLE)) ++ XCopyArea(xw.dpy, xw.win, xw.buf, dc.gc, 0, 0, win.w, win.h, 0, 0); + return IS_SET(MODE_VISIBLE); + } + + +base-commit: 43a395ae91f7d67ce694e65edeaa7bbc720dd027 +-- +2.17.1 + diff --git a/.local/src/st/st b/.local/src/st/st index e7ed659ed29a28d5aaf57709266a7994e117b5f0..7fceda2a6d8fb346ed3a83d7955f361b11ae9d3a 100755 GIT binary patch literal 111304 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 Je>F={+b>pvxUB#H literal 116408 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

IO6gjenzG=U0 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 N#g24jQ1CbQ`d_9H!X5ws diff --git a/.local/src/st/st-boxdraw_v2-0.8.3.diff b/.local/src/st/st-boxdraw_v2-0.8.3.diff new file mode 100644 index 00000000..04a868cd --- /dev/null +++ b/.local/src/st/st-boxdraw_v2-0.8.3.diff @@ -0,0 +1,600 @@ +From 3f3b80b9966c60086f4ed80ce4de0cbf03468d36 Mon Sep 17 00:00:00 2001 +From: "Avi Halachmi (:avih)" +Date: Wed, 26 Dec 2018 14:51:45 +0200 +Subject: [PATCH] boxdraw_v2: custom render lines/blocks/braille for perfect + alignment + +It seems impossible to ensure that blocks and line drawing glyphs +align without visible gaps for all combinations of arbitrary font, +size and width/height scale factor. + +This commit adds options to render most of the lines/blocks and +braille codepoints without using the font such that they align +perfectly regardless of font, size or other configuration values. + +Supported codepoints are U+2500 - U+259F except dashes/diagonals, +and U28XX. + +The lines/blocks data is stored as 16-bit values at boxdraw_data.h + +boxdraw/braille are independent, disabled by default at config[.def].h +--- + Makefile | 3 +- + boxdraw.c | 194 ++++++++++++++++++++++++++++++++++++++++++++ + boxdraw_data.h | 214 +++++++++++++++++++++++++++++++++++++++++++++++++ + config.def.h | 12 +++ + st.c | 3 + + st.h | 10 +++ + x.c | 21 +++-- + 7 files changed, 451 insertions(+), 6 deletions(-) + create mode 100644 boxdraw.c + create mode 100644 boxdraw_data.h + +diff --git a/Makefile b/Makefile +index 470ac86..6dfa212 100644 +--- a/Makefile ++++ b/Makefile +@@ -4,7 +4,7 @@ + + include config.mk + +-SRC = st.c x.c ++SRC = st.c x.c boxdraw.c + OBJ = $(SRC:.c=.o) + + all: options st +@@ -23,6 +23,7 @@ config.h: + + st.o: config.h st.h win.h + x.o: arg.h config.h st.h win.h ++boxdraw.o: config.h st.h boxdraw_data.h + + $(OBJ): config.h config.mk + +diff --git a/boxdraw.c b/boxdraw.c +new file mode 100644 +index 0000000..28a92d0 +--- /dev/null ++++ b/boxdraw.c +@@ -0,0 +1,194 @@ ++/* ++ * Copyright 2018 Avi Halachmi (:avih) avihpit@yahoo.com https://github.com/avih ++ * MIT/X Consortium License ++ */ ++ ++#include ++#include "st.h" ++#include "boxdraw_data.h" ++ ++/* Rounded non-negative integers division of n / d */ ++#define DIV(n, d) (((n) + (d) / 2) / (d)) ++ ++static Display *xdpy; ++static Colormap xcmap; ++static XftDraw *xd; ++static Visual *xvis; ++ ++static void drawbox(int, int, int, int, XftColor *, XftColor *, ushort); ++static void drawboxlines(int, int, int, int, XftColor *, ushort); ++ ++/* public API */ ++ ++void ++boxdraw_xinit(Display *dpy, Colormap cmap, XftDraw *draw, Visual *vis) ++{ ++ xdpy = dpy; xcmap = cmap; xd = draw, xvis = vis; ++} ++ ++int ++isboxdraw(Rune u) ++{ ++ Rune block = u & ~0xff; ++ return (boxdraw && block == 0x2500 && boxdata[(uint8_t)u]) || ++ (boxdraw_braille && block == 0x2800); ++} ++ ++/* the "index" is actually the entire shape data encoded as ushort */ ++ushort ++boxdrawindex(const Glyph *g) ++{ ++ if (boxdraw_braille && (g->u & ~0xff) == 0x2800) ++ return BRL | (uint8_t)g->u; ++ if (boxdraw_bold && (g->mode & ATTR_BOLD)) ++ return BDB | boxdata[(uint8_t)g->u]; ++ return boxdata[(uint8_t)g->u]; ++} ++ ++void ++drawboxes(int x, int y, int cw, int ch, XftColor *fg, XftColor *bg, ++ const XftGlyphFontSpec *specs, int len) ++{ ++ for ( ; len-- > 0; x += cw, specs++) ++ drawbox(x, y, cw, ch, fg, bg, (ushort)specs->glyph); ++} ++ ++/* implementation */ ++ ++void ++drawbox(int x, int y, int w, int h, XftColor *fg, XftColor *bg, ushort bd) ++{ ++ ushort cat = bd & ~(BDB | 0xff); /* mask out bold and data */ ++ if (bd & (BDL | BDA)) { ++ /* lines (light/double/heavy/arcs) */ ++ drawboxlines(x, y, w, h, fg, bd); ++ ++ } else if (cat == BBD) { ++ /* lower (8-X)/8 block */ ++ int d = DIV((uint8_t)bd * h, 8); ++ XftDrawRect(xd, fg, x, y + d, w, h - d); ++ ++ } else if (cat == BBU) { ++ /* upper X/8 block */ ++ XftDrawRect(xd, fg, x, y, w, DIV((uint8_t)bd * h, 8)); ++ ++ } else if (cat == BBL) { ++ /* left X/8 block */ ++ XftDrawRect(xd, fg, x, y, DIV((uint8_t)bd * w, 8), h); ++ ++ } else if (cat == BBR) { ++ /* right (8-X)/8 block */ ++ int d = DIV((uint8_t)bd * w, 8); ++ XftDrawRect(xd, fg, x + d, y, w - d, h); ++ ++ } else if (cat == BBQ) { ++ /* Quadrants */ ++ int w2 = DIV(w, 2), h2 = DIV(h, 2); ++ if (bd & TL) ++ XftDrawRect(xd, fg, x, y, w2, h2); ++ if (bd & TR) ++ XftDrawRect(xd, fg, x + w2, y, w - w2, h2); ++ if (bd & BL) ++ XftDrawRect(xd, fg, x, y + h2, w2, h - h2); ++ if (bd & BR) ++ XftDrawRect(xd, fg, x + w2, y + h2, w - w2, h - h2); ++ ++ } else if (bd & BBS) { ++ /* Shades - data is 1/2/3 for 25%/50%/75% alpha, respectively */ ++ int d = (uint8_t)bd; ++ XftColor xfc; ++ XRenderColor xrc = { .alpha = 0xffff }; ++ ++ xrc.red = DIV(fg->color.red * d + bg->color.red * (4 - d), 4); ++ xrc.green = DIV(fg->color.green * d + bg->color.green * (4 - d), 4); ++ xrc.blue = DIV(fg->color.blue * d + bg->color.blue * (4 - d), 4); ++ ++ XftColorAllocValue(xdpy, xvis, xcmap, &xrc, &xfc); ++ XftDrawRect(xd, &xfc, x, y, w, h); ++ XftColorFree(xdpy, xvis, xcmap, &xfc); ++ ++ } else if (cat == BRL) { ++ /* braille, each data bit corresponds to one dot at 2x4 grid */ ++ int w1 = DIV(w, 2); ++ int h1 = DIV(h, 4), h2 = DIV(h, 2), h3 = DIV(3 * h, 4); ++ ++ if (bd & 1) XftDrawRect(xd, fg, x, y, w1, h1); ++ if (bd & 2) XftDrawRect(xd, fg, x, y + h1, w1, h2 - h1); ++ if (bd & 4) XftDrawRect(xd, fg, x, y + h2, w1, h3 - h2); ++ if (bd & 8) XftDrawRect(xd, fg, x + w1, y, w - w1, h1); ++ if (bd & 16) XftDrawRect(xd, fg, x + w1, y + h1, w - w1, h2 - h1); ++ if (bd & 32) XftDrawRect(xd, fg, x + w1, y + h2, w - w1, h3 - h2); ++ if (bd & 64) XftDrawRect(xd, fg, x, y + h3, w1, h - h3); ++ if (bd & 128) XftDrawRect(xd, fg, x + w1, y + h3, w - w1, h - h3); ++ ++ } ++} ++ ++void ++drawboxlines(int x, int y, int w, int h, XftColor *fg, ushort bd) ++{ ++ /* s: stem thickness. width/8 roughly matches underscore thickness. */ ++ /* We draw bold as 1.5 * normal-stem and at least 1px thicker. */ ++ /* doubles draw at least 3px, even when w or h < 3. bold needs 6px. */ ++ int mwh = MIN(w, h); ++ int base_s = MAX(1, DIV(mwh, 8)); ++ int bold = (bd & BDB) && mwh >= 6; /* possibly ignore boldness */ ++ int s = bold ? MAX(base_s + 1, DIV(3 * base_s, 2)) : base_s; ++ int w2 = DIV(w - s, 2), h2 = DIV(h - s, 2); ++ /* the s-by-s square (x + w2, y + h2, s, s) is the center texel. */ ++ /* The base length (per direction till edge) includes this square. */ ++ ++ int light = bd & (LL | LU | LR | LD); ++ int double_ = bd & (DL | DU | DR | DD); ++ ++ if (light) { ++ /* d: additional (negative) length to not-draw the center */ ++ /* texel - at arcs and avoid drawing inside (some) doubles */ ++ int arc = bd & BDA; ++ int multi_light = light & (light - 1); ++ int multi_double = double_ & (double_ - 1); ++ /* light crosses double only at DH+LV, DV+LH (ref. shapes) */ ++ int d = arc || (multi_double && !multi_light) ? -s : 0; ++ ++ if (bd & LL) ++ XftDrawRect(xd, fg, x, y + h2, w2 + s + d, s); ++ if (bd & LU) ++ XftDrawRect(xd, fg, x + w2, y, s, h2 + s + d); ++ if (bd & LR) ++ XftDrawRect(xd, fg, x + w2 - d, y + h2, w - w2 + d, s); ++ if (bd & LD) ++ XftDrawRect(xd, fg, x + w2, y + h2 - d, s, h - h2 + d); ++ } ++ ++ /* double lines - also align with light to form heavy when combined */ ++ if (double_) { ++ /* ++ * going clockwise, for each double-ray: p is additional length ++ * to the single-ray nearer to the previous direction, and n to ++ * the next. p and n adjust from the base length to lengths ++ * which consider other doubles - shorter to avoid intersections ++ * (p, n), or longer to draw the far-corner texel (n). ++ */ ++ int dl = bd & DL, du = bd & DU, dr = bd & DR, dd = bd & DD; ++ if (dl) { ++ int p = dd ? -s : 0, n = du ? -s : dd ? s : 0; ++ XftDrawRect(xd, fg, x, y + h2 + s, w2 + s + p, s); ++ XftDrawRect(xd, fg, x, y + h2 - s, w2 + s + n, s); ++ } ++ if (du) { ++ int p = dl ? -s : 0, n = dr ? -s : dl ? s : 0; ++ XftDrawRect(xd, fg, x + w2 - s, y, s, h2 + s + p); ++ XftDrawRect(xd, fg, x + w2 + s, y, s, h2 + s + n); ++ } ++ if (dr) { ++ int p = du ? -s : 0, n = dd ? -s : du ? s : 0; ++ XftDrawRect(xd, fg, x + w2 - p, y + h2 - s, w - w2 + p, s); ++ XftDrawRect(xd, fg, x + w2 - n, y + h2 + s, w - w2 + n, s); ++ } ++ if (dd) { ++ int p = dr ? -s : 0, n = dl ? -s : dr ? s : 0; ++ XftDrawRect(xd, fg, x + w2 + s, y + h2 - p, s, h - h2 + p); ++ XftDrawRect(xd, fg, x + w2 - s, y + h2 - n, s, h - h2 + n); ++ } ++ } ++} +diff --git a/boxdraw_data.h b/boxdraw_data.h +new file mode 100644 +index 0000000..7890500 +--- /dev/null ++++ b/boxdraw_data.h +@@ -0,0 +1,214 @@ ++/* ++ * Copyright 2018 Avi Halachmi (:avih) avihpit@yahoo.com https://github.com/avih ++ * MIT/X Consortium License ++ */ ++ ++/* ++ * U+25XX codepoints data ++ * ++ * References: ++ * http://www.unicode.org/charts/PDF/U2500.pdf ++ * http://www.unicode.org/charts/PDF/U2580.pdf ++ * ++ * Test page: ++ * https://github.com/GNOME/vte/blob/master/doc/boxes.txt ++ */ ++ ++/* Each shape is encoded as 16-bits. Higher bits are category, lower are data */ ++/* Categories (mutually exclusive except BDB): */ ++/* For convenience, BDL/BDA/BBS/BDB are 1 bit each, the rest are enums */ ++#define BDL (1<<8) /* Box Draw Lines (light/double/heavy) */ ++#define BDA (1<<9) /* Box Draw Arc (light) */ ++ ++#define BBD (1<<10) /* Box Block Down (lower) X/8 */ ++#define BBL (2<<10) /* Box Block Left X/8 */ ++#define BBU (3<<10) /* Box Block Upper X/8 */ ++#define BBR (4<<10) /* Box Block Right X/8 */ ++#define BBQ (5<<10) /* Box Block Quadrants */ ++#define BRL (6<<10) /* Box Braille (data is lower byte of U28XX) */ ++ ++#define BBS (1<<14) /* Box Block Shades */ ++#define BDB (1<<15) /* Box Draw is Bold */ ++ ++/* (BDL/BDA) Light/Double/Heavy x Left/Up/Right/Down/Horizontal/Vertical */ ++/* Heavy is light+double (literally drawing light+double align to form heavy) */ ++#define LL (1<<0) ++#define LU (1<<1) ++#define LR (1<<2) ++#define LD (1<<3) ++#define LH (LL+LR) ++#define LV (LU+LD) ++ ++#define DL (1<<4) ++#define DU (1<<5) ++#define DR (1<<6) ++#define DD (1<<7) ++#define DH (DL+DR) ++#define DV (DU+DD) ++ ++#define HL (LL+DL) ++#define HU (LU+DU) ++#define HR (LR+DR) ++#define HD (LD+DD) ++#define HH (HL+HR) ++#define HV (HU+HD) ++ ++/* (BBQ) Quadrants Top/Bottom x Left/Right */ ++#define TL (1<<0) ++#define TR (1<<1) ++#define BL (1<<2) ++#define BR (1<<3) ++ ++/* Data for U+2500 - U+259F except dashes/diagonals */ ++static const unsigned short boxdata[256] = { ++ /* light lines */ ++ [0x00] = BDL + LH, /* light horizontal */ ++ [0x02] = BDL + LV, /* light vertical */ ++ [0x0c] = BDL + LD + LR, /* light down and right */ ++ [0x10] = BDL + LD + LL, /* light down and left */ ++ [0x14] = BDL + LU + LR, /* light up and right */ ++ [0x18] = BDL + LU + LL, /* light up and left */ ++ [0x1c] = BDL + LV + LR, /* light vertical and right */ ++ [0x24] = BDL + LV + LL, /* light vertical and left */ ++ [0x2c] = BDL + LH + LD, /* light horizontal and down */ ++ [0x34] = BDL + LH + LU, /* light horizontal and up */ ++ [0x3c] = BDL + LV + LH, /* light vertical and horizontal */ ++ [0x74] = BDL + LL, /* light left */ ++ [0x75] = BDL + LU, /* light up */ ++ [0x76] = BDL + LR, /* light right */ ++ [0x77] = BDL + LD, /* light down */ ++ ++ /* heavy [+light] lines */ ++ [0x01] = BDL + HH, ++ [0x03] = BDL + HV, ++ [0x0d] = BDL + HR + LD, ++ [0x0e] = BDL + HD + LR, ++ [0x0f] = BDL + HD + HR, ++ [0x11] = BDL + HL + LD, ++ [0x12] = BDL + HD + LL, ++ [0x13] = BDL + HD + HL, ++ [0x15] = BDL + HR + LU, ++ [0x16] = BDL + HU + LR, ++ [0x17] = BDL + HU + HR, ++ [0x19] = BDL + HL + LU, ++ [0x1a] = BDL + HU + LL, ++ [0x1b] = BDL + HU + HL, ++ [0x1d] = BDL + HR + LV, ++ [0x1e] = BDL + HU + LD + LR, ++ [0x1f] = BDL + HD + LR + LU, ++ [0x20] = BDL + HV + LR, ++ [0x21] = BDL + HU + HR + LD, ++ [0x22] = BDL + HD + HR + LU, ++ [0x23] = BDL + HV + HR, ++ [0x25] = BDL + HL + LV, ++ [0x26] = BDL + HU + LD + LL, ++ [0x27] = BDL + HD + LU + LL, ++ [0x28] = BDL + HV + LL, ++ [0x29] = BDL + HU + HL + LD, ++ [0x2a] = BDL + HD + HL + LU, ++ [0x2b] = BDL + HV + HL, ++ [0x2d] = BDL + HL + LD + LR, ++ [0x2e] = BDL + HR + LL + LD, ++ [0x2f] = BDL + HH + LD, ++ [0x30] = BDL + HD + LH, ++ [0x31] = BDL + HD + HL + LR, ++ [0x32] = BDL + HR + HD + LL, ++ [0x33] = BDL + HH + HD, ++ [0x35] = BDL + HL + LU + LR, ++ [0x36] = BDL + HR + LU + LL, ++ [0x37] = BDL + HH + LU, ++ [0x38] = BDL + HU + LH, ++ [0x39] = BDL + HU + HL + LR, ++ [0x3a] = BDL + HU + HR + LL, ++ [0x3b] = BDL + HH + HU, ++ [0x3d] = BDL + HL + LV + LR, ++ [0x3e] = BDL + HR + LV + LL, ++ [0x3f] = BDL + HH + LV, ++ [0x40] = BDL + HU + LH + LD, ++ [0x41] = BDL + HD + LH + LU, ++ [0x42] = BDL + HV + LH, ++ [0x43] = BDL + HU + HL + LD + LR, ++ [0x44] = BDL + HU + HR + LD + LL, ++ [0x45] = BDL + HD + HL + LU + LR, ++ [0x46] = BDL + HD + HR + LU + LL, ++ [0x47] = BDL + HH + HU + LD, ++ [0x48] = BDL + HH + HD + LU, ++ [0x49] = BDL + HV + HL + LR, ++ [0x4a] = BDL + HV + HR + LL, ++ [0x4b] = BDL + HV + HH, ++ [0x78] = BDL + HL, ++ [0x79] = BDL + HU, ++ [0x7a] = BDL + HR, ++ [0x7b] = BDL + HD, ++ [0x7c] = BDL + HR + LL, ++ [0x7d] = BDL + HD + LU, ++ [0x7e] = BDL + HL + LR, ++ [0x7f] = BDL + HU + LD, ++ ++ /* double [+light] lines */ ++ [0x50] = BDL + DH, ++ [0x51] = BDL + DV, ++ [0x52] = BDL + DR + LD, ++ [0x53] = BDL + DD + LR, ++ [0x54] = BDL + DR + DD, ++ [0x55] = BDL + DL + LD, ++ [0x56] = BDL + DD + LL, ++ [0x57] = BDL + DL + DD, ++ [0x58] = BDL + DR + LU, ++ [0x59] = BDL + DU + LR, ++ [0x5a] = BDL + DU + DR, ++ [0x5b] = BDL + DL + LU, ++ [0x5c] = BDL + DU + LL, ++ [0x5d] = BDL + DL + DU, ++ [0x5e] = BDL + DR + LV, ++ [0x5f] = BDL + DV + LR, ++ [0x60] = BDL + DV + DR, ++ [0x61] = BDL + DL + LV, ++ [0x62] = BDL + DV + LL, ++ [0x63] = BDL + DV + DL, ++ [0x64] = BDL + DH + LD, ++ [0x65] = BDL + DD + LH, ++ [0x66] = BDL + DD + DH, ++ [0x67] = BDL + DH + LU, ++ [0x68] = BDL + DU + LH, ++ [0x69] = BDL + DH + DU, ++ [0x6a] = BDL + DH + LV, ++ [0x6b] = BDL + DV + LH, ++ [0x6c] = BDL + DH + DV, ++ ++ /* (light) arcs */ ++ [0x6d] = BDA + LD + LR, ++ [0x6e] = BDA + LD + LL, ++ [0x6f] = BDA + LU + LL, ++ [0x70] = BDA + LU + LR, ++ ++ /* Lower (Down) X/8 block (data is 8 - X) */ ++ [0x81] = BBD + 7, [0x82] = BBD + 6, [0x83] = BBD + 5, [0x84] = BBD + 4, ++ [0x85] = BBD + 3, [0x86] = BBD + 2, [0x87] = BBD + 1, [0x88] = BBD + 0, ++ ++ /* Left X/8 block (data is X) */ ++ [0x89] = BBL + 7, [0x8a] = BBL + 6, [0x8b] = BBL + 5, [0x8c] = BBL + 4, ++ [0x8d] = BBL + 3, [0x8e] = BBL + 2, [0x8f] = BBL + 1, ++ ++ /* upper 1/2 (4/8), 1/8 block (X), right 1/2, 1/8 block (8-X) */ ++ [0x80] = BBU + 4, [0x94] = BBU + 1, ++ [0x90] = BBR + 4, [0x95] = BBR + 7, ++ ++ /* Quadrants */ ++ [0x96] = BBQ + BL, ++ [0x97] = BBQ + BR, ++ [0x98] = BBQ + TL, ++ [0x99] = BBQ + TL + BL + BR, ++ [0x9a] = BBQ + TL + BR, ++ [0x9b] = BBQ + TL + TR + BL, ++ [0x9c] = BBQ + TL + TR + BR, ++ [0x9d] = BBQ + TR, ++ [0x9e] = BBQ + BL + TR, ++ [0x9f] = BBQ + BL + TR + BR, ++ ++ /* Shades, data is an alpha value in 25% units (1/4, 1/2, 3/4) */ ++ [0x91] = BBS + 1, [0x92] = BBS + 2, [0x93] = BBS + 3, ++ ++ /* U+2504 - U+250B, U+254C - U+254F: unsupported (dashes) */ ++ /* U+2571 - U+2573: unsupported (diagonals) */ ++}; +diff --git a/config.def.h b/config.def.h +index 0895a1f..bf6718b 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -58,6 +58,18 @@ static unsigned int blinktimeout = 800; + */ + static unsigned int cursorthickness = 2; + ++/* ++ * 1: render most of the lines/blocks characters without using the font for ++ * perfect alignment between cells (U2500 - U259F except dashes/diagonals). ++ * Bold affects lines thickness if boxdraw_bold is not 0. Italic is ignored. ++ * 0: disable (render all U25XX glyphs normally from the font). ++ */ ++const int boxdraw = 0; ++const int boxdraw_bold = 0; ++ ++/* braille (U28XX): 1: render as adjacent "pixels", 0: use font */ ++const int boxdraw_braille = 0; ++ + /* + * bell volume. It must be a value between -100 and 100. Use 0 for disabling + * it +diff --git a/st.c b/st.c +index 0ce6ac2..c035e19 100644 +--- a/st.c ++++ b/st.c +@@ -1230,6 +1230,9 @@ tsetchar(Rune u, Glyph *attr, int x, int y) + term.dirty[y] = 1; + term.line[y][x] = *attr; + term.line[y][x].u = u; ++ ++ if (isboxdraw(u)) ++ term.line[y][x].mode |= ATTR_BOXDRAW; + } + + void +diff --git a/st.h b/st.h +index d978458..a6c382a 100644 +--- a/st.h ++++ b/st.h +@@ -33,6 +33,7 @@ enum glyph_attribute { + ATTR_WRAP = 1 << 8, + ATTR_WIDE = 1 << 9, + ATTR_WDUMMY = 1 << 10, ++ ATTR_BOXDRAW = 1 << 11, + ATTR_BOLD_FAINT = ATTR_BOLD | ATTR_FAINT, + }; + +@@ -111,6 +112,14 @@ void *xmalloc(size_t); + void *xrealloc(void *, size_t); + char *xstrdup(char *); + ++int isboxdraw(Rune); ++ushort boxdrawindex(const Glyph *); ++#ifdef XFT_VERSION ++/* only exposed to x.c, otherwise we'll need Xft.h for the types */ ++void boxdraw_xinit(Display *, Colormap, XftDraw *, Visual *); ++void drawboxes(int, int, int, int, XftColor *, XftColor *, const XftGlyphFontSpec *, int); ++#endif ++ + /* config.h globals */ + extern char *utmp; + extern char *scroll; +@@ -122,3 +131,4 @@ extern char *termname; + extern unsigned int tabspaces; + extern unsigned int defaultfg; + extern unsigned int defaultbg; ++extern const int boxdraw, boxdraw_bold, boxdraw_braille; +diff --git a/x.c b/x.c +index e5f1737..6f7ea2c 100644 +--- a/x.c ++++ b/x.c +@@ -1205,6 +1205,8 @@ xinit(int cols, int rows) + xsel.xtarget = XInternAtom(xw.dpy, "UTF8_STRING", 0); + if (xsel.xtarget == None) + xsel.xtarget = XA_STRING; ++ ++ boxdraw_xinit(xw.dpy, xw.cmap, xw.draw, xw.vis); + } + + int +@@ -1251,8 +1253,13 @@ xmakeglyphfontspecs(XftGlyphFontSpec *specs, const Glyph *glyphs, int len, int x + yp = winy + font->ascent; + } + +- /* Lookup character index with default font. */ +- glyphidx = XftCharIndex(xw.dpy, font->match, rune); ++ if (mode & ATTR_BOXDRAW) { ++ /* minor shoehorning: boxdraw uses only this ushort */ ++ glyphidx = boxdrawindex(&glyphs[i]); ++ } else { ++ /* Lookup character index with default font. */ ++ glyphidx = XftCharIndex(xw.dpy, font->match, rune); ++ } + if (glyphidx) { + specs[numspecs].font = font->match; + specs[numspecs].glyph = glyphidx; +@@ -1456,8 +1463,12 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i + r.width = width; + XftDrawSetClipRectangles(xw.draw, winx, winy, &r, 1); + +- /* Render the glyphs. */ +- XftDrawGlyphFontSpec(xw.draw, fg, specs, len); ++ if (base.mode & ATTR_BOXDRAW) { ++ drawboxes(winx, winy, width / len, win.ch, fg, bg, specs, len); ++ } else { ++ /* Render the glyphs. */ ++ XftDrawGlyphFontSpec(xw.draw, fg, specs, len); ++ } + + /* Render underline and strikethrough. */ + if (base.mode & ATTR_UNDERLINE) { +@@ -1500,7 +1511,7 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og) + /* + * Select the right color for the right mode. + */ +- g.mode &= ATTR_BOLD|ATTR_ITALIC|ATTR_UNDERLINE|ATTR_STRUCK|ATTR_WIDE; ++ g.mode &= ATTR_BOLD|ATTR_ITALIC|ATTR_UNDERLINE|ATTR_STRUCK|ATTR_WIDE|ATTR_BOXDRAW; + + if (IS_SET(MODE_REVERSE)) { + g.mode |= ATTR_REVERSE; + +base-commit: 43a395ae91f7d67ce694e65edeaa7bbc720dd027 +-- +2.20.1 + diff --git a/.local/src/st/st.o b/.local/src/st/st.o index 7b60345712669967a4494c406f74696df64225f7..abcf725e305cd093b791eac32fe00308fc33b019 100644 GIT binary patch literal 80344 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 diff --git a/.local/src/sxiv/.ccls b/.local/src/sxiv/.ccls new file mode 100644 index 00000000..dff2d4a8 --- /dev/null +++ b/.local/src/sxiv/.ccls @@ -0,0 +1,17 @@ +-I +../include +-I +../vendor/include +-I +/usr/include/freetype2 +-I +/usr/include/libpng16 +-I +/usr/include/harfbuzz +-I +/usr/include/glib-2.0 +-I +/usr/lib/glib-2.0/include +-std=c++14 +-stdlib=libc++ +-fPIC diff --git a/.local/src/sxiv/autoreload_inotify.o b/.local/src/sxiv/autoreload_inotify.o new file mode 100644 index 0000000000000000000000000000000000000000..a477a4b2b2b4a1a9c6409d3a935f65645e719c86 GIT binary patch literal 3752 zcmbuCU5ryj6vw9@E)`j}D2M`yHz5$^qwHc(A;y$l%U+X32vUjhqg>j%w6X22x3`fc zBE*8p&CQy9&^JST@{tD;4Qmt{FiS`b;tTGJ$-WRuFmX+M=mT2+XYNcp+->87Cz(4l zzjMyanKK{VJ)N4^7Y>D(ln{G`b$gOBmVd0A<6i24d%Nqtc%4y$@fm8G~hQ0U<41-hoBS1?VmlftwNiM7-rAl^kANgG76f966oHRQ``@AGd+wf z%+ICn(hBE2_8p63;OSj-24te$)FOgeY}eL^6xUnPp>u!0;@%xf&GaK=jifd2{Xh*0 z$IoEPqu}PfWNi1<+G;dgUNTx=h@ERV1DG>(|1@Wc(H3E}i6L7sTSxvP!3fV!{Q1Az z?fb8)u2GEtymX}mz;z>cm8-8`#rd4m-Cy|{&NXUL3cz<+;WqSoBd&)KI8LfKI!Lm< zJJlTeWGi;;-fu|f%+R-~yEm@UYP&LK)rvW-Y&lw?TyP3Tv2fBv({c)vQ`^8bqvlv8 z!zpC7LdiI8YPMOlj9j67oC&Kv+NLUF<6~ocv}ec7vSV4=$Z%q3VtBi~ORK!_oal)u zSBpAy@(>H1h=p;nI3!0OsSjs5<9|sUGC&WQ)JH-gGS~q0Jt-l39@6jPdSA2jOQuowXM3rJ zu}IICl6a(-IVet54~Z~-gdfu6(FK@n}YLPh<1c66Rn4<2*U>SkO&)C zLZ1YATv-?2OR#59a5t9-UDaNEtPg(;oW_^q^0NSz?qmOUAAYnC|DX@A_u-#|Q#?Cq zqapn4pgxb%Yh7RW;TQVwZ@^cn`z{8Z1*dsm3ZntxXA<>~D81&r(T6j--~OG>hzp&_ zGQ%#SS8!NneB!|9-igeCef!=>9nKuyJ35id$eYhiMwn^amd#zVMbjwPDlA*HswSJX zO|xTamogt3PBz~GMlL5vCW8^mR;FlW@y=LfK2+6oFi_R8?QGs=CK@@vpRG)>W3@?c zlsC$`qRDL2$dPHbR6$OBp_?*@@&KI^$r#DgZb%M({<@w&K*sF0KP&nN^IZi|2YMehQ ze63=?L!2Xu=P8B1DL7S6EBsx>e!ap=3Rl;4w$C^t;;Ex~>5Y}~rv(qrtHFkZxEPZ6 zllp0y2h(;rtH1+fZoC zpm{@rz@w+ZR+SNSXiW9YkY4(aQ%4aQzeM!=N&dqUhc`T*H3R)FMmE6bjE-9{|iJt;g$dZ literal 0 HcmV?d00001 diff --git a/.local/src/sxiv/commands.o b/.local/src/sxiv/commands.o new file mode 100644 index 0000000000000000000000000000000000000000..9ede06b0924bea780f5f32b7c1b2552dd29ff804 GIT binary patch literal 19728 zcmd^{e{_`9naAG=P<}|6pjKnWH9~AbF``8UMM%JbK>|d6XrRD2B$H&!B$LieAi99I zX_Pc&Yjstu?x|bdt#x~fXWgaLDm%oj29CQMY-{nzo&!DY5e?^P6S^nrtnBmL``mZF zbCavKW&iS?GkNd(dA|2~pZnbV-uKS%9_|iREiMWKJW~SRd@p}ysOMEL&DSebwZaQ} zlf1RzuHT0{PL_6UKN;>G!-nAAit*pfW}5U_XLd*Ql~9fi{maAMpXW;V+FZD+FC55* z1AXBG$3}$%z1DeZW@jo2IGxh<$`l7Rk|`-`|&kYjEC8Atp)`z{=k zj`sqT?hCX?jZa~!hv!kG%9Wl!n$TRZV)3(;?-EUJoK0;PnzotA`Dv%F*?+Y*bqodC zruwRq{0N)Wu=D;gg(Jc@kl*IQZZ#M6`P`nn&l1Nc0{!FtYFEgg;%!qz8p>rRcZYJ4 z5LZ-m&t%SLnVKRW7ga&eOQ^~7r>PW}C4yd9Hp z3iMyV?9M`FrHq3!tA*-GxVF!=t_1%!8{FHcqv(2F@}nc9#LEKp_P1zYjK@%JBzNKB zaQ8K&@~9WX?eBH`p{VOnS2c?03k|&-8u0t~i5Yt+yE8N>6EQSIfrU;LoaOqzpqpAzo6xBnLb#Iabgw-b+|$z)I@z)Pq_@LLWzM7`rxMdY*YC)w;nN~N;uC4w%m|(2 zoY4j8Ar?Bt-ZPUswx9Ca=8c za!OTdq94OzC6^Vr%IyrD4&zcE-c8$~(X=b-t{7)lRDB7v@#zm*kAJ$YPWxf0(a}qQ zJ;sF^hxO|xdGFWt;zU|6>cZWlFP%>P4%1YYb2?=iS%AXt+f z2o|eE4g}ZH`G#IL)(5XVu;p`H>tB85-1m|DL-oPw2kaORa*VyhVpRAL#Yi3VVquu*YGeYViOC$6brS350zIPzF>CmtU21lMF zjC%%Yj_3xImN)61I70V?nlW@w{Bkh3ffVa$7OgulK*z!0brQUrAbYT zy`ISV7LxU0EqFmTE%++bqLYu^>PDbju0Gh3#U-B}jwN_rP}kFto(i+b#r`VwSdy=D zos2q$MrUsCmg<C@_w zy#LwJ{3Ss>{>)QZ?M~EQJKVi|s4jf@MD^s%=r7NOk6zV~e&{InR}Wex=uxDWSE_|_ zw5-d*wu$rq8Z97w^}!wVDNIC< zdXZXddku3coA{4!U+3G~nN#^H|MBg&`u5$-si@o7*sGOUU4Nf8dw22C*o)fy_D967 zZZc!PJKugt>~#h0BYyi5N$A4`_V4=kIbshL*eiT{jo51n?5llyyV!3ou!ns6Zn6KO zz@GK(`^5g^0{ahr`w_9}n2~_O~gs8oze2UySY7=k2@2?#kaju|I6M!wD*UCXP1$V@}GW&=;J6)f-S^E zC5T~MZN>`dL^=zoC#=S*UsNp-&cBFoq2)`Jsq~liv*g@dsa*JMi{Bu8j&QlXyv4%j zTAWWudAynqFQdHi!y%DT-UJ6XQRmI8sCqW!Q?22|*3+jrFY{}g9sCXlZ*}l{9i0EI zZlvoz=-|7FbNnXm9y;gp1Nw~Q=Z6m7LsMrY{XaSM&pG%D4xV-JLk|8M2cJz7Y@|4w zXd;coe@}imKexz4Q_opqA2|FMJN&%i(4S9w_PqURD=+$$d^jjSIP6z)R2mhYM73`reXa1l!jBWGE3du4J+~l89}ICDPuK%H_)|Bg-pmq_(PZ z#gdR$UAZE%cva=1HA`2n@G4iVSsJOVT3WfJMwLu(>yDi>CTB3^4-CanZ4jI~p1@{-;f z&(tyda1Y2wWd{E5^ilIfV2ilt+jNNrmxolMC|Cf*!NwkcR(7D!P>~FSgCm6iWFt*&1u12M zt@^PgmP*HzDb21~6G=r|s9Rj+5hB{wqIfis;Io$KmUu%nqg%!57}Yj%lSo69rk@@~ z1hsL$jYoAos(I9!NkuY^@l;)eE*6hO6Ds2wN?N{Mq&^jGjw#owmTyfW8Qf?K^^>P5 z$TU-~O#b4WT+VSO8Hv?VMtWJYSB%O)YHc^6_BK6TY<&Q2;GrM5q7}m!#91zW89X*|Loh+$j zhLWwQR9T*gw`w6*2>3b3#G{FLR7X4vf-uqA7*)|E;&rifW0G!@4BehIVbigMnqB53 zR;!XqW|{Up4|tZ>)2-*#HrJ(P^`SQ$b>ZcRm&zRffJ((Y|C#d=XZS3tb76iCeGFg2 zkc!Py8mn)pytg&_ZNgc99&rAC#D$hi?|k|g{o@R&u>J!27|!2cxG?`BeYhQ$pX$S~ zc=iLokm|;d*{`u5?z`cyf*#|19XMat=-(91aa;uaE#d5+pQT2BQaI~*4`ukE@XP2} z3j9OitiJ?!5$$ie82@whsW;K$*9kvYIQySUA9LL)!fpRk!4LQMHt{n9IFHMao<66q z0gm~c2mYtQbr*sj{qXk)F5E91uR8E^DcMZ?ZNj-fyd$A0w)=lsv0kLg!0=rPXMfU_TSU%d%_I2XpxZ-HM9`~>*H z{=R2%)8GHGxasdlz_GvQ@BmWb!xi-TQ0B=@;MlKgf#dwSQ8?!Z=g%_GV?L`veCc^yvSTgI_R)8dKpsqkb81+>fnx@QuK6-X?(K zxNHTE^XGoxl@ya1--m%?e*OhG#{WEU^mE+7-vy5T$II_uoIcF+Lg9AaHaqyYfMb3h z0?v6h>(BRrW8R(tj(K|tIL7}fa9n3zckmB@qo1?n_dC14D}iIb)&oaBG2qy*v~bSz zG#K|CphrL71de%l3OM%n=fLs4&I;%2hTyt~K#y_$8aQ6}kHGP|ryYEf{LaYv#D0|l z$9!Jt;5PtAKQ{}v^VtYI4E;?3UktocILCQ2@Na`2$LlH3V;+9u;QN8|xR~Dw4_n-< z1Fs9`epNv{=AZ63PWEGdA3IBaKQ-L=pX%T<9DKILO+0gjb37{`o<)}aCbDr^YH{;D zwpKXrombMw_-_LLUk09W=(mCX63{;=ob!O=@_pcVUpxhV@VWe=L*E1XRdC&REIsFm z%Lf)ORn+q)OwbjMllRpdgr5tXX!q@{M-Ya^=7{P066M@4IKTCo;Y$m*8xZU zGT`Wc2XKsMCvepN960L#132nG0?zZn%&ST2RZqR2VP2}cW&lUcm#Y==&7V8Sf&;HGQw^%sOgSEhKap-Ra{jH$i2zu_9@xK}L z{9BaaaZ7LJ;dapTGsoy3bLjVgejVuF7k(MBQs4pkcP73bJ{LX*9Q79iUk`q+7S8#^ z=fXS(zYRFghbsDTNdd=k*(#jlORZQ9BRYmyB0TbKI-uQ_uwD*CqHud=>d-Y{ZHV$4>$4u68tv;f6Jji z3Hm!gKL~pKUikrVTpt1~qQdiG3VlpG|M+|UMV6k|ATDMf6rj2+ z6^fhnlDVm~VY;&F_ub7LWMsyZ^+v-y%zvmbpQ&p4PmR=>mjiDEel_rR;9mj06ZmZ4 zyMbQ|{Au8Gf$syZ{<{e|?*+a9^hbbK06zhIA@CvKi-3>g1W@6_O{%8IJ@ zzQjN}&H=s@co_IH;5ERP18)Rg4ZI!rEx>mIUk!XW@UH@Y8u&)w`+!G)_X3XsKLWfK z_zB=K;6uRcfsf-GjtZL_R89XW0UiflDs?uCL=m%I8vY&8@iU8y;pV-+Z5sRBys!7T z#m#$mFIe2XPj}Sf<~_Ka#m#$g=HJUqJmx((^Y2`SoA=!|NZt%L@2_pMxOwmFaf_Sx z%U-a!dB5za#m#$UIg6Y3$fj^0R7^bPJ+gTgH}8vWu()|&Y@5Z+dtr}T+`Rwwg2l~y zUPmo%-rLGq+`P9nWmIAO=KZXB7B}xbZLqj`ziFGr&3jCbTim>_^n%6Bdr3zvZr(r2 zS=_vTWX7Mn#~<_l(L8?OP%+%RXXKTq?`+OQH`6hb(#J+qqkrpYltWn&Peu7z)Av^)wHfkUH3pfs=2ZO#!Ktb6iLR8+(8p^2agYjs9p$#;_=HM{KB#{a zW-h}a)brxjb&bKkK0kBW=bzjDDr(CFeB(+B@AYq^*sf7dZ}WspD9q&+gO+uEcs ztDD|*X9*-uIN4s6imn5ob3)kiIewOuXmui=2 zb%yyn!|cwT_fFSG4NK2i{_-a8f2YrT=i#|u#eM>8kVwvZD~u{sp772YIPcx?DsMKe zNHfBIiDoB7vj8>wDcba(_ty8F_s&m0@B=16@@xf3VVH>#aGyj1;(ZB!Zv^FZiOKi4 zI&?8&KzhT>3{yK%_BqOPlyc6<5G9f346AO$Fas5a#d@#;GYB;UJ^?@+|4f1)i@%Cz zD*PA^m(qJ<-)|9li++V49q{+`s1)=_}~B`(#F!W>km)yN1-^|R=3#IUp% zE`u&5Y?v5KvOA~6ue9ojf`(RMzAo#%-%XqPFl#9oCA){qw?1S6?3s~5Cz{d2ou;hB z*lYA$&LGd=*wBk)GA1Vb$u54eL;~4)&dOPNAbZJ+FbHp%^@xGrV?1(}*cj%~nPX#P zhWT6tUX6xTHhT_(_2ETnBcty{LBo3wy)$~6zmAo$(f|pN(T|g08GW#vyz%S^uOlq~A3y9pysp}|bSSgap@&{7s#3E73_yfc^UkBy%4V6i~8dfhK z$8y7NP*45H27!8!Gs&e{2N^$eMwDpmWcL?X3pwXaeIHD@PfOfnlR#g6!X}LNMQU)E zeunMbnLkgZZuNbZf0~(E&sd|NnW=i2_m`Qe4Jc$%e*98Pi{;GJtteaU*Gw&8dHOX| zH{;jn>8+v{SQ~kdf{vzf#d*&3Kt)!Hh?2QdZ|e784BPFb4ve08@n(CiUc!uqpBO#UenwSTaWIc7r{^1%CRsa=#a_!8^R5?3XzwBal3i)1RV%>>Co6Z+xg&}#f$P?Cq5sZLN@DdOBW zRAKg8tSP*G>fpt!ZZ>K(Gu4GxUWaEsi={Bb6i?PV^Dv6i0m%Ehx~*P%b6@ieE@jTq z-7Kv{?%H*~)k|;gYeYk?(7l55xq*A}c!z+7i0%gN^5i63J4@Nb^`^cEd9c#$!8Z3v zWRpi%gSsSvRgZjO8C!_DZn1j#f<#M}Enbxrj~1w|E3966^94+b*YzRJ$NLPkKk194 zft5&7zU5i^9!O3$}>DMTqtz@25V73M^O$tR5=!8EgJ1 zzat*bJ9Ks~w`-9V2-_rId>wtXfM?e$umgY7;Y*+W(hQaZT zHhHuLthCOH@?lQ$r~#-nK9%jnSReLSY#%XMpkXoJ=liI|=84>2X{nU^F3D%Iomhkj zEdG_z$kP7A-4gc)dS<{ySrvqT=9?VA{R ziQV5O1lfpYMK_zWlP$J?@?A7}G(hTzmva!I?%mLo?8~|f9kB4oTDP7yroK1I49~0P za;&C;Un9aADQ_`x1}%TNXMp^QH82B+6h+hZJpqpmub0tBnKxDY7F&7u6$Di~kFpRi zz7$O=ATxqv9$U;200Qc_kFoL{Cv%=1GCX9>xEpc%%h5plw5%{;4YMMPQ-c&7?Gtll z6`6^;9?!!*4sjlNBJUvw)1$Yl#7C%orU#?3Rxsm5D^CXdN5lX(X`t%v`Ew{EG0KX zgrv!%v?^$EQU>K@Jr^DUR0Yo|@`)x1vLi`aU`H0>^vz4>?7Gcw8N=P4;cPZz+8~eB*)BQ8g zJWZAtcm8!3$p-)))zAgTVH)Fzc5g`n3-#9U)os~+P zNIUBHY%!%(7AUQhXm&2;FR&?@ zy^7_bfZUcTj3hfLU%Q7)ect=gTAI38%zQYBU5aXUI|V$QEk7qpO=LI5VKjSHp86t5 zoxj3l{aSU5Ws|q9pBD9(&Ww$LH)}}UkAjHZisn~XL^QO9+6!$vEVI|SeNtG-mohA? z1tI2MoU7-+A7&9=5RVWb?nQ}cF7q32>SNe+sS4s4v`%0x>hnI@%U1?M{iITMZS1{| z))z*Jm2zXB(At31%{g37pTp&}sqY6J0;!2Cfd!oDirdtm&gjpQE+jMkNVX=U?-$Ts zEa0FK?MO;$^DLDMmv%M?v9uG(5!n^Z@bSaN8a~nC9^evA(4+H;@=O8ovo(OvE}cS4cO*N z_cSGRh_6dq`VsSWNo!(9O?IEu60_Lt_Y2b?D?6sJaj>S~cT)0VSBMg&es3VgqiB@T zN1B?N#xnZo6Hh!b#z{?#a0Pl}GgnffMdn$nyY6LzzLjVSj}N!%Bs^)fx}{nTwN#>LtvbeCNtG`$4z$Pn^F z5Sv~`-*CD25JeP}t$<~|N7rtmnXteKvp;_+YiksSt+DijR`=6Z?E$N9zm-VeYbB1{ z`;hjKrkj1$X0C8SNFMX$O=8s@w)AIh+bT@+-z&1$*I2cO(Z{n^?Ln*VX)AHS()U~4 z>HDniBlk(KNFJ+z^jK@=YPf_)mZDyM*)C2A_Tt8(UNgaBNLp$zOQ$1bq(!*yH2a8@ z*BJRqZQ*`&Vt4}K0&x}lnA+}@^N7s`#>Hj~eigA9o#83Os-Nkda{{~XPeqx1$^*g1 zTI?_zXki2uk7MKpr*@O3Zr&~g%!}8kwtLs&AryHR;#E>N6xFk6-nrK>bC3y6J2o7- zB;u`~ws*kOg`3@J)Uq8DyX;8}_l)01=R6pgN^)oX`Wv(}dUsu+SlH;n?%7kT zPAPncLQGBH?xZd8{c-8wmRXiQiVBKvrS`G)E*;$J%OjhhR~D*E3M!9+BW(lp;g)A* zz)waGU{~1yBi~;uU6ek>ZUmxO99`!*P_}>r7V3B6z>LCFtAqoNgO@OsVI^ob-Rypb z%;-6`B7PL}F29J0FKy_gtOP&mS77~uRmY~BG==XsWQrY^J7C6jdQ#6}P0J;7piAW3F7KZAOTnbK9?^@G)_@1SzP#uzfPX3vn-j_9@vpuPPA3<*0Xx z_u$V^AQMQO9&7;e){`^spgXagvo>ef6EUV4toCp*o&#yx8)*P z$X-#Dm<8ro#6+x|lcyj#!>FImsm~KX^F(&i_eeo(zkln^2`s-fd^P%4xxSvA#MI8Y z{%L|-FC@E9mwR{ZhFC23*q3;&EWQ!tGVf!ba>Ck@}Ix6VDlJ$?+OYMJxu`mu@6vMuK|NpT0sp?*d zjxjC~(;z;D%V=5L0U|W<*Duva=n9dP9l&b@3oTuR(LdA^u92?q!wWs} zi|~sN*Dqr>Q8__>1;ZDuYy;=~*BrUYZtxs#Gky#zu2b@^Q4%5Fai!YvMD0f%(^kg< zp|>-p?bggs+26`=mo*yA!MOu!?DLK>6D^l)7PDz!YmKh##XK-J{Z&lap`DmAmtzM_ zwnbWjX~fzLl+z0vq{#vGo>bmDCeQk@><^fUV~$|T;D0K`<9@bEBMTkK>i>aIIs8RrAu&*kDFKWjp2obIeoBF+oj^d8)W$%GOE!6gegu;tKXu z*Y_z;o7g*r?QA~-aZa2a5x5n67pTkaUe0fz^V2~gmj?wfV7E}?HaGaCmY9muARF8D z%AZL=>BbVwEYCo}A4;w5MDS)a5bp)`nwdhVQeWB)m9t$8l>15Ji^2mQ3A<#`ECF=_^ukSuQ> z4wwl{zfrAoCMkv)V6>Z@3wbOrqw=PoTsg;h)>Dp~byP8H1%plg%Bx$*Lw^Bg-|8dJ zdJx{qlwWwO&kPI6xE#3Cr*rnGCWTqS@p=y}9i!Sd+eCERBnHt%djsW}|Bmttuw4Fg zgKccvi9nnGvVo5`Oa<&y8|T^Ih0hjx;n_7S)K)L(^8AU^*8D3!AP*{}{STyE~wujpyZOy*sNRuzp8fp$} z$Z1r+A{vV&+T-CyR@W412{X8`8E=9rxljNGAVJMplzQ@oYekf^KjYpYhQ zxWzYTRk$r4jrtZXTyWEZg&&B0$k)Djt|;+lGem38_H~-4v%+)bv?=9#Fz8C)^iX<~ zeyT66_+-h7OD30egM!!HN;uN|68y;e((6lzfZA@LN+kNrE4#jAl(qK(>LMIz>&5ty z?Tut<=|dOWee5Fwr1@kBNmF{gNA{7XN~DAIBkN1PZnqyI9ErY;yMMo^{}ml^W&foo%VhgaqW)hC+W(8)ey6Bsw`g|z=k5A^qJBq# z{M&5#)1sc~QnoMIYS#~m`lkxof5EQT$aYBdQQelmWTjp26ZO9!K9YawYqorTQQuWi zztyhaBgx;Y@3HICqW%vB^>5hqL!$l*1@*mly+(FN zYM~z~Ur95o_W|;W`qqN_&8(gvw?yhF)7~5_R$r2GZbpCihc!Yo~bU&0rPvh3*wf#2-Fmk6BRl;lXTfHFQy8Jfq}qFiEAiM2$~ zlxk860oXW=Vtgvq@HdW*M1CAV z{udW~GW1?dZ!=u**)I5E;AF?Ey)YgU+qdz)!-amO3x2l?zCrN6O9*?A^`dEE7y6V7 zzSjkR$_0PU1wRg)#{0iQ9u{Xnrq^BQ&kOpmOy`2LxC2=a7AWHLiU`P9ya9Zwz#FdM z^eoOmb_Vcb_PW{yU*>|}>w>qq;Gb~8Kj(t~y9@rD3;shFeAoq_gdn|`9;#gM0C3W? z|4Ob;7MCHrLEt~G9qJ0TzcL`=r2Q0%!3T@UIB`?rS+ci@T8hj=(e5ah%0l$i5)(tKZM@U+|Zf0bWdR zzY+9r33?WHq0OHJzV>>~fW=$LPMKVs&$TXi4RF%KViAb2xD0&m5%{3MSv&^3N#M86 z<^8fajI!*Uw4g!T9*wpJTf$qyEgjmb>e|}sU~P51$gQhhvr5+j)oX$)*Hy1rf9KjY zTJ@UscLu9h-&uW+R=ql4R0mgA->yu#KNI?7|c-{Y>h&|NH`|zlpY-f;m$}?FqDW#gV9(72SD)97}gky zhk|Y4t-+=kl*SIAdAu2-Ke!FuMPrTVg;lU&wZ(%}2S%}N9HwH&=4dRguuZhZ!c9Up zW*en*t|N{%wM5#3Tf(t;q`_8&QUk7$?HC%XYYw(VLybW?KZjdGEiKUot!7oEX)R9J zD{*>W6Kci4=+MpJRpI!$a08@YzpXti5xp}WZtH+f#{p|#FA3gB=k%Iz2j>q)t0Qe; zsc3ElE@PqtM|&8gJrZsVk~+1fSlFgiOv1^>Y40gmr4G#w!Ha{F}3Ps5CzyaFRLJbY! zjt&jgQW~adDK%Gofixt3!{$(1bGQRSkdr@LP%nno5sx*rwindUIJQO_-BZ!oHjzAH7{0bd08;x;+$&GxLcN2Sb?2k?mZ$P$vw< zRZGh%S7;*E0sm`{lH!_!Y`Ilvg3$!Gfh1^+ZsFXdk?;%Mh z42_XcbF@v&{&=(*I)D?zBhqx_0_23j=1^;^oG-C3^Uh++BwIDNIhIhnF{FrL5eYU& z<54CbFSdoYM4D;UWO6c!P#d%ldj+Snzr_Ef;1p6ydUxRZ5CE`ONsH9({;1p^~{7!)rJMuSq ze^cjzH!6I53ZICAzfZvv3a-*W;(~ut!LL>Ld`7`lK2N&fTS);(^s2%m$NQ>+&sOj= z0+)K&fI3QlQRv@~vgGq|QWg?bQ|K%4Z!0*3tP*cTyh@4aDP)!SzbW`U1wW(URSJHs zxauN4D*l9m(;c1UKUrL*5xt7vs^BW0Qx}5}iRkC!k$f(lMkvQWfVaeNbitRo;2%}+ z1qz>#z@`2>sWYS|h5kmAWxv}Le4&Crrr?Vd{2KOG99(|-KM^FKYc53riN^auJQA-J zxRghp*Fp-t>JN`9_yUE`V+u}prjq~53a--smx8PGSp`?=XNdb0lAr#OkL15m!9T3v zNd>35F6p0EaJs9N_;CeS`#quHs-AzT;HvzW(`JAq^+|tp=xy zj5bovM-+USg7+x+KPmWU6#P~NKOk@^r}V>v3O)UsOxbTn!LL*B;|hMef}d3II~4pD z+We4652~K;P;gbBk1DuI-=pBw;3eh!oPw)-_FP82=IwHr7qyq(!!uG368{4Q4M>C& zOUeI#6r7g8BX}rXPQe6{ll~e7C;DTIO4B|gaMHsHJd*!23cg&y-*oUfF8EBRO&Uqc ze~K5iAqOt$SrAZ!{@IzlA<3iTk@EaN!BzeLOu<(w^uJT^RSNz`1veDjL%|0U^?N5C z+3#!xSLe$j1y|)+rr-+|J{uMME(L!dO%f#Pm+qWozqcv)Y6Xugc&&o>DEJx$Pb>IZ z1^caKYmOCpp*Sk^Fa4Fo#6AD(80uF8y56ryck~)*AmSl)~p8V3K~3 zxPNr=x!r+FJ|7o2$)oc5t%5IC__z2_KqC74@W_7m`%plV{T|~*?OQ&capFIt;1Y@W z)Z>wSP77Sp%XvNKLO<(T;xeAk9DzIe-0ni3q(xuwS&p}q=Qj$j&d02R`xN?Xs!%|p zajEok72Jn9$^QqFUs(iov{cPY818jrM=?tef3 z|M7Ek@BNJ!!0PDsSUS2RyuoYh2)Ff!6?ok|49ZhoMsc!Z z*--|XTolGq(Vel@6+69_(^sw7?uFa#lcYvGEgI(Uh^1bOwI7NUsjbi9_6+_QfxbEs zO`Ev%aL{R6!pZyPZr?&3DMRgBtgWPIqVxgW`XK!IFwI!x8sb4q?W1J$jrSo^k zhI(Eb9GbKr0{3%c-&=TejAYko8Ibu(kc6wXyWIgD;t?mzpn1t=Nr< zA8cK*+Y7JmEpQH*7Tq0ge=YOcIv8r19^N2w1EIE#L?q+)&W*+5jLm4V+yGTHyrIMA zwCL`k_I9UBi&}dNk{yY#TD(&&cD~4)Dwd9obe_m3Fc6dGH?1>K{3TjSM`kKZYbu|% zZfMiOq@%mr%R<&xX|U}_n66@4YAh*TXT5mC#-0-0-MTY0q{ykQWYc{yQI^}VL()1; zZV5}qFCqeBAtKO zr*rVw)Yeo_@qic?>ddD*g@k!*&#y1FweyQ(i$ARSaA%?C6%VAg)NH}ipQ(N8u!2zk zL9Nlx~un z)C|BuX_+VUHIMZCogx!Ub;dTn`suuPAHM$uX<^;5Pk)Eb-8ncS*7@1_GMR`>Xdo4R zt98X&-mPEDqYS0agN+?BNQ$HK=D(*$3og@7D!RS@kk%DDyk#TP(YMZt?pU#p+*8pV ztT#a^MlE_=?W`1j{l{cNtwwmT31$0ZD@aoGX)>z1k3aI>*SSHSJ z#znW88PL6&^^7#Fp3K5$^Jp}-R9AN8W5+%bdTTF2dmq|EGAFsUfSZupSG*N#pW8Fz zUnD>8qLfS(lxHk`G_WZVX0tc4%Q7h_Ez8o;ZLTcpx8&o;P|UWk$i;kaK{L zNnxu9xmnNWu0WzYr3u)ct4)AbCAaO0$hw1TQ@Xa*5^HZC_yNrcNA7@nPu&?Er}Cit;Q}{ zC0hH=F@+7UiDHQRcj>}d)LC0?n=01FgUL!Y;X^yKGswT*lGnkITdKk$je=u^P>>&MHcFteh6!V3NuD zyClX-Co>rhllqm!8_^DP74(O>uu|Wdy3MTqW$JZpM%|WY*_m0Uhu3w4H%Kpu4$9)U zZ4K(#c{^{i?1m-ZYIdOYg978aRVxO)#0XP>{^1)jy4#|Mv^{Hu%TDCb@P_$=usO$3 z&zLSa+zhc=#M^caz`E3?F`_M&db-Hm)-5!*_Qi6WlS($4Tl+G(VQUjEj;;z9&s`fX zp1(d^eC?Cr;&?~6xUMH$+|nB^UNJxeQ!*xLrpT0*H2N_Z>l1b+`q)^6MSv{YWL+Tb zP$tq;G9u}^l9T0ck=WOjoGMR~VQG6*q?2dKYpgw4hFdCGiks6W&7-{?31jJXMdtQ2 zl(|VunnEf$o)eV85+gFrMuac4_mGS-*2GlVNEri6VFHJN$uV6Ar)001c^q(!Gu-wa zSr~Oi-;+YP5kLA?|52^c_hh;8R%**LKi#%%TP*y;EwRp>kgLf zJ1`^l!3>$!^BCGU2D74yhOPdd=x%et|Fu0qwsZ|!e0L`g|^g-d}gHb7loQbrr`w&yKU#jz30R5buU+k$4d*DWXiI1gc+avulyg%Kr+0p8@Wpc zo#A^sWCR~&a_IXJs`39`DX_fhFZ&s&K!S;#YbrducG zTY)7VRjKH1C%p2=tbl63;oe-CK1C?Hdn2kUxAOZ(vwpj9q4m;`NLo>JMF&yOF7t5m zWqIq0evC}|o`E8)&pWs`yt3w=3kReHvFmRVE?Sv=*QCaKQ^1?Su&~ipO!ln_)oA_ z>?_4L*^H70D3qQji|btPI&YCjrPWT+^`YrG)_q^HuG77*mF1%DXOZkA`t52+7tbaK zO|{h&)YCUPOOc&oiwpvCgduG@?Mayv`?<%0mJz(TavvPrwyPV9{?w+kWEYZpdaC^8 z!6mZ?$KmmTu0^cOQMEcbTT-oh7=J@slNZX(TeS&qUP32tDT7(lCd-66Er|=YQJb}U zxa}uWoZK~WW>-DrGY4DrP~V+M(`t;Dn7a1mh-+uQQG9JiLF9?>3df;*=bXHOqw`Kl8-*jCm_R|rIOo1 z$%dPd+lyspQyWQ*ZpaQTokSJNfG!iQthUVTj@6dk5@_T|8)=#;B5ixs$YC~8d?HOh zvrcPY(IKPP$URS^om`Z9=^`nEEQW2;%@L6`BepfL^#!|qPbIH_F`Mw$YpKm~iFFq5 z3w4#1DfIjfa{!XFko(h5Ke#T`g5{@uNd?LR+Elo!wO`0M(3PA6>m{VkQz{vg_r6aA zxJG`mTmKpXt>Ek@T=H>`em2r_LU@DeEZX8R3fkT<%_I#c?=$%zhdk{Bi+wba7?%B~ zi=>*AcSVXlX!Zj&-P;8jXjUb*?3uQft<%%;7bIuqW4TYtyFM z&78#b+d8u02tPivPB2-yGuFZXsV*QL=)Uz1g}(6e{bzWJk+vTk5@5 zN>8k{V}VQE{?!E=MHyBqUlrXF zv({zM{P4ZZ>YLgkT6OkdG|5;l!RlhyubuCb-sZI08eJ;7T zQ$c)89g}J58Q%<}NB&!*ugVxLA2qkPydtyKGc!yJlndGl6`i; zcd8L8lXdF$PkT~78~eP;Tx%fpwsVY2jG0!>bzYf1Y2{>dpLXkbyX47i22)!Q5#HR< zx^uESnd!Sv(sf09q~KoPVtGzSdxi{U;$-(x+93tT41Csq#+OOUT5P}Qc3VSITT^;k zd!@YLsWVa1%4X->zaW|Q*0i3Mg@111So#q8 z@J{^ZJ0ieLX*zy-SSZ!C=XF^t4wL2{YK`{D;b>==Sk4g{cP`l*ZcUyj0|71OzbUn4der78Wl=I@AJAn^mP{)+AN6Vvn($E>`xdot z4xZAbSD*>(|0juNYyQ`$(EO^k%73yqiTrhaMxe$#@|jAW|0kz1wVPw~&}toF{VgLj zPVi*1#La9zevJCvWGW-v_MnUdX58#sXGR3)%hti+;X7{^ge0venTJr~fY!mna2tHw zS54w&voe)Xn#!3*QppL(b`$=}G5^Vu$jvN3iL32fo^4~=q|9>yZ6n+Xv!08Vo)xpi zmSu}rs3yrwdX_Hc@p7eu6$+x@}jfG%nwm6Kl60 zbE%6~Cx0rR&DpxeKJqKMJ8;?7OTCC;X1-sYd_{y;J&eEl^_)K;&8sF2{)SdX%@T?*3E0K7s6`}7eU+R!}6rXNc`1avxeh>vJSU(Vb?h%`#v-7TP{13 zRI*3BBUNTTKuslg$Xi!(J3NM3k*^9GlwJoE>l$WO2(3mS)Vc{Uy!2OTqolp;eDPdt zOXuJ|(oieq3sTR%2(32u+nv8VA|zA)`NchUeCdq+>>ccd_w9FYP z9a&@bFrU05r%man$cKTh89RV2h#j~x3d3!GlbI;~Vx{4>%R~wH5`0hRTw$gQaKzqs z9JVXS*Jv`GbI8VQYjT@7&&6B)I_5|_yz3j{QrEHVs7#x>bP~I~*1^LPVfl0G^{s;i ziDOy^_i0&>Hv2z2X3N?J^8m8xKi>`G1&RIKV`0l7>2)uNqI9%v+LqiSHk)kK!$=&G zMck@Q#@eu%VO{pJxP9dhGOl+FJ-)<|ra76BgQ7jX(j@G*)PA$2PqrIUxa1>}x0`2i z?)ql7%+JZAx2LDC3&^F;Stg)nekifF1;|`eq(hV5`bX#kAJir6d72%TE;hQeUq^5W zugM?XKPzL1ErxuZ%=BT&ds6--foTT)2d(Y<$IoPY+xK_o@BQZQI{AyQKjTwRws0-g7cR+C#Tw$E`cpx`W-@cHy8qwdop(jisJ0lbe5% zlk+?inOullyS=q`$hnIxTUT_a49`XKSuX_ANvJYz$$skvM zVfHc$&yyX%St6al~a*jzcrbsM)-asV>+nCH0zB@2_k>5I={X=Gkqyv%_L z((9l!owPZ))sJ?s@P^W_$_nC4yJgRgSwp%!cYo79ZEm&^q)SIjI~beQInqv{VI%Y$ z+`;0K>8Q4jmN3bS4Wo74B2!<#Gy~JRM6q2q+SehgKCQ6W-i73V!D!1FXR@oL95d|q zhvi#JJH%;XxB0@7KK93CUDk_ANGHwl8NOZYzOghWZydh#BVQeoG4)0S=f zneHX$?DB<{zl8y&j*x=Bnua{GO}WqREEh|AALk8t-nm|>=Oqr$S48s#(5!1m$(L4Q z>2_1j_9TwDat_%392?9A(^P0Gxn0ceKi=gJW1Wk99uprU)7)Cfb&WLP4Jzi8*miS@ z$wn5lD`zr@RSsm1C1J;q)+yh0vd8!43*b&?tEnRSj+ATRvaXTT;WcN-Ukk;OBi#u- z%4B*_wic|AZSziz`}YRZwyYTKSZR^_2+CyDm1#8n=TJN0(*bPZ4{ABg_6-an_Q`BN z4pPHyQrQzN-N=K24m`OiJHO;``N|;tC0`7bo0m91>IzTh-@eE&LJM_iy++i1>BWwL znlRjUJsN)|ZZcX`=FNVO$CO;Ol;*_6PtP04AU&CQX}^BJ$D+g>yZ zGf_L_2zj(*W4g1fyHSv=s;FV)NuJZUl-e@B*@@vE#tr*)Q+yW_gTimbzV89I2>Mg4_J2T~`F!M~y zOZ~^${9s%x`=}ko&g$H(hJ5j*3dcOdVNFJL_o(xSY~gTcYXC1>B9&I^gdhfBYnI{-%V9g+$?>@ z2?v79cd>o-_LV#8+VRV@Tz-B7$s=zke+9`iUqbSbb@G>!Jo8$Thwq&HJd$Uho}%)j z{W-mz>$aCSO*d|@5I@fQ2)9iVr2yF?%G zU46E{j5yo#b>&5JXTE|s*Q0Ackmum)JtC0vb@lG&uHL~>zb?3Xj|gDy>K)wqKps6; z?|$y;9h~de)w`cxE^-KC?Je`SUZ1eK=5jgy72(`BA_4M^#M#e|`}K^}_Je#`{#w$5 zHs`|E^a1jpNCM}hGn5~!cgLOmhY08Tb@qTGUnd{Y^kx^U&$zjIKTMw4Kd#>W+|@fc z*RQL0KX>&G?rf3AOuhTLt9S5x_3q~}D3bvHv;AK+)N;1-V&ZJi9O9g>S?@?3CXXtW z!R;n}K7tq?uO!a)#EG;1C~-Fj08LkZq}-XGN1XMaPn`ANqWmbivwS&mmakBLwBFrq zhCUqQfZm(+ek^h1a}d2l{}{Pk{wR-oh8XGreZevGN4%r`j?)a9m(?siJ5t{escUG8 zN2+UTRN>{cs&V6Rw^G?Bud${vE)Aif zF>&=_!&7J7Yoajkb=0C5xp=pV{p^zF@{mp&u z@&Ac?bIqdqirR>H#fD27B19NWF%bq#r=dRh8TK@mR-`O)~o*fxKJ6@k?XoyUiTykp3OlfKu)dfqv>yYx%5WpIPRHcpQ+Y{{141jI>L!!m_;X7ZS&@o(kC|1uL_ zrSb1ViL;^L?MxZkG(MJ-er6{9_cZ<`3}`NW;R}V%hc9USPjb?4$fSQy;~&b&|GSy| zao~-{jV9XEah1j&!0{JlZoELBLtalm07?(LOot$++^(7r7~Z~MBwxkE*%CXm^Vfvt%M}!BkyR3 z<2CLS2)MM>*)qg5emuulX5$xY{0}(3;L(izt2O>-*l;=hDC5=3Zw1l+xsQL;i$g@|FD7?ONl8$#6} zV4eq$X`LZI7Yfa+?cTEYLT|t93q2K@T_yo}oFLbMR9=_w6y-%Kj&^}?x?GSi#fyZ+ z_U28KJ9vk_FVs8MbKnuJf@hS^P`*RCE7xr0y~>?EmnwIC*m11?pdX(%AUIwj&)~a! zyhizek0+FW?Bh2oA5^Y45Bosq|IEkVmv?Ztn2v}XLaSWh5v@n(&%2F$wmqzeu!Oth zI!J2%J>5V&WT@w@Q+_8F<`T?UCHDtJFXW%b!dybk-n_q;JNW0y&DbRD3FW7$A!bYx zhGQbwd6wEaTHX=fmkWAan63}c%iXmR7l->B0sP$n{+|JSFn||`DX_=cVdh?uJy3W) zd&UItu>t(l0FKX^^68%uz%iHQlP?nv`_EKAn{|QMe@%dVWdQ#-X=?fOe-z-i8v^v) zruIzLAaMk;7(1nBv`%5T*Hz^qS1{+R&zUrSuR z@@`T+Asm=VFzXn(cLnG{d_Fy|1#pbZ`Q(2QAdfXrKKXZqquzh2dl9pi5<4+Y<&*y) zfd4`DT%{e zgm(n!=?dVl25|iQi+q0mRRDiCfcFRR4+A*Hp?vx7S7`n4t{zC3^`(^eE5h^1j|$fr;ms}a|7LN9?;Y4GmT_elm zy#adG2k=J&_>%$rCjtD$0NxY8-wxn?0sKD$_~*jmhjS)cKbZZ1JQfDbNBaqfe6`At zx5>PNmEWb@>706#x z0ACxxzZ1Y84&aXm@TUU!rU1S*fd4drZx7(V4&Yv0MNNH4C62P1z3W>NiH7=Sud=17 zNe*^Org+sgP0fkQ+M3EGC6m3nhN`$%(Nrr(V2iwj$lX*^FA{QuY5rE$C(OO3YMED2 zn}|2nS0v)1ziA0#a7RphS)#EiUR|@yYl=75+#Ih$*6t9kDPGl7aT8+ViE^=`xuMBx zmeaa;^Wuh^yvo{mMN_#=1{+kMeD<76FPJf>{L%|AoEN>K{E8VD%!!sGzPz%wq1jk0 zPw|TSmPS}zUfmRzGVPD8_zmd1GrDcB-! z!Nt-$me*a;pzoD+Rm~8${l%t$TM|tb_06>~8E=bg7A>xoE8#7eThYA4W@59vVtHe{ z$^u9>S2i_BbtdBV<#p2ZTI#(8W#SiPjc8+QbG%j#l1-J^vU~Lv^$pFn@pz-R;1cOo zs^8q2FKdanNY@fIam~0Q(IC1_vp471ElqK+x*iUZnyN(ha#UWqxVFkOHC}EH&H>|f zjfv%G(1^HZV{%P>O~O2wj#pkOpH+w$T1k0JvmCrj zrcylgh1#0>xYs0!QQ#(dLMydTrY`Y#ql^OyW4qCd7GfUIKFx#ZiPtYhNou7rppd3j zNKGsgI}qG{Tb5yFU9}q@%1FTHln63BdMC-{xGq12gh+ff#B!Av3Ll_`3HhuJ|z1v z$MKo5(?41{?1T>;KR7`CaN=y|bmFZ40^%%>e=~%Dd~t^7@@*k`*7J4Z?6><# #6 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 literal 0 HcmV?d00001 diff --git a/.local/src/sxiv/options.o b/.local/src/sxiv/options.o new file mode 100644 index 0000000000000000000000000000000000000000..5cad2abdc844d170a4791fd56cb85f83f4c62196 GIT binary patch literal 9144 zcmd^^e{fV+702&}-xZpqrC0^^=|G#dumXdK+YV%#EP0v94@iP76kImR=7&vo}7e|cx#-g`gyd(S=h-23i(dD#}KSexhb8BRX4+T?0Xjp_bWu3YRCi%p>^FdOXj zAMAl?NbK~h!tjOI$C`2`Lg%`bFv>X8#nR3ed`YrB?Q z+jzAzR2wOrYD|A@?%fOb8_fIaL*U{zcH=`{(%g_u`R`^%^KTEG%f?_?Azfp>U+(py(YO&)@mlKgY-E^n-(8?kg|}SX($XeP?ZV_HJwc zhEum4O*;pN3m~4IHqWjf4jA`P$t}yyOlS5M?aR!(%35|iQdGgu&{(5=hkJ~tra1vV zc?_M&B|B)$3ApULjd>KV6L8HdfjV3#FfYw%7ZzJk!PSGkm%g3p58>T4RB#0IpVTAQ^xa>j{`8Zdm@$ez&hN#=`pm_CBSul9GT`R93a& zHfz~(|8oCQm*a6{!G-q#G@3l)%OKkD?}mCTvG9t2Ruw!4r+@@n7gHk)B|hWk%BKh3p3jVePwr<%WvE9_LKWM^@8 z>lA0USF?{m)hGBuYW^tkBC6wDFnt;>)KeJ22RGq&%dzXw0y!GGex4|?#IJ@|1C{<;T$!-E_5j86I+Oiw)C9&U?vMcb0bd0K=k zgZEOYCRkM#GV6j>VR*ij)Rk9PnP632c{o^69;`LNigk7{49|>Ejp<0V#!_MDF=aYB zQ%M3{(L@rS1*RjCNJhgns7a<0iH4R0XyVPWNPE;oyIWJ}5U;?hiM#+#ha=w6?*-A@PpPgYp!(_+HP)Mo4%c z;5*-yaW{PeAtctn;#SQf%C)|dIO|VSJu39LKiNLH<=8J2oF0?c@NHxV?MwZ)J@^xX zUk7EJGp2pcuRAZ~eE&bK_%y0NuQ=b&&R<2)hW?=PioE zi=C5}C|*i@h2kONcPhS?ctmhq+X8eLQo9F#fH z=S2_w5y8>VH{rrGDD2=XH{1E0(Br;Zh+;^8RGjz8sN%ei8OV|?Vi zKIfrdBRJ0M3S5}JDD232)eAk&Yq6t-^-`SoXOH00&ppDv^z#QE`sV~kKNnJ5jte`| z&(lJWe)9eGw&2pAA;D3 zP#o?Nc4QnHgdXRGbHEfAT>8@`IO_TN^04CQFQx&-`M!Qa@e)^Vexx{`&o2lr{W(G$ z$HR9gzQ0ZiJr<`@{gU9)&ff&bVv6E6hbDrVjN3foxLz0s3ocBb5nS3|DeT}q&3@K; z=D=q9u{~r^2^q=1;_bXlsZJ3@DcCLpy`}3mUa-YAf?C`!i zDYz4IiuVx_tA}l7KUYo@NB`#we+GqK`gz`ik0{Q5{?&tzDNf-x*G~s0AfZ2amb3qJ#d(XxE{gxn zif{k3W(tlI&GsO2Q{s!?!6n~5O z=={uO@y@@i6fr#pA?(ulT#fhZRpz z{4Xi)r+Hmgd^hReQ+y@q#}p3`zoPhR;{5k9Hsf`S>|-o2;W3NP3r-dlSkJszasFPm zRq@4CH~!>OTh_*%isc3h~_!}dsi1F7alg97RMBF7#1&fINZSjUk zoAEcq+ws%C@yFt+s2{%8E^)rZP`x?U>4)z;9nnPUL9!NY2{$G1v(JB@EHHtw;;^#C zVk*p44fOb8ne(j1Ey8+k7{rf4kP7evEF^r#!@m4H=I;`>5U1@8H8<6%ahdD!ab3`+ z?!T4#uj7uCTdKYi>Sz=9g-qPPKpD2A2+GUgnrQyRG{JqeFLC}@)blR^hU2SYOb30K zXFW)qr0c7JPBi}RPr7=JGmekn^0+_qT3|Rnf0u!xle%eqd`FgvR979&58OClmC0NJ>7!t|1XO26SDvS literal 0 HcmV?d00001 diff --git a/.local/src/sxiv/thumbs.o b/.local/src/sxiv/thumbs.o new file mode 100644 index 0000000000000000000000000000000000000000..f635b4994c42cf81745877164a565c445a101591 GIT binary patch literal 16784 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 u`W!&%9HlJ|Kk`~M$Nx-O9b literal 0 HcmV?d00001 diff --git a/.local/src/sxiv/util.o b/.local/src/sxiv/util.o new file mode 100644 index 0000000000000000000000000000000000000000..63dca23d2c60d100b4832a3b713fa91a103107d5 GIT binary patch literal 6944 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 C+7}-H literal 0 HcmV?d00001 diff --git a/.local/src/tabbed/tabbed b/.local/src/tabbed/tabbed new file mode 100755 index 0000000000000000000000000000000000000000..cad9155b734d877b74811a6daaf93f759817ac27 GIT binary patch literal 32288 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

%dl%V;H)0wdI%Ebn<)E!?PyjXOlSwSV^30F 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 literal 0 HcmV?d00001 diff --git a/.local/src/tabbed/xembed b/.local/src/tabbed/xembed new file mode 100755 index 0000000000000000000000000000000000000000..4868943cafc0c8a9569e08505dbb570014c09dcd GIT binary patch literal 14384 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 literal 0 HcmV?d00001