Skip to main content
ansicode
Terminal

Konsole — ANSI escape code support

Konsole is the flagship terminal emulator of the KDE desktop, in continuous development since the very first KDE release in 1997 — one of the oldest still-shipping terminal codebases in the open-source world. It is built on its own VT engine (not libvte) maintained inside the KDE plasma-workspace repo; the engine traces its lineage to Lars Doelle's original 1997 implementation and has been incrementally rewritten by the Konsole maintainers (Robert Knight, Kurt Hindenburg, Tomaz Canabrava) over two decades.

For ANSI escape compatibility, Konsole is one of the broadest xterm-compatible terminals: full SGR (24-bit color, bold, italic, strikethrough), full cursor + erase + scroll, mouse modes, bracketed paste, alt-screen, OSC 8 hyperlinks (since 18.08, 2018), full SGR 4:1–4:5 styled underlines + SGR 58 underline color (since 21.04, 2021), AND DEC Sixel rendering (since KDE Plasma 6.0 / Konsole 24.02, Feb 2024). Konsole's distinctive escape extensions include the proprietary `OSC 50 ; SetProfile=…` for live profile switching from a child process — a feature that predates the modern push toward declarative theming and remains Konsole-exclusive.

Last updated

Feature support

How this terminal scores against the 15 features tracked in the site-wide support matrix. Click any feature name to see the full row across every terminal.

  • 8 basic colors (30–37 / 40–47)SGR 30–37 foreground, 40–47 background.
    yes
  • Bright (aixterm) colors (90–97 / 100–107)aixterm SGR extension.
    yes
  • 256-color palette (38;5;n / 48;5;n)xterm 256-color extension.
    yes
  • 24-bit truecolor (38;2;r;g;b)16.7M direct RGB. Set $COLORTERM=truecolor.
    yes
  • Italic (SGR 3)Italic text attribute.
    yes
  • Styled underlines (4:1–4:5)Curly/dotted/dashed underline styles.
    yes
  • Strikethrough (SGR 9)Horizontal line through text.
    yes
  • OSC 8 hyperlinksInline clickable URIs.
    yes
  • Alt screen (?1049h)Full-screen app buffer.
    yes
  • Mouse tracking (SGR ?1006)Mouse click/drag events.
    yes
  • Bracketed paste (?2004)Pasted text wrapped in ESC[200~/ESC[201~.
    yes
  • Focus events (?1004)ESC[I on focus in, ESC[O on focus out.
    yes
  • Sixel graphicsDEC sixel inline raster images.
    yes
  • Kitty graphics protocolPNG/RGB inline images, animations.
    yes
  • Synchronized output (?2026)Atomic frame updates to avoid tearing.
    yes

Sequences that work here

Canonical reference pages for the escape sequences this terminal handles cleanly. Each links to a full page with byte forms, citations, and per-language examples.

Quirks & version notes

Per-terminal caveats you'll want to know before relying on a sequence in production.

Sixel landed in KDE Plasma 6.0 / Konsole 24.02 (Feb 2024)
Konsole shipped DEC Sixel rendering in the 24.02 cycle alongside KDE Plasma 6.0. Apps emitting Sixel (chafa, timg, neofetch-image, IPython matplotlib display) render inline without modification. The DA1 reply (`CSI c`) advertises sixel (`4`). Enable via Settings ▸ Configure Konsole ▸ Profiles ▸ Edit ▸ Advanced ▸ Mode ▸ "Enable Sixel" (on by default for new profiles; existing profiles need the flag flipped once).
OSC 50 ; SetProfile=… — Konsole-exclusive live profile switch
Konsole supports `printf '\e]50;SetProfile=Profile_Name\a'` to switch the current tab's profile (color scheme, font, scrollback policy) at runtime from a shell or child program. No other emulator implements this exact OSC — most use Konsole-incompatible variants of OSC 50 for font-only changes. Use cases: switching to a dark profile when entering an SSH session, or to a red-tinted profile when su'ing to root. Detect via $KONSOLE_VERSION env (Konsole sets this automatically).
Tabbed window + split-view live since KDE 4.x — 4-pane grid built in
Konsole has shipped native tabs since KDE 4.0 (2008) and 2×2 split-view since KDE 4.4 (2010) — no tmux required for basic multi-pane workflows. Each pane is an independent shell process (not a tmux client), and splits inherit the parent profile. Splits respect bracketed paste and OSC 8 hyperlink boundaries per-pane. Detach a pane to its own tab with Ctrl+Shift+H.
Bell mode signals via KDE notification system, not just BEL
When a child process emits `\a` (BEL), Konsole's default behavior is to surface it through the system-wide KDE notification daemon (plasma-systemtray + KGlobalAccel), respecting user notification preferences. Other terminals typically just play an audio tone or flash the title bar. Configure under Settings ▸ Configure Konsole ▸ Profiles ▸ Edit ▸ Terminal Bell. Useful for triggering desktop notifications from long-running commands — e.g., `make && printf '\a'`.

Citations

Other terminals with landing pages