Add slock bordercolors patch - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) commit 35f284382cef576ef4f7460717d4a1ea5d166c7d
 (DIR) parent e93bcd909faead037d063cb7570b87270b467bd5
 (HTM) Author: Chad Humphries <chad.humphries@grunclepug.com>
       Date:   Sun,  2 Nov 2025 23:44:02 -0800
       
       Add slock bordercolors patch
       
       A patch for slock to replace the colored background with a colored border.
       
       Diffstat:
         A tools.suckless.org/slock/patches/b… |      15 +++++++++++++++
         A tools.suckless.org/slock/patches/b… |      49 +++++++++++++++++++++++++++++++
       
       2 files changed, 64 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/tools.suckless.org/slock/patches/bordercolors/index.md b/tools.suckless.org/slock/patches/bordercolors/index.md
       @@ -0,0 +1,15 @@
       +Bordercolors
       +================
       +
       +Description
       +-----------
       +Changes default coloring behavior to use the window's colored border for 
       +input status feedback instead of changing the entire background.
       +
       +Download
       +--------
       +* [slock-bordercolors-1.6.diff](slock-bordercolors-1.6.diff)
       +
       +Authors
       +-------
       +* Chad Humphries <chad.humphries@grunclepug.com>
 (DIR) diff --git a/tools.suckless.org/slock/patches/bordercolors/slock-bordercolors-1.6.diff b/tools.suckless.org/slock/patches/bordercolors/slock-bordercolors-1.6.diff
       @@ -0,0 +1,49 @@
       +diff --git a/config.def.h b/config.def.h
       +index 9855e21..c8b97d6 100644
       +--- a/config.def.h
       ++++ b/config.def.h
       +@@ -10,3 +10,6 @@ static const char *colorname[NUMCOLS] = {
       + 
       + /* treat a cleared input like a wrong password (color) */
       + static const int failonclear = 1;
       ++
       ++/* border width in pixels */
       ++static const int BORDER_WIDTH = 4;
       +diff --git a/slock.c b/slock.c
       +index f16781f..e2a0a4e 100644
       +--- a/slock.c
       ++++ b/slock.c
       +@@ -194,11 +194,12 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
       +                         color = len ? INPUT : ((failure || failonclear) ? FAILED : INIT);
       +                         if (running && oldc != color) {
       +                                 for (screen = 0; screen < nscreens; screen++) {
       +-                                        XSetWindowBackground(dpy,
       ++                                        XSetWindowBorder(dpy,
       +                                                              locks[screen]->win,
       +                                                              locks[screen]->colors[color]);
       +-                                        XClearWindow(dpy, locks[screen]->win);
       ++                                        // XClearWindow(dpy, locks[screen]->win);
       +                                 }
       ++                                XSync(dpy, False);
       +                                 oldc = color;
       +                         }
       +                 } else if (rr->active && ev.type == rr->evbase + RRScreenChangeNotify) {
       +@@ -248,13 +249,14 @@ lockscreen(Display *dpy, struct xrandr *rr, int screen)
       +         /* init */
       +         wa.override_redirect = 1;
       +         wa.background_pixel = lock->colors[INIT];
       ++        wa.border_pixel = lock->colors[INIT];
       +         lock->win = XCreateWindow(dpy, lock->root, 0, 0,
       +-                                  DisplayWidth(dpy, lock->screen),
       +-                                  DisplayHeight(dpy, lock->screen),
       +-                                  0, DefaultDepth(dpy, lock->screen),
       ++                                  DisplayWidth(dpy, lock->screen) - 2 * BORDER_WIDTH,
       ++                                  DisplayHeight(dpy, lock->screen) - 2 * BORDER_WIDTH,
       ++                                  BORDER_WIDTH, DefaultDepth(dpy, lock->screen),
       +                                   CopyFromParent,
       +                                   DefaultVisual(dpy, lock->screen),
       +-                                  CWOverrideRedirect | CWBackPixel, &wa);
       ++                                  CWOverrideRedirect | CWBackPixel | CWBorderPixel, &wa);
       +         lock->pmap = XCreateBitmapFromData(dpy, lock->win, curs, 8, 8);
       +         invisible = XCreatePixmapCursor(dpy, lock->pmap, lock->pmap,
       +                                         &color, &color, 0, 0);