跳到主要内容
ansicode
终端

Konsole —— ANSI 转义码支持情况

Konsole 是 KDE 桌面的旗舰终端模拟器,自 1997 年 KDE 首版发布以来持续开发至今 —— 是开源世界中仍在维护的最古老终端代码库之一。它构建于自有的 VT 引擎(非 libvte)之上,由 KDE plasma-workspace 仓库维护;该引擎源自 Lars Doelle 1997 年的原始实现,由 Konsole 维护者(Robert Knight、Kurt Hindenburg、Tomaz Canabrava)二十多年来逐步重写。

ANSI 转义码兼容性方面,Konsole 属于 xterm 兼容性最广的终端之一:完整 SGR(24 位色、加粗、斜体、删除线)、完整光标 + 擦除 + 滚动、鼠标模式、括号粘贴、备用屏幕、OSC 8 超链接(自 18.08,2018 年)、完整 SGR 4:1–4:5 扩展下划线 + SGR 58 下划线着色(自 21.04,2021 年),以及 DEC Sixel 渲染(自 KDE Plasma 6.0 / Konsole 24.02,2024 年 2 月)。Konsole 标志性的转义扩展包括专有的 `OSC 50 ; SetProfile=…` —— 允许子进程从命令行触发实时切换 profile,该功能领先于现代声明式主题方案,至今仍是 Konsole 独有。

最近更新

特性支持情况

该终端在站点统一矩阵跟踪的 15 个特性上的表现。点击任意特性名可查看其在全部终端上的完整支持情况。

  • 8 种基础色(30–37 / 40–47)SGR 30–37 前景,40–47 背景。
    支持
  • 高亮(aixterm)色(90–97 / 100–107)aixterm SGR 扩展。
    支持
  • 256 色调色板(38;5;n / 48;5;n)xterm 256 色扩展。
    支持
  • 24 位真彩色(38;2;r;g;b)1670 万直接 RGB。设置 $COLORTERM=truecolor。
    支持
  • 斜体(SGR 3)斜体文本属性。
    支持
  • 扩展下划线(4:1–4:5)波浪/点/虚下划线样式。
    支持
  • 删除线(SGR 9)文本中央的水平线。
    支持
  • OSC 8 超链接内联可点击 URI。
    支持
  • 备用屏幕(?1049h)全屏应用缓冲区。
    支持
  • 鼠标跟踪(SGR ?1006)鼠标点击/拖拽事件。
    支持
  • 括号粘贴(?2004)粘贴文本被 ESC[200~/ESC[201~ 包裹。
    支持
  • 焦点事件(?1004)获得焦点时 ESC[I,失去时 ESC[O。
    支持
  • Sixel 图形DEC sixel 内联位图。
    支持
  • Kitty 图形协议PNG/RGB 内联图像和动画。
    支持
  • 同步输出(?2026)原子化帧更新,避免撕裂。
    支持

在此终端可用的序列

该终端能完整处理的转义序列对应的权威参考页。每条均链接到完整页面,含字节形式、规范出处与多语言示例。

细节与版本说明

在生产中使用某序列前应知晓的、该终端特有的注意事项。

Sixel 自 KDE Plasma 6.0 / Konsole 24.02(2024 年 2 月)起支持
Konsole 在 24.02 周期与 KDE Plasma 6.0 同步发布 DEC Sixel 渲染。发送 Sixel 的程序(chafa、timg、neofetch-image、IPython 中的 matplotlib 显示)无需改动即可内联渲染。DA1 应答(`CSI c`)声明 sixel(`4`)。可通过 设置 ▸ 配置 Konsole ▸ 配置文件 ▸ 编辑 ▸ 高级 ▸ 模式 ▸ "启用 Sixel" 启用(新建配置文件默认开启;老配置文件需手动切换一次)。
OSC 50 ; SetProfile=… —— Konsole 独有的实时配置文件切换
Konsole 支持 `printf '\e]50;SetProfile=Profile_Name\a'` 从 shell 或子程序在运行时切换当前标签的配置文件(配色方案、字体、滚屏策略)。其他终端均未实现完全相同的 OSC —— 多数终端使用 Konsole 不兼容的 OSC 50 变体仅用于字体更改。典型用法:进入 SSH 会话时切到深色配置,su 至 root 时切到红色提示配置。可通过 $KONSOLE_VERSION 环境变量检测(Konsole 自动设置)。
标签 + 分屏自 KDE 4.x 起原生支持 —— 内置 4 分屏网格
Konsole 自 KDE 4.0(2008 年)起原生支持标签页,自 KDE 4.4(2010 年)起支持 2×2 分屏 —— 基础多面板工作流无需 tmux。每个面板都是独立 shell 进程(而非 tmux 客户端),分屏继承父配置文件。括号粘贴与 OSC 8 超链接的边界在各面板独立保留。可使用 Ctrl+Shift+H 将面板分离为新标签。
响铃模式经由 KDE 通知系统而非仅 BEL
当子进程发出 `\a`(BEL)时,Konsole 的默认行为是通过系统级 KDE 通知守护进程(plasma-systemtray + KGlobalAccel)呈现该响铃,并遵循用户的通知偏好。其他终端通常仅播放音效或闪烁标题栏。可在 设置 ▸ 配置 Konsole ▸ 配置文件 ▸ 编辑 ▸ 终端响铃 中配置。该机制非常适合从长时间运行的命令触发桌面通知 —— 例如 `make && printf '\a'`。

参考资料

其他已有专页的终端