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

From: Hiltjo Posthuma <hiltjo_AT_codemadness.org>
Date: Sun, 10 Jan 2021 21:51:11 +0100

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 - 21:51:11 CET

This archive was generated by hypermail 2.3.0 : Sun Jan 10 2021 - 22:00:44 CET