logo

st

Unnamed repository; edit this file 'description' to name the repository.
commit: 9b55f7d3897cc76db1f13c3a75b09e440a20a4af
parent: 04aeddbbf74b8decf0d7f5f9503a7c3cc3e6c5f4
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Tue, 23 Oct 2018 02:39:08 +0200

apply st-gruvbox-both-0.8.1.diff

Diffstat:

Mconfig.def.h68+++++++++++++++++++++++++++++++++++++++++++-------------------------
Mst.h1+
Mx.c28++++++++++++++++++++++------
3 files changed, 66 insertions(+), 31 deletions(-)

diff --git a/config.def.h b/config.def.h @@ -95,31 +95,48 @@ 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", + /* gruvbox dark */ + "#282828", /* hard contrast: #1d2021 / soft contrast: #32302f / normal: #282828 */ + "#cc241d", + "#98971a", + "#d79921", + "#458588", + "#b16286", + "#689d6a", + "#a89984", + "#928374", + "#fb4934", + "#b8bb26", + "#fabd2f", + "#83a598", + "#d3869b", + "#8ec07c", + "#ebdbb2", [255] = 0, +}; - /* more colors can be added after 255 to use with DefaultXX */ - "#cccccc", - "#555555", +/* Terminal colors for alternate (light) palette */ +static const char *altcolorname[] = { + /* gruvbox light */ + "#fbf1c7", /* hard contrast: #f9f5d7 / soft contrast: #f2e5bc / normal: #fbf1c7 */ + "#cc241d", + "#98971a", + "#d79921", + "#458588", + "#b16286", + "#689d6a", + "#7c6f64", + "#928374", + "#9d0006", + "#79740e", + "#b57614", + "#076678", + "#8f3f71", + "#427b58", + "#3c3836", + + [255] = 0, }; @@ -127,10 +144,10 @@ static const char *colorname[] = { * Default colors (colorname index) * foreground, background, cursor, reverse cursor */ -unsigned int defaultfg = 7; +unsigned int defaultfg = 15; unsigned int defaultbg = 0; -static unsigned int defaultcs = 256; -static unsigned int defaultrcs = 257; +static unsigned int defaultcs = 15; +static unsigned int defaultrcs = 0; /* * Default shape of cursor @@ -199,6 +216,7 @@ static Shortcut shortcuts[] = { { TERMMOD, XK_Y, selpaste, {.i = 0} }, { ShiftMask, XK_Insert, selpaste, {.i = 0} }, { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, + { TERMMOD, XK_F6, swapcolors, {.i = 0} }, }; /* diff --git 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 @@ -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 int oldbutton = 3; /* button event on startup: 3 = release */ +int usealtcolors = 0; /* 1 to use alternate palette */ + void clipcopy(const Arg *dummy) { @@ -293,6 +296,14 @@ numlock(const Arg *dummy) } void +swapcolors(const Arg *dummy) +{ + usealtcolors = !usealtcolors; + xloadcols(); + redraw(); +} + +void zoom(const Arg *arg) { Arg larg; @@ -748,6 +759,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) { @@ -766,7 +782,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); @@ -783,14 +799,14 @@ xloadcols(void) for (cp = dc.col; cp < &dc.col[dc.collen]; ++cp) XftColorFree(xw.dpy, xw.vis, xw.cmap, cp); } else { - dc.collen = MAX(LEN(colorname), 256); + dc.collen = MAX(LEN(colorname), LEN(altcolorname)); dc.col = xmalloc(dc.collen * sizeof(Color)); } 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); } @@ -1169,13 +1185,13 @@ 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;