diff --git a/st.c b/st.c index 9359a54..3f1fcd6 100644 --- a/st.c +++ b/st.c @@ -2451,21 +2451,35 @@ csihandle(void) goto unknown; } break; - #if SYNC_PATCH + #if SYNC_PATCH || SIXEL_PATCH case '$': /* DECRQM -- DEC Request Mode (private) */ if (csiescseq.mode[1] == 'p' && csiescseq.priv) { switch (csiescseq.arg[0]) { + #if SIXEL_PATCH + case 80: + /* Sixel Display Mode */ + ttywrite(IS_SET(MODE_SIXEL_SDM) ? "\033[?80;1$y" + : "\033[?80;2$y", 9, 0); + break; + case 8452: + /* Sixel scrolling leaves cursor to right of graphic */ + ttywrite(IS_SET(MODE_SIXEL_CUR_RT) ? "\033[?8452;1$y" + : "\033[?8452;2$y", 11, 0); + break; + #endif // SIXEL_PATCH + #if SYNC_PATCH case 2026: /* https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036 */ ttywrite(su ? "\033[?2026;1$y" : "\033[?2026;2$y", 11, 0); break; + #endif // SYNC_PATCH default: goto unknown; } break; } goto unknown; - #endif // SYNC_PATCH + #endif // SYNC_PATCH | SIXEL_PATCH case 'r': /* DECSTBM -- Set Scrolling Region */ if (csiescseq.priv) { goto unknown;