diff --git a/CHANGELOG.md b/CHANGELOG.md index 303fad2e..c1920c89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,8 @@ * Translation of cursor coordinates on resize * Scaling of legacy formatted color specifiers in OSC sequences. * `OSC 12 ?` to return the cursor color, not the cursor's text color. +* `OSC 12;#000000` to configure the cursor to use inverted + foreground/background colors. ### Security diff --git a/osc.c b/osc.c index 1946f052..e40ee6a3 100644 --- a/osc.c +++ b/osc.c @@ -541,7 +541,10 @@ osc_dispatch(struct terminal *term) LOG_INFO("change cursor color to %06x", color); - term->cursor_color.cursor = 1 << 31 | color; + if (color == 0) + term->cursor_color.cursor = 0; /* Invert fg/bg */ + else + term->cursor_color.cursor = 1u << 31 | color; render_refresh(term); break;