{
  "name": "Linux terminal emulator feature support",
  "description": "What nine Linux terminal emulators do with modern escape codes on their factory settings, on Ubuntu 25.10: colour, text styles, underlines, emoji, images and protocol support.",
  "url": "https://terminal.ninja/tools/linux-terminal-feature-support/",
  "updated": "2026-10-03T13:17:31+00:00",
  "licence": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "terminal ninja, https://terminal.ninja/tools/linux-terminal-feature-support/"
  },
  "results": {
    "yes": "Works.",
    "no": "Doesn't.",
    "partial": "Sort of works; the note says how.",
    "noreply": "The terminal didn't answer the query. Usually, but not always, a lack of support.",
    "pending": "Not checked yet."
  },
  "methods": {
    "screenshot": "Judged from a screenshot of a test pattern, and confirmed by a person.",
    "query": "The terminal's own reply when asked, recorded verbatim in `reply`.",
    "clipboard": "Text written to the clipboard with OSC 52, then read back with wl-paste.",
    "hover": "The pointer moved over an OSC 8 link and over identical plain text, with and without Ctrl held: supported if the window changes over the link and not over the text."
  },
  "terminals": {
    "alacritty": {
      "name": "Alacritty",
      "version": "0.17.0",
      "os": "Ubuntu 25.10",
      "queried_at": "2026-10-03T13:16:23+00:00",
      "screenshot_taken_at": "2026-10-03T13:12:55+00:00",
      "hovered_at": "2026-10-03T13:13:49+00:00"
    },
    "foot": {
      "name": "foot",
      "version": "1.21.0",
      "os": "Ubuntu 25.10",
      "queried_at": "2026-10-03T13:16:28+00:00",
      "screenshot_taken_at": "2026-10-03T13:12:59+00:00",
      "hovered_at": "2026-10-03T13:14:04+00:00"
    },
    "ghostty": {
      "name": "Ghostty",
      "version": "1.3.1",
      "os": "Ubuntu 25.10",
      "queried_at": "2026-10-03T13:16:33+00:00",
      "screenshot_taken_at": "2026-10-03T13:13:05+00:00",
      "hovered_at": "2026-10-03T13:14:18+00:00"
    },
    "gnome-terminal": {
      "name": "GNOME Terminal",
      "version": "3.56.2, VTE 0.80.3",
      "os": "Ubuntu 25.10",
      "queried_at": "2026-10-03T13:16:37+00:00",
      "screenshot_taken_at": "2026-10-03T13:13:09+00:00",
      "hovered_at": "2026-10-03T13:14:33+00:00"
    },
    "kitty": {
      "name": "kitty",
      "version": "0.49.2",
      "os": "Ubuntu 25.10",
      "queried_at": "2026-10-03T13:16:44+00:00",
      "screenshot_taken_at": "2026-10-03T13:17:16+00:00",
      "hovered_at": "2026-10-03T13:17:31+00:00"
    },
    "konsole": {
      "name": "Konsole",
      "version": "25.08.1",
      "os": "Ubuntu 25.10",
      "queried_at": "2026-10-03T13:16:48+00:00",
      "screenshot_taken_at": "2026-10-03T13:13:19+00:00",
      "hovered_at": "2026-10-03T13:15:01+00:00"
    },
    "ptyxis": {
      "name": "Ptyxis",
      "version": "49.1, VTE 0.80.3",
      "os": "Ubuntu 25.10",
      "queried_at": "2026-10-03T13:16:53+00:00",
      "screenshot_taken_at": "2026-10-03T13:13:26+00:00",
      "hovered_at": "2026-10-03T13:15:29+00:00"
    },
    "wezterm": {
      "name": "WezTerm",
      "version": "20260929-043349-cab25161",
      "os": "Ubuntu 25.10",
      "queried_at": "2026-10-03T13:17:00+00:00",
      "screenshot_taken_at": "2026-10-03T13:13:31+00:00",
      "hovered_at": "2026-10-03T13:15:43+00:00"
    },
    "xterm": {
      "name": "xterm",
      "version": "402",
      "os": "Ubuntu 25.10",
      "queried_at": "2026-10-03T13:17:05+00:00",
      "screenshot_taken_at": "2026-10-03T13:13:35+00:00",
      "hovered_at": "2026-10-03T13:15:55+00:00"
    }
  },
  "features": [
    {
      "id": "truecolor",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#truecolor",
      "section": "Colour",
      "label": "24-bit colour (truecolor)",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "yes"
        }
      }
    },
    {
      "id": "italic",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#italic",
      "section": "Text styles",
      "label": "Italic",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "yes"
        }
      }
    },
    {
      "id": "bold-italic",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#bold-italic",
      "section": "Text styles",
      "label": "Bold and italic together",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no",
          "note": "Slanted, but not bold."
        }
      }
    },
    {
      "id": "dim",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#dim",
      "section": "Text styles",
      "label": "Dim",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "no",
          "note": "Drawn exactly like plain text on the default black-on-white theme. Ptyxis, with the same VTE and a dark theme, dims visibly."
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "partial",
          "note": "Fainter, but only just: #EFF0F1 against the plain text's #FCFCFC."
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "strikethrough",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#strikethrough",
      "section": "Text styles",
      "label": "Strikethrough",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "yes"
        }
      }
    },
    {
      "id": "overline",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#overline",
      "section": "Text styles",
      "label": "Overline",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "no"
        },
        "foot": {
          "result": "no"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "no"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "underline-single",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#underline-single",
      "section": "Underlines",
      "label": "Single",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no",
          "note": "Ignores the colon form of the code used here (4:1); the ordinary ESC[4m does underline."
        }
      }
    },
    {
      "id": "underline-double",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#underline-double",
      "section": "Underlines",
      "label": "Double",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no",
          "note": "Ignores the colon form of the underline codes used here (4:2, 58:2 and so on), so nothing is underlined."
        }
      }
    },
    {
      "id": "undercurl",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#undercurl",
      "section": "Underlines",
      "label": "Curly (undercurl)",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no",
          "note": "Ignores the colon form of the underline codes used here (4:2, 58:2 and so on), so nothing is underlined."
        }
      }
    },
    {
      "id": "underline-dotted",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#underline-dotted",
      "section": "Underlines",
      "label": "Dotted",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no",
          "note": "Ignores the colon form of the underline codes used here (4:2, 58:2 and so on), so nothing is underlined."
        }
      }
    },
    {
      "id": "underline-dashed",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#underline-dashed",
      "section": "Underlines",
      "label": "Dashed",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no",
          "note": "Ignores the colon form of the underline codes used here (4:2, 58:2 and so on), so nothing is underlined."
        }
      }
    },
    {
      "id": "underline-colour",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#underline-colour",
      "section": "Underlines",
      "label": "Coloured underline",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no",
          "note": "Ignores the colon form of the underline codes used here (4:2, 58:2 and so on), so nothing is underlined."
        }
      }
    },
    {
      "id": "emoji",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#emoji",
      "section": "Characters",
      "label": "Emoji",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "partial",
          "note": "Drawn as a black-and-white outline from a text font, not as a colour emoji."
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "emoji-skin-tone",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#emoji-skin-tone",
      "section": "Characters",
      "label": "Emoji skin tones",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "no",
          "note": "Draws the thumb and the skin-tone swatch separately."
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "no",
          "note": "Draws the thumb and the skin-tone swatch separately."
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "no",
          "note": "Draws the thumb and the skin-tone swatch separately."
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "emoji-flag",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#emoji-flag",
      "section": "Characters",
      "label": "Flag emoji",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "no",
          "note": "Shows the two regional-indicator letters instead of a flag."
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "no",
          "note": "Shows the two regional-indicator letters instead of a flag."
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "no",
          "note": "Shows the two regional-indicator letters instead of a flag."
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "emoji-zwj",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#emoji-zwj",
      "section": "Characters",
      "label": "Combined emoji (family)",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "no",
          "note": "Draws the three people separately, three times the width."
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "no",
          "note": "Draws the three people separately, three times the width."
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "no",
          "note": "Draws the three people separately, three times the width."
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "cjk-width",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#cjk-width",
      "section": "Characters",
      "label": "Double-width CJK",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "yes"
        }
      }
    },
    {
      "id": "box-drawing",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#box-drawing",
      "section": "Characters",
      "label": "Box drawing and blocks",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "yes"
        }
      }
    },
    {
      "id": "ligatures",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#ligatures",
      "section": "Characters",
      "label": "Ligatures, default font",
      "method": "screenshot",
      "note": "Depends on the font the terminal ships with as much as on the terminal: any terminal here can be given a font that has them.",
      "results": {
        "alacritty": {
          "result": "no"
        },
        "foot": {
          "result": "no"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "no"
        },
        "kitty": {
          "result": "no"
        },
        "konsole": {
          "result": "no"
        },
        "ptyxis": {
          "result": "no"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "nerd-font",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#nerd-font",
      "section": "Characters",
      "label": "Nerd Font icons, default font",
      "method": "screenshot",
      "note": "Depends on the font the terminal ships with as much as on the terminal: any terminal here can be given a font that has them.",
      "results": {
        "alacritty": {
          "result": "partial",
          "note": "Draws powerline arrows itself, and finds the GitHub and Apple logos in an installed font; the other icons are boxes."
        },
        "foot": {
          "result": "partial",
          "note": "Finds the GitHub and Apple logos in an installed font; the other icons are boxes."
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "partial",
          "note": "Finds the GitHub and Apple logos in an installed font; the other icons are boxes."
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "partial",
          "note": "Finds the GitHub and Apple logos in an installed font; the other icons are boxes."
        },
        "ptyxis": {
          "result": "partial",
          "note": "Finds the GitHub and Apple logos in an installed font; the other icons are boxes."
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "sixel",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#sixel",
      "section": "Images",
      "label": "Sixel",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "no"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "no"
        },
        "gnome-terminal": {
          "result": "no"
        },
        "kitty": {
          "result": "no"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "no"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no",
          "note": "Built in, but off unless xterm is told to emulate a VT340: xterm -ti 340."
        }
      }
    },
    {
      "id": "kitty-graphics",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#kitty-graphics",
      "section": "Images",
      "label": "kitty graphics protocol",
      "method": "screenshot",
      "results": {
        "alacritty": {
          "result": "no"
        },
        "foot": {
          "result": "no"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "no"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "no"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "hyperlinks",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#hyperlinks",
      "section": "Hyperlinks and clipboard",
      "label": "Hyperlinks (OSC 8)",
      "method": "hover",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes",
          "note": "Not on hover: links are highlighted only in URL mode, Ctrl+Shift+O."
        },
        "ghostty": {
          "result": "yes",
          "note": "Shown only while Ctrl is held."
        },
        "gnome-terminal": {
          "result": "yes"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "no",
          "note": "Off by default: the profile setting Allow escape sequences for links turns it on."
        },
        "ptyxis": {
          "result": "yes"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no"
        }
      }
    },
    {
      "id": "clipboard-write",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#clipboard-write",
      "section": "Hyperlinks and clipboard",
      "label": "Copy to clipboard (OSC 52)",
      "method": "clipboard",
      "results": {
        "alacritty": {
          "result": "yes"
        },
        "foot": {
          "result": "yes"
        },
        "ghostty": {
          "result": "yes"
        },
        "gnome-terminal": {
          "result": "no"
        },
        "kitty": {
          "result": "yes"
        },
        "konsole": {
          "result": "yes"
        },
        "ptyxis": {
          "result": "no"
        },
        "wezterm": {
          "result": "yes"
        },
        "xterm": {
          "result": "no",
          "note": "Off by default: the allowWindowOps resource turns it on."
        }
      }
    },
    {
      "id": "kitty-keyboard",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#kitty-keyboard",
      "section": "Protocols (the terminal's own answer)",
      "label": "kitty keyboard protocol",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "yes",
          "reply": "\u001b[?0u"
        },
        "foot": {
          "result": "yes",
          "reply": "\u001b[?0u"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b[?0u"
        },
        "gnome-terminal": {
          "result": "noreply",
          "reply": null
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001b[?0u"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "noreply",
          "reply": null
        },
        "wezterm": {
          "result": "noreply",
          "note": "Off by default; enable_kitty_keyboard = true turns it on.",
          "reply": null
        },
        "xterm": {
          "result": "noreply",
          "reply": null
        }
      }
    },
    {
      "id": "synchronized-output",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#synchronized-output",
      "section": "Protocols (the terminal's own answer)",
      "label": "Synchronised output (mode 2026)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "yes",
          "reply": "\u001b[?2026;2$y"
        },
        "foot": {
          "result": "yes",
          "reply": "\u001b[?2026;2$y"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b[?2026;2$y"
        },
        "gnome-terminal": {
          "result": "no",
          "reply": "\u001b[?2026;4$y"
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001b[?2026;2$y"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "no",
          "reply": "\u001b[?2026;4$y"
        },
        "wezterm": {
          "result": "yes",
          "reply": "\u001b[?2026;2$y"
        },
        "xterm": {
          "result": "no",
          "reply": "\u001b[?2026;0$y"
        }
      }
    },
    {
      "id": "bracketed-paste",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#bracketed-paste",
      "section": "Protocols (the terminal's own answer)",
      "label": "Bracketed paste (mode 2004)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "yes",
          "reply": "\u001b[?2004;2$y"
        },
        "foot": {
          "result": "yes",
          "reply": "\u001b[?2004;2$y"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b[?2004;2$y"
        },
        "gnome-terminal": {
          "result": "yes",
          "reply": "\u001b[?2004;2$y"
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001b[?2004;2$y"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "yes",
          "reply": "\u001b[?2004;2$y"
        },
        "wezterm": {
          "result": "yes",
          "reply": "\u001b[?2004;2$y"
        },
        "xterm": {
          "result": "yes",
          "reply": "\u001b[?2004;2$y"
        }
      }
    },
    {
      "id": "focus-events",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#focus-events",
      "section": "Protocols (the terminal's own answer)",
      "label": "Focus events (mode 1004)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "yes",
          "reply": "\u001b[?1004;2$y"
        },
        "foot": {
          "result": "yes",
          "reply": "\u001b[?1004;2$y"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b[?1004;2$y"
        },
        "gnome-terminal": {
          "result": "yes",
          "reply": "\u001b[?1004;2$y"
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001b[?1004;2$y"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "yes",
          "reply": "\u001b[?1004;2$y"
        },
        "wezterm": {
          "result": "yes",
          "reply": "\u001b[?1004;2$y"
        },
        "xterm": {
          "result": "yes",
          "reply": "\u001b[?1004;2$y"
        }
      }
    },
    {
      "id": "sgr-mouse",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#sgr-mouse",
      "section": "Protocols (the terminal's own answer)",
      "label": "SGR mouse reporting (mode 1006)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "yes",
          "reply": "\u001b[?1006;2$y"
        },
        "foot": {
          "result": "yes",
          "reply": "\u001b[?1006;2$y"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b[?1006;2$y"
        },
        "gnome-terminal": {
          "result": "yes",
          "reply": "\u001b[?1006;2$y"
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001b[?1006;2$y"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "yes",
          "reply": "\u001b[?1006;2$y"
        },
        "wezterm": {
          "result": "yes",
          "reply": "\u001b[?1006;2$y"
        },
        "xterm": {
          "result": "yes",
          "reply": "\u001b[?1006;2$y"
        }
      }
    },
    {
      "id": "grapheme-clusters",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#grapheme-clusters",
      "section": "Protocols (the terminal's own answer)",
      "label": "Grapheme clustering (mode 2027)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "no",
          "reply": "\u001b[?2027;0$y"
        },
        "foot": {
          "result": "yes",
          "reply": "\u001b[?2027;1$y"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b[?2027;1$y"
        },
        "gnome-terminal": {
          "result": "no",
          "reply": "\u001b[?2027;0$y"
        },
        "kitty": {
          "result": "no",
          "reply": "\u001b[?2027;0$y"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "no",
          "reply": "\u001b[?2027;0$y"
        },
        "wezterm": {
          "result": "yes",
          "reply": "\u001b[?2027;3$y"
        },
        "xterm": {
          "result": "no",
          "reply": "\u001b[?2027;0$y"
        }
      }
    },
    {
      "id": "colour-scheme-query",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#colour-scheme-query",
      "section": "Protocols (the terminal's own answer)",
      "label": "Light/dark mode query",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "noreply",
          "reply": null
        },
        "foot": {
          "result": "noreply",
          "reply": null
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b[?997;2n"
        },
        "gnome-terminal": {
          "result": "noreply",
          "reply": null
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001b[?997;1n"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "noreply",
          "reply": null
        },
        "wezterm": {
          "result": "noreply",
          "reply": null
        },
        "xterm": {
          "result": "noreply",
          "reply": null
        }
      }
    },
    {
      "id": "colour-scheme-updates",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#colour-scheme-updates",
      "section": "Protocols (the terminal's own answer)",
      "label": "Light/dark change notices (mode 2031)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "no",
          "reply": "\u001b[?2031;0$y"
        },
        "foot": {
          "result": "no",
          "reply": "\u001b[?2031;0$y"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b[?2031;2$y"
        },
        "gnome-terminal": {
          "result": "no",
          "reply": "\u001b[?2031;0$y"
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001b[?2031;2$y"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "no",
          "reply": "\u001b[?2031;0$y"
        },
        "wezterm": {
          "result": "no",
          "reply": "\u001b[?2031;0$y"
        },
        "xterm": {
          "result": "no",
          "reply": "\u001b[?2031;0$y"
        }
      }
    },
    {
      "id": "in-band-resize",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#in-band-resize",
      "section": "Protocols (the terminal's own answer)",
      "label": "In-band resize (mode 2048)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "no",
          "reply": "\u001b[?2048;0$y"
        },
        "foot": {
          "result": "yes",
          "reply": "\u001b[?2048;2$y"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b[?2048;2$y"
        },
        "gnome-terminal": {
          "result": "no",
          "reply": "\u001b[?2048;4$y"
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001b[?2048;2$y"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "no",
          "reply": "\u001b[?2048;4$y"
        },
        "wezterm": {
          "result": "no",
          "reply": "\u001b[?2048;0$y"
        },
        "xterm": {
          "result": "no",
          "reply": "\u001b[?2048;0$y"
        }
      }
    },
    {
      "id": "colour-queries",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#colour-queries",
      "section": "Protocols (the terminal's own answer)",
      "label": "Colour queries (OSC 10/11)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "yes",
          "reply": "\u001b]11;rgb:1818/1818/1818\u001b\\"
        },
        "foot": {
          "result": "yes",
          "reply": "\u001b]11;rgb:2424/2424/2424\u001b\\"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001b]11;rgb:2828/2c2c/3434\u001b\\"
        },
        "gnome-terminal": {
          "result": "yes",
          "reply": "\u001b]11;rgb:ffff/ffff/ffff\u001b\\"
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001b]11;rgb:0000/0000/0000\u001b\\"
        },
        "konsole": {
          "result": "yes",
          "reply": "\u001b]11;rgb:2323/2626/2727\u001b\\"
        },
        "ptyxis": {
          "result": "yes",
          "reply": "\u001b]11;rgb:3030/0a0a/2424\u001b\\"
        },
        "wezterm": {
          "result": "yes",
          "reply": "\u001b]11;rgb:0000/0000/0000\u001b\\"
        },
        "xterm": {
          "result": "yes",
          "reply": "\u001b]11;rgb:ffff/ffff/ffff\u001b\\"
        }
      }
    },
    {
      "id": "xtversion",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#xtversion",
      "section": "Protocols (the terminal's own answer)",
      "label": "Reports its name and version (XTVERSION)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "noreply",
          "reply": null
        },
        "foot": {
          "result": "yes",
          "reply": "\u001bP>|foot(1.21.0)\u001b\\"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001bP>|ghostty 1.3.1\u001b\\"
        },
        "gnome-terminal": {
          "result": "yes",
          "reply": "\u001bP>|VTE(8003)\u001b\\"
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001bP>|kitty(0.49.2)\u001b\\"
        },
        "konsole": {
          "result": "yes",
          "reply": "\u001bP>|Konsole 25.08.1\u001b\\"
        },
        "ptyxis": {
          "result": "yes",
          "reply": "\u001bP>|VTE(8003)\u001b\\"
        },
        "wezterm": {
          "result": "yes",
          "reply": "\u001bP>|WezTerm 20260929-043349-cab25161\u001b\\"
        },
        "xterm": {
          "result": "yes",
          "reply": "\u001bP>|XTerm(402)\u001b\\"
        }
      }
    },
    {
      "id": "xtgettcap",
      "url": "https://terminal.ninja/tools/linux-terminal-feature-support/#xtgettcap",
      "section": "Protocols (the terminal's own answer)",
      "label": "Answers terminfo queries (XTGETTCAP)",
      "method": "query",
      "results": {
        "alacritty": {
          "result": "noreply",
          "reply": null
        },
        "foot": {
          "result": "yes",
          "reply": "\u001bP1+r544E=666F6F74\u001b\\"
        },
        "ghostty": {
          "result": "yes",
          "reply": "\u001bP1+r544E=787465726D2D67686F73747479\u001b\\"
        },
        "gnome-terminal": {
          "result": "yes",
          "reply": "\u001bP1+r544E=787465726D2D323536636F6C6F72\u001b\\"
        },
        "kitty": {
          "result": "yes",
          "reply": "\u001bP1+r544E=787465726d2d6b69747479\u001b\\"
        },
        "konsole": {
          "result": "noreply",
          "reply": null
        },
        "ptyxis": {
          "result": "yes",
          "reply": "\u001bP1+r544E=787465726D2D323536636F6C6F72\u001b\\"
        },
        "wezterm": {
          "result": "yes",
          "reply": "\u001bP1+r544E=57657A5465726D\u001b\\"
        },
        "xterm": {
          "result": "noreply",
          "reply": null
        }
      }
    }
  ]
}