sites

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

commit 595a518a74daac31b2bb958f974418dee85f511c
parent ac06e67e08d9c19bf8dd23faacf6d09b5619c944
Author: Ashish Kumar Yadav <ashishkumar.yadav@students.iiserpune.ac.in>
Date:   Sat, 31 Jul 2021 22:26:40 +0530

[st][patch][selectioncolors] Fixed bugs in and improved styling of 0.8.4 patch

Diffstat:
Mst.suckless.org/patches/selectioncolors/st-selectioncolors-0.8.4.diff | 78+++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 53 insertions(+), 25 deletions(-)

diff --git a/st.suckless.org/patches/selectioncolors/st-selectioncolors-0.8.4.diff b/st.suckless.org/patches/selectioncolors/st-selectioncolors-0.8.4.diff @@ -1,7 +1,28 @@ -diff -up st-0.8.4-ori/config.def.h st-0.8.4/config.def.h ---- st-0.8.4-ori/config.def.h 2020-06-19 14:59:45.000000000 +0530 -+++ st-0.8.4/config.def.h 2020-07-20 19:39:32.310996650 +0530 -@@ -119,7 +119,7 @@ static const char *colorname[] = { +From 0750c0b8c91579ec871c70c8990527bebc86a56e Mon Sep 17 00:00:00 2001 +From: Ashish Kumar Yadav <ashishkumar.yadav@students.iiserpune.ac.in> +Date: Sat, 31 Jul 2021 22:21:11 +0530 +Subject: [PATCH] Add settings for selection-colors + +This patch adds the two color-settings *selectionfg* and *selectionbg* to +config.def.h. Those define the fore- and background colors which are used when +text on the screen is selected with the mouse. This removes the default +behaviour which would simply reverse the colors. + +Additionally, a third setting *ingnoreselfg* exists. If true then the setting +*selectionfg* is ignored and the original foreground-colors of each cell are +not changed during selection. Basically only the background-color would change. +This might be more visually appealing to some folks. +--- + config.def.h | 11 ++++++++--- + st.h | 1 + + x.c | 30 +++++++++++++----------------- + 3 files changed, 22 insertions(+), 20 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 6f05dce..3679af8 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -119,18 +119,23 @@ static const char *colorname[] = { /* more colors can be added after 255 to use with DefaultXX */ "#cccccc", @@ -10,14 +31,16 @@ diff -up st-0.8.4-ori/config.def.h st-0.8.4/config.def.h }; -@@ -130,7 +130,14 @@ static const char *colorname[] = { + /* + * Default colors (colorname index) +- * foreground, background, cursor, reverse cursor ++ * foreground, background, cursor, reverse cursor, selection + */ unsigned int defaultfg = 7; unsigned int defaultbg = 0; static unsigned int defaultcs = 256; -static unsigned int defaultrcs = 257; +static unsigned int defaultrcs = 256; -+ -+/* Colors used for selection */ +unsigned int selectionbg = 257; +unsigned int selectionfg = 7; +/* If 0 use selectionfg as foreground in order to have a uniform foreground-color */ @@ -26,21 +49,23 @@ diff -up st-0.8.4-ori/config.def.h st-0.8.4/config.def.h /* * Default shape of cursor -diff -up st-0.8.4-ori/st.h st-0.8.4/st.h ---- st-0.8.4-ori/st.h 2020-06-19 14:59:45.000000000 +0530 -+++ st-0.8.4/st.h 2020-07-20 19:39:32.310996650 +0530 +diff --git a/st.h b/st.h +index 3d351b6..e1a28c3 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_SELECTED = 1 << 11, ++ ATTR_SELECTED = 1 << 11, ATTR_BOLD_FAINT = ATTR_BOLD | ATTR_FAINT, }; -diff -up st-0.8.4-ori/x.c st-0.8.4/x.c ---- st-0.8.4-ori/x.c 2020-06-19 14:59:45.000000000 +0530 -+++ st-0.8.4/x.c 2020-07-20 19:46:23.081759264 +0530 -@@ -1425,6 +1425,12 @@ xdrawglyphfontspecs(const XftGlyphFontSp +diff --git a/x.c b/x.c +index 210f184..7a6c70e 100644 +--- a/x.c ++++ b/x.c +@@ -1425,6 +1425,12 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i bg = temp; } @@ -53,20 +78,20 @@ diff -up st-0.8.4-ori/x.c st-0.8.4/x.c if (base.mode & ATTR_BLINK && win.mode & MODE_BLINK) fg = bg; -@@ -1491,7 +1497,7 @@ xdrawcursor(int cx, int cy, Glyph g, int +@@ -1491,7 +1497,7 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og) /* remove the old cursor */ if (selected(ox, oy)) - og.mode ^= ATTR_REVERSE; -+ og.mode ^= ATTR_SELECTED; ++ og.mode |= ATTR_SELECTED; xdrawglyph(og, ox, oy); if (IS_SET(MODE_HIDE)) -@@ -1504,23 +1510,13 @@ xdrawcursor(int cx, int cy, Glyph g, int +@@ -1504,23 +1510,13 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og) if (IS_SET(MODE_REVERSE)) { g.mode |= ATTR_REVERSE; -+ g.fg = defaultcs; ++ g.fg = defaultcs; g.bg = defaultfg; - if (selected(cx, cy)) { - drawcol = dc.col[defaultcs]; @@ -75,7 +100,7 @@ diff -up st-0.8.4-ori/x.c st-0.8.4/x.c - drawcol = dc.col[defaultrcs]; - g.fg = defaultcs; - } -+ drawcol = dc.col[defaultrcs]; ++ drawcol = dc.col[defaultrcs]; } else { - if (selected(cx, cy)) { - g.fg = defaultfg; @@ -85,18 +110,21 @@ diff -up st-0.8.4-ori/x.c st-0.8.4/x.c - g.bg = defaultcs; - } - drawcol = dc.col[g.bg]; -+ g.fg = defaultbg; -+ g.bg = defaultcs; -+ drawcol = dc.col[defaultcs]; ++ g.fg = defaultbg; ++ g.bg = defaultcs; ++ drawcol = dc.col[defaultcs]; } /* draw the new one */ -@@ -1612,7 +1608,7 @@ xdrawline(Line line, int x1, int y1, int +@@ -1612,7 +1608,7 @@ xdrawline(Line line, int x1, int y1, int x2) if (new.mode == ATTR_WDUMMY) continue; if (selected(x, y1)) - new.mode ^= ATTR_REVERSE; -+ new.mode ^= ATTR_SELECTED; ++ new.mode |= ATTR_SELECTED; if (i > 0 && ATTRCMP(base, new)) { xdrawglyphfontspecs(specs, base, i, ox, y1); specs += i; +-- +2.32.0 +