Re: [hackers] [st][patch] Implements OSC 11/12 for setting foreground/background colours

From: Raheman Vaiya <r.vaiya_AT_gmail.com>
Date: Sun, 10 Jan 2021 16:09:33 -0500

> Why is the default theme changed to black fg, white bg instead of the default
> grey fg, black bg? This change seems unrelated.

Sorry, this was an oversight. I have rectified in the attached patch. I also
used the wrong foreground escape sequence which I have adjusted.

> Theres a similar patch on the wiki it seems:
> https://st.suckless.org/patches/osc_10_11_12/st-osc_10_11_12-20200418-66520e1.diff

I was not aware of this patch, but it seems to keep defaultfg and
defaultbg set to
colours 0 and 7 which is non standard behaviour. It is possible for
the background
colour to be different from colour 0/7 in most other terminals. I think this is
sufficiently standard behaviour to warrant being upstreamed rather than applied
as a separate patch.

On Sun, Jan 10, 2021 at 3:51 PM Hiltjo Posthuma <hiltjo_AT_codemadness.org> wrote:
>
> On Sun, Jan 10, 2021 at 02:25:38PM -0500, Raheman Vaiya wrote:
> > The attached patch adds support for the OSC 11 and OSC 12 escape
> > sequences. These are used by many theme scripts (e.g
> > https://github.com/lemnos/theme.sh) and implemented by most other
> > terminal emulators. This is my first patch to a suckless project. Any
> > feedback would be appreciated :).
> >
>
> Hi,
>
> Some comments inline below.
>
> > Regards,
> > Raheman
>
> > From 07177328951a563a7407cb1921500791b92f37ec Mon Sep 17 00:00:00 2001
> > From: Raheman Vaiya <r.vaiya_AT_gmail.com>
> > Date: Sun, 10 Jan 2021 02:49:50 -0500
> > Subject: [PATCH] Implement OSC 11/12 for setting background and foreground
> > colours.
> >
> > ---
> > config.def.h | 7 +++++--
> > st.c | 20 ++++++++++++++++++++
> > 2 files changed, 25 insertions(+), 2 deletions(-)
> >
> > diff --git a/config.def.h b/config.def.h
> > index 6f05dce..fcdc6db 100644
> > --- a/config.def.h
> > +++ b/config.def.h
> > _AT_@ -120,6 +120,8 @@ static const char *colorname[] = {
> > /* more colors can be added after 255 to use with DefaultXX */
> > "#cccccc",
> > "#555555",
> > + "#000000",
> > + "#ffffff",
> > };
> >
> >
> > _AT_@ -127,8 +129,9 @@ static const char *colorname[] = {
> > * Default colors (colorname index)
> > * foreground, background, cursor, reverse cursor
> > */
> > -unsigned int defaultfg = 7;
> > -unsigned int defaultbg = 0;
> > +
> > +unsigned int defaultbg = 258;
> > +unsigned int defaultfg = 259;
> > static unsigned int defaultcs = 256;
> > static unsigned int defaultrcs = 257;
> >
>
> Why is the default theme changed to black fg, white bg instead of the default
> grey fg, black bg? This change seems unrelated.
>
> > diff --git a/st.c b/st.c
> > index abbbe4b..c0b8675 100644
> > --- a/st.c
> > +++ b/st.c
> > _AT_@ -1877,6 +1877,26 @@ strhandle(void)
> > }
> > }
> > return;
> > + case 11: /* set background color */
> > + if (narg < 2)
> > + break;
> > +
> > + p = strescseq.args[1];
> > + if (xsetcolorname(defaultbg, p))
> > + fprintf(stderr, "erresc: invalid background color %d\n", p);
> > + else
> > + redraw();
> > + break;
> > + case 12: /* set foreground color */
> > + if (narg < 2)
> > + break;
> > +
> > + p = strescseq.args[1];
> > + if (xsetcolorname(defaultfg, p))
> > + fprintf(stderr, "erresc: invalid foreground color %d\n", p);
> > + else
> > + redraw();
> > + break;
> > case 4: /* color set */
> > if (narg < 3)
> > break;
> > --
> > 2.20.1
> >
>
>
> Theres a similar patch on the wiki it seems:
> https://st.suckless.org/patches/osc_10_11_12/st-osc_10_11_12-20200418-66520e1.diff
>
> --
> Kind regards,
> Hiltjo
>

Received on Sun Jan 10 2021 - 22:09:33 CET

This archive was generated by hypermail 2.3.0 : Sun Jan 10 2021 - 22:12:38 CET