[dev] [st] [PATCH v2] Implement OSC 12 (change text cursor color)

From: Arkadiusz Hiler <arkadiusz_AT_hiler.pl>
Date: Sun, 4 Jun 2017 20:02:40 +0300

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..072ec9b 100644
--- a/st.c
+++ b/st.c
_AT_@ -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) / sizeof(*colorname))
+				{
+					defaultcs = j;
+					redraw();
+					return;
+				}
+			}
+			fprintf(stderr, "erresc: invalid OSC 12 use\n");
+			return;
 		}
 		break;
 	case 'k': /* old title set compatibility */
-- 
2.13.0
Received on Sun Jun 04 2017 - 19:02:40 CEST

This archive was generated by hypermail 2.3.0 : Sun Jun 04 2017 - 19:12:16 CEST