-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Terminal Support
Helix requires a fairly modern terminal for things like truecolor support. Helix also uses some optional terminal features to enhance its operation. The terminals in this table all meet Helix's basic requirements. The table summarizes their support for the optional features.
Focus Events | Bracketed Paste | Set OS Clipboard | Extended Underlines | Enhanced Keyboard Protocol | |
---|---|---|---|---|---|
Alacritty | ✅ | ✅ | ✅ | ✅ | ❌ (alacritty#7125) |
Kitty | ✅ | ✅ | ✅ | ✅ | ✅ |
Wezterm | ✅ | ✅ | ✅ | ✅ | ✅ (with config) |
foot | ✅ | ✅ | ✅ | ❌ (foot/1089) | ✅ |
Rio | ✅ | ✅ | ✅ | ✅ | ✅ |
These terminals don't meet the basic requirements:
These terminals have been reported to exhibit rendering issues for CJK characters on Windows:
- PowerShell (#5753)
- Alacritty (#5753 comment)
Wezterm has been recommended for use on Windows in response.
If a terminal isn't in the table, it doesn't mean that Helix doesn't work in it, just that no one has tested it. To add a terminal, please add an entry for it to the terminals section with the version you used and when you tested.
Focus events can be emitted by a terminal when it gains or loses focus at the OS level. 3178 added an option to save when it loses focus.
Bracketed paste lets a terminal tell an application that incoming characters are from the user pasting, not from typing. 3233 keeps pasted text from being autoformatted making pasting much faster.
Set clipboard lets an application running in a terminal set the clipboard in the surrounding OS.
Helix supports setting the system clipboard with the "yank selection to clipboard" command, which is bound to space y
by default.
When Helix is running directly on an OS that supports setting the clipboard, it'll use the OS's facilities to set the clipboard.
That's xclip
in X Windows, wl-copy
on Wayland, pbcopy
on MacOS, and direct API access on Windows.
On systems where that isn't availble, Helix will use this terminal feature to set the clipboard when 3220 lands. For example if you're SSH'd into a remote host, Helix will be able to set your OS clipboard if your terminal supports this feature.
Some terminals support Kitty's extended underlines.
Some terminals support Kitty's progressive keyboard enhancement protocol.. The enhanced keyboard protocol disambiguates the escape sequences for some keyboard events that are impossible to tell apart by default. For example the C-i
key combination sends the same escape sequences to Helix as the Tab key and C-backspace
sends the same escape sequences as C-h
.
You can check if the enhanced keyboard protocol is supported by your terminal emulator and Helix by checking the log file when running in verbose mode with hx -vv
. Helix versions with enhanced keyboard protocol support will print a debug line on start-up saying either "The keyboard enhancement protocol is supported in this terminal" or "The keyboard enhancement protocol is not supported in this terminal". If neither of those lines exist, you should use a newer version of Helix.
The enhanced keyboard protocol must be explicitly enabled in WezTerm. See https://wezfurlong.org/wezterm/config/key-encoding.html#kitty-keyboard-protocol.
Alacritty was tested using version 0.10.0 on 2022-08-11.
Kitty was tested using version 0.25.2 on 2022-08-11.
Wezterm was tested using version 20220807-113146-c2fee766 on 2022-08-11.
foot was tested using version 1.15.3 on 2023-09-07.
Rio was tested using version 0.0.18 on 2023-09-17.
As of version 2.12.7 (445) on Mac OS 12.5, it doesn't support truecolor.