URI:
       [st][patches][solarized] Updated swap version patch for 0.9.3 - sites - public wiki contents of suckless.org
  HTML git clone git://git.suckless.org/sites
   DIR Log
   DIR Files
   DIR Refs
       ---
   DIR commit 7ca8b3b31fd3ce89425397325b0aa932e9a0f049
   DIR parent d02758b4c026d0e2627d841dec9bfc311cbe341f
  HTML Author: Scotland Loose <sc@tland.cc>
       Date:   Sat, 18 Apr 2026 21:15:38 -0700
       
       [st][patches][solarized] Updated swap version patch for 0.9.3
       
       Diffstat:
         M st.suckless.org/patches/solarized/… |       2 ++
         A st.suckless.org/patches/solarized/… |     198 +++++++++++++++++++++++++++++++
       
       2 files changed, 200 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/st.suckless.org/patches/solarized/index.md b/st.suckless.org/patches/solarized/index.md
       @@ -61,6 +61,7 @@ or the dark color scheme:
        * [st-solarized-both-0.8.3.diff](st-solarized-both-0.8.3.diff)
        * [st-solarized-both-0.8.4.diff](st-solarized-both-0.8.4.diff)
        * [st-solarized-both-20220617-baa9357.diff](st-solarized-both-20220617-baa9357.diff)
       +* [st-solarized-both-0.9.3.diff](st-solarized-both-0.9.3.diff)
        
        Authors
        -------
       @@ -75,3 +76,4 @@ Authors
        * Joachim Büchel - <jo@audijo.de> (0.8.3 port for swap version)
        * Povilas Balzaravičius - <povilas@balzaravicius.lt> (0.8.5, dark)
        * Max Schillinger - <maxschillinger@web.de> (20220617 port for swap version)
       +* Scotland Loose - <sc@tland.cc> (0.9.3 port for swap version)
   DIR diff --git a/st.suckless.org/patches/solarized/st-solarized-both-0.9.3.diff b/st.suckless.org/patches/solarized/st-solarized-both-0.9.3.diff
       @@ -0,0 +1,198 @@
       +diff --git a/config.def.h b/config.def.h
       +index 2cd740a..d8d029a 100644
       +--- a/config.def.h
       ++++ b/config.def.h
       +@@ -95,33 +95,44 @@ unsigned int tabspaces = 8;
       + 
       + /* Terminal colors (16 first used in escape sequence) */
       + static const char *colorname[] = {
       +-        /* 8 normal colors */
       +-        "black",
       +-        "red3",
       +-        "green3",
       +-        "yellow3",
       +-        "blue2",
       +-        "magenta3",
       +-        "cyan3",
       +-        "gray90",
       +-
       +-        /* 8 bright colors */
       +-        "gray50",
       +-        "red",
       +-        "green",
       +-        "yellow",
       +-        "#5c5cff",
       +-        "magenta",
       +-        "cyan",
       +-        "white",
       +-
       +-        [255] = 0,
       +-
       +-        /* more colors can be added after 255 to use with DefaultXX */
       +-        "#cccccc",
       +-        "#555555",
       +-        "gray90", /* default foreground colour */
       +-        "black", /* default background colour */
       ++        /* solarized dark */
       ++        "#073642",  /*  0: black    */
       ++        "#dc322f",  /*  1: red      */
       ++        "#859900",  /*  2: green    */
       ++        "#b58900",  /*  3: yellow   */
       ++        "#268bd2",  /*  4: blue     */
       ++        "#d33682",  /*  5: magenta  */
       ++        "#2aa198",  /*  6: cyan     */
       ++        "#eee8d5",  /*  7: white    */
       ++        "#002b36",  /*  8: brblack  */
       ++        "#cb4b16",  /*  9: brred    */
       ++        "#586e75",  /* 10: brgreen  */
       ++        "#657b83",  /* 11: bryellow */
       ++        "#839496",  /* 12: brblue   */
       ++        "#6c71c4",  /* 13: brmagenta*/
       ++        "#93a1a1",  /* 14: brcyan   */
       ++        "#fdf6e3",  /* 15: brwhite  */
       ++};
       ++
       ++/* Terminal colors for alternate (light) palette */
       ++static const char *altcolorname[] = {
       ++        /* solarized light */
       ++        "#eee8d5",  /*  0: black    */
       ++        "#dc322f",  /*  1: red      */
       ++        "#859900",  /*  2: green    */
       ++        "#b58900",  /*  3: yellow   */
       ++        "#268bd2",  /*  4: blue     */
       ++        "#d33682",  /*  5: magenta  */
       ++        "#2aa198",  /*  6: cyan     */
       ++        "#073642",  /*  7: white    */
       ++        "#fdf6e3",  /*  8: brblack  */
       ++        "#cb4b16",  /*  9: brred    */
       ++        "#93a1a1",  /* 10: brgreen  */
       ++        "#839496",  /* 11: bryellow */
       ++        "#657b83",  /* 12: brblue   */
       ++        "#6c71c4",  /* 13: brmagenta*/
       ++        "#586e75",  /* 14: brcyan   */
       ++        "#002b36",  /* 15: brwhite  */
       + };
       + 
       + 
       +@@ -129,10 +140,10 @@ static const char *colorname[] = {
       +  * Default colors (colorname index)
       +  * foreground, background, cursor, reverse cursor
       +  */
       +-unsigned int defaultfg = 258;
       +-unsigned int defaultbg = 259;
       +-unsigned int defaultcs = 256;
       +-static unsigned int defaultrcs = 257;
       ++unsigned int defaultfg = 12;
       ++unsigned int defaultbg = 8;
       ++unsigned int defaultcs = 14;
       ++static unsigned int defaultrcs = 15;
       + 
       + /*
       +  * Default shape of cursor
       +@@ -201,6 +212,8 @@ static Shortcut shortcuts[] = {
       +         { TERMMOD,              XK_Y,           selpaste,       {.i =  0} },
       +         { ShiftMask,            XK_Insert,      selpaste,       {.i =  0} },
       +         { TERMMOD,              XK_Num_Lock,    numlock,        {.i =  0} },
       ++        { XK_ANY_MOD,           XK_F6,          swapcolors,     {.i =  0} },
       ++
       + };
       + 
       + /*
       +diff --git a/st.h b/st.h
       +index fd3b0d8..4b4d5ab 100644
       +--- a/st.h
       ++++ b/st.h
       +@@ -120,6 +120,7 @@ extern wchar_t *worddelimiters;
       + extern int allowaltscreen;
       + extern int allowwindowops;
       + extern char *termname;
       ++extern int usealtcolors;
       + extern unsigned int tabspaces;
       + extern unsigned int defaultfg;
       + extern unsigned int defaultbg;
       +diff --git a/x.c b/x.c
       +index d73152b..c20077d 100644
       +--- a/x.c
       ++++ b/x.c
       +@@ -55,6 +55,7 @@ static void clipcopy(const Arg *);
       + static void clippaste(const Arg *);
       + static void numlock(const Arg *);
       + static void selpaste(const Arg *);
       ++static void swapcolors(const Arg *);
       + static void zoom(const Arg *);
       + static void zoomabs(const Arg *);
       + static void zoomreset(const Arg *);
       +@@ -254,6 +255,8 @@ static char *opt_title = NULL;
       + 
       + static uint buttons; /* bit field of pressed buttons */
       + 
       ++int usealtcolors = 0; /* 1 to use alternate palette */
       ++
       + void
       + clipcopy(const Arg *dummy)
       + {
       +@@ -292,6 +295,14 @@ numlock(const Arg *dummy)
       +         win.mode ^= MODE_NUMLOCK;
       + }
       + 
       ++void
       ++swapcolors(const Arg *dummy)
       ++{
       ++        usealtcolors = !usealtcolors;
       ++        xloadcols();
       ++        redraw();
       ++}
       ++
       + void
       + zoom(const Arg *arg)
       + {
       +@@ -766,6 +777,11 @@ sixd_to_16bit(int x)
       +         return x == 0 ? 0 : 0x3737 + 0x2828 * x;
       + }
       + 
       ++const char* getcolorname(int i)
       ++{
       ++        return (usealtcolors) ?  altcolorname[i] : colorname[i];
       ++}
       ++
       + int
       + xloadcolor(int i, const char *name, Color *ncolor)
       + {
       +@@ -784,7 +800,7 @@ xloadcolor(int i, const char *name, Color *ncolor)
       +                         return XftColorAllocValue(xw.dpy, xw.vis,
       +                                                   xw.cmap, &color, ncolor);
       +                 } else
       +-                        name = colorname[i];
       ++                        name = getcolorname(i);
       +         }
       + 
       +         return XftColorAllocName(xw.dpy, xw.vis, xw.cmap, name, ncolor);
       +@@ -807,8 +823,8 @@ xloadcols(void)
       + 
       +         for (i = 0; i < dc.collen; i++)
       +                 if (!xloadcolor(i, NULL, &dc.col[i])) {
       +-                        if (colorname[i])
       +-                                die("could not allocate color '%s'\n", colorname[i]);
       ++                        if (getcolorname(i))
       ++                                die("could not allocate color '%s'\n", getcolorname(i));
       +                         else
       +                                 die("could not allocate color %d\n", i);
       +                 }
       +@@ -1203,13 +1219,15 @@ xinit(int cols, int rows)
       +         cursor = XCreateFontCursor(xw.dpy, mouseshape);
       +         XDefineCursor(xw.dpy, xw.win, cursor);
       + 
       +-        if (XParseColor(xw.dpy, xw.cmap, colorname[mousefg], &xmousefg) == 0) {
       ++        if (XParseColor(xw.dpy, xw.cmap, getcolorname(mousefg), &xmousefg) == 0) {
       ++
       +                 xmousefg.red   = 0xffff;
       +                 xmousefg.green = 0xffff;
       +                 xmousefg.blue  = 0xffff;
       +         }
       + 
       +-        if (XParseColor(xw.dpy, xw.cmap, colorname[mousebg], &xmousebg) == 0) {
       ++        if (XParseColor(xw.dpy, xw.cmap, getcolorname(mousebg), &xmousebg) == 0) {
       ++
       +                 xmousebg.red   = 0x0000;
       +                 xmousebg.green = 0x0000;
       +                 xmousebg.blue  = 0x0000;