Title: Input Protocols — Terminal Feature Category | Terminfo.dev
Open Graph Title: Input Protocols — Terminal Feature Category
Description: Input protocols for enhanced keyboard and mouse reporting. Modern terminals support multiple mouse tracking modes (X10, normal, button-event, urxvt, SGR, pixel) and keyboard enhancement protocols (modifyOtherKeys, Kitty keyboard) that provide richer input than traditional VT100 key sequences. These protocols enable TUI applications to handle modifier keys, mouse position, and key release events accurately. Mouse tracking in terminals has evolved through at least 6 protocol variants over 40 years — each fixing a limitation of the last. X10 mode (1986) only reported clicks, not releases. Normal mode added releases but encoded coordinates as single bytes, limiting the grid to 223 columns. URxvt mode removed the limit but used unsigned numbers. SGR mode (the current standard) uses signed decimals and can report pixel-precise positions. The irony: the original X10 mouse protocol was named after the X Window System version 10, which was itself replaced by X11 in 1987 — but X10 mouse mode lives on in every terminal.
Open Graph Description: Input protocols for enhanced keyboard and mouse reporting. Modern terminals support multiple mouse tracking modes (X10, normal, button-event, urxvt, SGR, pixel) and keyboard enhancement protocols (modifyOtherKeys, Kitty keyboard) that provide richer input than traditional VT100 key sequences. These protocols enable TUI applications to handle modifier keys, mouse position, and key release events accurately. Mouse tracking in terminals has evolved through at least 6 protocol variants over 40 years — each fixing a limitation of the last. X10 mode (1986) only reported clicks, not releases. Normal mode added releases but encoded coordinates as single bytes, limiting the grid to 223 columns. URxvt mode removed the limit but used unsigned numbers. SGR mode (the current standard) uses signed decimals and can report pixel-precise positions. The irony: the original X10 mouse protocol was named after the X Window System version 10, which was itself replaced by X11 in 1987 — but X10 mouse mode lives on in every terminal.
Opengraph URL: https://terminfo.dev/input
X: @AskTerminfo
Generator: VitePress v1.6.4
Domain: terminfo.dev
{"@context":"https://schema.org","@type":"WebSite","name":"Terminfo.dev","url":"https://terminfo.dev","description":"Can your terminal do that? Feature support tables for terminal emulators."}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://terminfo.dev/"},{"@type":"ListItem","position":2,"name":"Input Protocols — Terminal Feature Category","item":"https://terminfo.dev/input"}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Input Protocols — Terminal Feature Category","description":"Input protocols for enhanced keyboard and mouse reporting. Modern terminals support multiple mouse tracking modes (X10, normal, button-event, urxvt, SGR, pixel) and keyboard enhancement protocols (modifyOtherKeys, Kitty keyboard) that provide richer input than traditional VT100 key sequences. These protocols enable TUI applications to handle modifier keys, mouse position, and key release events accurately. Mouse tracking in terminals has evolved through at least 6 protocol variants over 40 years — each fixing a limitation of the last. X10 mode (1986) only reported clicks, not releases. Normal mode added releases but encoded coordinates as single bytes, limiting the grid to 223 columns. URxvt mode removed the limit but used unsigned numbers. SGR mode (the current standard) uses signed decimals and can report pixel-precise positions. The irony: the original X10 mouse protocol was named after the X Window System version 10, which was itself replaced by X11 in 1987 — but X10 mouse mode lives on in every terminal.","url":"https://terminfo.dev/input","author":{"@type":"Person","name":"Bjørn Stabell","url":"https://beorn.codes"},"publisher":{"@type":"Organization","name":"Terminfo.dev","url":"https://terminfo.dev"}}
| og:type | website |
| og:site_name | Terminfo.dev |
| og:image | https://terminfo.dev/og-image.png |
| twitter:card | summary_large_image |
Links:
Viewport: width=device-width,initial-scale=1