This escape sequence comes from  xterm and derivatives and allows
terminal to change cursor color.

In xterm it supported only #RRGGBB color format, but starting with rxvt
it allows to change the color using indexes from the color table.

We support only color indexes.

Use: echo -ne "\033]12;$COLOR_INDEX\007"
Where $COLOR_INDEX is index of color in colorname[]
---
 st.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/st.c b/st.c
index 8d4a9f2..1e9b92e 100644
--- a/st.c
+++ b/st.c
@@ -1897,6 +1897,20 @@ strhandle(void)
                                redraw();
                        }
                        return;
+               case 12:
+                       if (narg == 2)
+                       {
+                               int j = atoi(strescseq.args[1]);
+
+                               if (j >= 0 && j < sizeof(colorname))
+                               {
+                                       defaultcs = j;
+                                       redraw();
+                                       return;
+                               }
+                       }
+                       fprintf(stderr, "erresc: invalid OSC 12 use");
+                       return;
                }
                break;
        case 'k': /* old title set compatibility */
-- 
2.13.0


Reply via email to