From 07177328951a563a7407cb1921500791b92f37ec Mon Sep 17 00:00:00 2001 From: Raheman Vaiya 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 @@ -120,6 +120,8 @@ static const char *colorname[] = { /* more colors can be added after 255 to use with DefaultXX */ "#cccccc", "#555555", + "#000000", + "#ffffff", }; @@ -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; diff --git a/st.c b/st.c index abbbe4b..c0b8675 100644 --- a/st.c +++ b/st.c @@ -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