kovidgoyal/kitty · info
Application escape mode is not supported, the extended keybo
Error message
Application escape mode is not supported, the extended keyboard protocol should be used instead
What it means
An application set DEC private mode 7727 (Application Escape mode), which kitty does not support; the mode is ignored and kitty advises using the kitty keyboard protocol instead. Purely informational.
Source
Thrown at kitty/screen.c:2032
case DECAWM: self->modes.mDECAWM = val; break;
case DECCOLM:
self->modes.mDECCOLM = val;
if (val) {
// When DECCOLM mode is set, the screen is erased and the cursor
// moves to the home position.
screen_erase_in_display(self, 2, false);
screen_cursor_position(self, 1, 1);
}
break;
case CONTROL_CURSOR_BLINK: self->cursor->non_blinking = !val; break;
case SAVE_CURSOR: screen_save_cursor(self); break;
case TOGGLE_ALT_SCREEN_1:
case TOGGLE_ALT_SCREEN_2:
case ALTERNATE_SCREEN:
if (val && self->linebuf == self->main_linebuf) screen_toggle_screen_buffer(self, mode == ALTERNATE_SCREEN, mode == ALTERNATE_SCREEN);
else if (!val && self->linebuf != self->main_linebuf) screen_toggle_screen_buffer(self, mode == ALTERNATE_SCREEN, mode == ALTERNATE_SCREEN);
break;
case 7727 << 5: log_error("Application escape mode is not supported, the extended keyboard protocol should be used instead"); break;
case PENDING_MODE << 5:
if (!screen_pause_rendering(self, val, 0)) {
log_error("Pending mode change to already current mode (%d) requested. Either pending mode expired or there is an application bug.", val);
}
break;
case INBAND_RESIZE_NOTIFICATION:
self->modes.mINBAND_RESIZE_NOTIFICATION = val;
if (val) CALLBACK("notify_child_of_resize", NULL);
break;
case VISIBILITY_REPORTS:
self->modes.mVISIBILITY_REPORTS = val;
if (val) send_visibility_report(self);
break;
default:
private = mode >= 1 << 5;
if (private) mode >>= 5;
log_error("%s %s %u %s", ERROR_PREFIX, "Unsupported screen mode: ", mode, private ? "(private)" : "");
}View on GitHub (pinned to 6d5d0c4406)
Solutions
- No action needed - the mode is ignored and nothing breaks
- Configure the app to use the kitty keyboard protocol instead of mode 7727
- Filter the log message if noisy
Defensive patterns
Strategy: validation
Validate before calling
# in your TUI app, query for the kitty keyboard protocol (CSI ? u) and use it instead of enabling mode 7727
Prevention
- Adopt the kitty keyboard protocol instead of application escape mode
When it happens
Trigger: A terminal program emits CSI ? 7727 h to enable application escape mode.
Common situations: Older or misconfigured TUI apps enabling obscure xterm-compatible modes; harmless.
Related errors
- This terminal does not support the kitty keyboard protocol,
- Pending mode change to already current mode (%d) requested.
- %s %s %u %s
- The application is trying to use xterm's modifyOtherKeys. Th
- This must be run as kitten ask
AI-assisted analysis of kovidgoyal/kitty@6d5d0c4406 (2026-08-27).
Data as JSON: /api/errors/c6389075e685431d.
Report an issue: GitHub.