Get the top HN stories in your inbox every day.
j1elo
cosmic_cheese
Mac terminals yield a similar benefit, with the systemwide copy/paste Cmd+C/V not overlapping with Ctrl+C/V.
Being used to that, Linux terminals become rather annoying. Yes there's other ways under Linux, but they don't have 25+ years of muscle memory associated with them, and so when the key shortcuts don't work as expected it's like nails on a chalkboard.
jack_pp
Heh, shortcut muscle memory is the reason I returned my Mac mini one week after trying it. I sure am not gonna remap my brain for apple after 20 years of Linux and windows.
nsagent
Maybe you mean it's too much effort, because I'm sure you could. I was taught touch typing on a QWERTY keyboard in the summer between 6th and 7th grade. Last year I switched to Colemak after nearly 30 years of QWERTY.
computably
It's easy and reasonably quick to set up key remapping (via Karabiner).
kps
There are *nix terminals that will let you bind shortcuts that don't conflict with terminal control keys. Konsole and KDE stuff in general will let you set Mac-style bindings (with some config effort), though I personally use mlterm.
sunshowers
The tradeoff here is that Macs don't have a system key that most applications don't interpret in some way. On Windows and Linux, system key shortcuts are much easier to set up.
taftster
I really do like Cmd key usage for any terminal in Mac. The ability to send Ctrl+C differently than Cmd+C in a Mac is joyous.
However, for most all other applications in Mac, I dislike the Mac command key. Especially in IDEs like vscode, etc.
And I really hate that the actual Ctrl key on a Mac is in the wrong place, having swapped places with Fn. It's like the first thing I have to remember to do on each Mac setup, swap those two keys.
Because I'm toggling between mac/windows/linux all day long, my poor muscle memory is always confused. And it would be nice if this could be unified. Unfortunately, I'm guessing it would have to be solved more by Apple than by Microsoft or Linux.
kace91
What do you dislike about cmd placement?
I feel the opposite, the near-thumb position for the most used modifier is a godsend vs pinky strain.
Ctrl in caps lock is debatably better but that key is arguably better used for esc in vim setups (or the harder to setup “ctrl if held, esc if tapped”).
cosmic_cheese
On all my machines I remap Caps Lock to Control, and since I still use Control from time to time under macOS, I have muscle memory for it, and so switching between Control/Command dominance is low friction.
Control in its typical position however drives me crazy.
h3x4d3c4
Not sure if this was available from the beginning, but Ghostty has the ability to do exactly that with what they call "performable" keybindings
ghosty141
Oh wow, I'm already using ghostty and didn't know about this. It works great, thanks!
ur-whale
Ooh, seconded, will try right away.
[EDIT]: so ... tried it ... very, very nice BUT:
what of CTRL-V ???
stefanha
In Linux (Wayland) you can copy text from the terminal without pressing Ctrl+C at all. Just select the text. To paste it in another Window, press the middle mouse button.
This is called the Primary Selection and is separate from the Clipboard (Ctrl+C/Ctrl+V). IMO the Primary Selection is more convenient than the Clipboard.
pmontra
That's an X11 thing that Wayland had to reimplement because it's so convenient. The problem is when pasting into the terminal something that another program copied into the clipboard. That's ctrl-shift-c.
I thought about remapping copy and paste to their own keys, possibly a single one. Maybe on the number pad, which I never use. Or remapping ctrl-c.
tmtvl
There's always Ctrl+Insert for copy and Shift+Insert for paste. I know that there's some laptops lacking an insert key, which is terrible, but for keyboard with an insert key the Ctrl/Shift + Insert combos are useful at times.
DaSHacka
Isn't this an X11-ism? I dont believe this is Wayland-specific
j1elo
Yeah I know. I missed this for the first couple days, but didn't take much before forgetting it after the change to Windows. (anyway I keep using Linux at home)
lelandbatey
This is also a thing in X, not only Wayland.
dzaima
But that doesn't go into clipboard history. And severely restricts what you can do between copying and pasting in general (very importantly makes it a pain to do replace (i.e. select+(implicit-delete+)paste)) as any intermediate selection before pasting destroys your Primary Selection. And if you realize you did that, recopying takes manually reselecting the text, or the otherwise-never-used ctrl+insert to recopy, instead of just repeating the same old ctrl+c as you always do with the clipboard in any sane application.
Of course still a nice option (esp. in terminals where the proper copy/paste are nerfed and selecting for editing is annoyingly not a thing), but far from a replacement for the proper clipboard.
bytehowl
How do you paste the selected text if you want to replace a text selection in the other window?
bluebarbet
>middle mouse button
Speaking for myself (although I suspect many others), I haven't used a mouse in well over a decade. To be clear, I am in the terminal all the time. So this is not a universal solution.
Yizahi
I really wish PC manufacturers didn't kill Insert button. It worked just fine for decades with Ctrl-Ins/Shift-Ins, and in every terminal I've tried. But now the button is missing more and more often (thanks HP, I appreciate useless call and share buttons in its place, which don't work anywhere), and fixes need to be invented for a solved problem.
indigodaddy
Yeah shift-ins really is the way
teo_zero
It doesn't look so convenient to me. If Ctrl+v is bound to paste, how do you insert a verbatim character in the shell? How do you start a block visual selection in Vim? How do you scroll down in emacs?
throw0101c
> If Ctrl+v is bound to paste, how do you insert a verbatim character in the shell?
For those unaware:
> Unix interactive terminals use Control-V to mean "the next character should be treated literally" (the mnemonic here is "V is for verbatim"). This allows a user to insert a literal Control-C or Control-H or similar control characters that would otherwise be handled by the terminal. This behavior was copied by text editors like vi and Unix shells like bash and tcsh, which offer text editing on the command line.[3]
blueflow
You don't but you don't notice if you never did anything like that. Half of the keybinds listed by 'stty -a' are a mystery to mankind.
tom_
You can unbind the Ctrl+V keymapping if you want, and it behaves as expected in emacs -nw at least. (There's a Ctrl+Shift+V binding set up by default, same as many Unix terminal emulators, so you won't miss out.)
j1elo
Seems to me a reasonable concern but I'd bet it's only for a minority of users... so perfect candidate to have implemented, but given as a disabled by default setting.
usrbinbash
> So convenient!
Running in tmux, marking anything on my terminal immediately puts it into the tmux buffer, without me having to click anything on the keyboard. Pressing middle-mouse pastes it.
THAT is convenience.
rovingeye
I have that turned on in Windows Terminal but still use ctrl+c because it's how all other software works
ur-whale
> immediately puts it into the tmux buffer
Can you paste in a non-terminal app though (like a web browser) ?
usrbinbash
Yes, of course I can. I have a separate binding in my tmux config to copy to the clipboard.
jwnin
windows terminal is awesome and i wish it shipped with windows by default instead of having to go to the store and install it. everyone who uses it has only good things to say, and it is updated regularly by Microsoft.
DHowett
It comes with Windows, and has since 2022! Alas, if you mean Windows 10 then you can use some DISM magic to add it to an install image.
zadjii
It's shipped with Windows since Windows 11. Updates come via the Store (since that's a lot faster than OS updates), but it's definitely preinstalled these days
Iwan-Zotow
It is default in w11 25h2
mongol
This is genious. It is one of the most annoying things remaining in the Linux desktop and I often press Shift-Ctrl-C in the browser by mistake, opening up the dev tools in the process, while intending to copy.
Are there any legitimate reasons to send Ctrl-C except to abort, that this could interfer with?
eschatology
While the article title is true (errant is a very specific and concise word), to me it did not convey clear enough that this is just ucs-detect / unicode support (compliance?) ranking. The article title "State of Terminal Emulators in 2025" implied a larger comparison of terminal emulators than just ucs-detect.
Personally I also question the practicality or usefulness of this table because why should I care about having "the best unicode support"?
Curious, I briefly compared top ranked emulator (ghostty) on how fast it can print 10000 lines and it took 432ms compared to alacritty, ranked 18 (50ms), and Terminal.app, ranked 29 (50ms). If this is the trade-off to have the best unicode support, why should I want it? Why does it matter?
bardsore
How fast my terminal can print 10000 lines is pretty far down the list of requirements I have, who cares as long as it is fast enough? To me it is as irrelevant as who has the best unicode support.
unleaded
It's interesting that none of the programs commonly known as "terminal emulators" actually emulate a terminal.. we can do that now though. https://zork.net/~st/jottings/Real-VT102-emulation-with-MAME...
I would avoid doing the PTY thing and instead do this (works on WSL if MAME is the windows version):
$ sudo socat TCP-LISTEN:1234,reuseaddr,fork EXEC:"/sbin/agetty -L - 9600 vt102",pty,setsid,ctty,stderr
$ mame -nomouse vt102 -rs232 null_modem -bitb socket.localhost:1234
You can do the same thing with a vt220.I've had an idea to try to write a sort of high-level-ish VT220 emulator that pokes and patches the ROMs and the system to let you control it with the mouse, paste and stuff, lets you just doubleclick it to get a terminal, etc... I forgot about that until seeing this. Nobody would use it for more than 5 minutes but it would be funny.
blueflow
They do emulate a terminal, not just the kind of emulation you have in mind. "Wine is not an emulator" again.
anthk
Forget MAME; I'd love a forked project for this minus the shaders for old machines. Where you just get the terminal emulation with a good TTF font and that's it. There are similar projects for the Altair 8800 where they scrapped their code from SIMH (now I prefer simh-classic) to just emulate a CP/M 2.2 Altair machine and that's it, because these people don't need to emulate PDP10's with ITS, old BSD's, current VAX NetBSD releases or the rest of the DEC machines...
LukeShu
> You can do the same thing with a vt220.
Can you? The last I looked at it (a year or two ago), the vt220 in MAME was just the beginning skeleton of an implementation, and it doesn't seem to have been touched much since then. A shame, because AFAIK no "terminal emulator" implements vt220-style sixels (which are different than than the widely-implemented vt4xx-style sixels).
unleaded
I checked and it was actually the vt240. That one works.
dgl
If MAME could support the VT525 (nearly the last terminal DEC made and unlike the previous DEC models it supports ANSI color) people might use it a bit more. It would be very useful for compatibility testing as there aren't many people with a real VT525! Last I looked someone had dumped the ROMs but there wasn't any support code.
p_l
VT5xx was the budget line with limited functionality, that's why only 525 among them supports ANSI color. The only fancy stuff was multisession (TD/SMP if you have all bits to support it) and "desktop accessories" like clock and calculator.
The really interesting ones are VT340 variants with ReGIS and full SIXEL graphics
dgl
The VT3xx ones that were color did not support ANSI SGR to set them. I don't think VT5xx was a budget line, it has more escape sequences than the previous ones (including interesting ones like changing cursor shape, which modern terminals implement too). It's more that they never made a graphical version of the VT5xx (this was the early 90s, whether physical VTs made sense anymore is debatable, but terminal graphics likely didn't).
VT340 is definitely interesting and if someone were to emulate one that would also be great! (there's been some good research, e.g.: https://github.com/hackerb9/vt340test, which you might be surprised to learn has been used to make Windows Terminal one of the more conformant terminals...)
mmastrac
I've started working on a VT420 emulator which is about 70% complete: https://github.com/mmastrac/blaze
kevin_thibedeau
This also looks closer to the original with some shaders to add pincushion distortion and Gaussian scanlines.
sho_hn
Pretty nice to see KDE's Konsole rank really high, especially if you take performance/test elapsed time into account. Considering it's a decades-older workhorse compared to the new star ghostty, not too shabby that it's kept up.
yokljo
Agreed. It's nice to be able to just use the provided terminal when running KDE. It's very customisable and runs plenty fast. I also love being able to right click on Dolphin and tell it to open Konsole in the current folder. Also, I leave infinite scroll back turned on in Konsole and it works really well, swapping out to a file as it gets too much scroll back. Nothing worse than getting errors that I can't read because the terminal discarded them. I have Ctrl+Shift+X bound to clear everything, which I use before running just about any operation.
jcgl
> I also love being able to right click on Dolphin and tell it to open Konsole in the current folder.
This is a KDE thing; it'll open in whatever terminal you've got configured in Default Applications.
TiredOfLife
Unfortunately Konsole has this feature that each time you switch tabs the maximized window shrinks by a couple of pixels (at least on Steam Deck)
whateveracct
Konsole Just Works
tmtvl
Some vaguely related things:
- VTTEST <https://invisible-island.net/vttest/vttest.html>, which tests capabilities from VT-100 to VT-520 terminals.
- Markus Kuhn's UTF-8 test <https://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt>.
alkh
I have been pretty happy with Alacritty for a while but just tried Ghostty and am a little bit mind-blown. The fact that it has a built-in theme picker is insanely convenient for people working on multiple computers at the same time(so the same theme might not work everywhere).
Overall, it literally looks like a better Alacritty alternative. The creator(s) did a great job!
mort96
The only thing I'm missing from ghostty is scrollback search. It's planned AFAIU, I hope it gets there eventually. Otherwise, ghostty has been pretty good.
(I know you can fake scrollback search with tmux. It's not the same.)
klooney
There seems to be a contingent that just doesn't use scroll back search, which I find kind of baffling.
__float
There are a ton of people who _immediately_ open tmux/zellij/etc. when they're doing anything in the terminal. This means you use its backscroll and search feature, and you wouldn't notice.
@mitchellh seems to rely on the Ghostty feature to dump scrollback to a file, and edit/search over that.
I found it a bit too inconvenient when using remote systems frequently, though. (If I'm missing a trick, I'd love to use Ghostty! But I'm just not a fan of multiplexers.)
sevg
I’ve never used scrollback search, and it was a discovery for me that there’s a contingent that are very vocal in their demands for scrollback search.
I can see why someone would feel attached to this feature though.
Mostly I’m looking forward to seeing it implemented so I can stop reading complaints about this being missing in every thread about ghostty!
tharos47
I use ctrl+R for search that way I'm not dependent of a terminal emulator features and can get to work even on random computers.
https://www.gnu.org/software/bash/manual/bash.html#index-rev...
bigstrat2003
Honestly, I had never even heard of it before this very thread. It doesn't seem all that useful to me, but I don't truthfully know how much or how little I would use it in practice.
nusaru
Relevant GitHub issue: https://github.com/ghostty-org/ghostty/issues/189
Imustaskforhelp
> To be completely clear, it’s not on the “IMMEDIATE” roadmap (as noted in the prior comment). It’s absolutely on the roadmap and I even already started some it in a branch. But as a passion project, we prioritize working on whatever we want and this isn’t currently the priority. It’s high on the list but not like.. next release (“immediate”) priority at the time of this comment.
I mean I can respect that, personally it isn't as a big of deal with me so I use ghostty on my mac but I would still think that I would advocate ghostty only after disclosing this to anyone to be really honest.
OberstKrueger
The first time I went through the theme picker, I was tickled to see a theme I had made years ago included. Realized later it was due to it including all of the themes from iTerm2 Color Schemes automatically.
It made for a more fun first experience with a terminal emulator than I expected to have.
seanw444
Same here. Any replacement I moved to needed to have content centering, where the margin around the cells is equal in both dimensions when the cells don't fit perfectly into the window. Kinda crazy that it's not a feature in a lot of terminals I checked over the years. I wouldn't even consider myself OCD, but it drove me nuts until I found a terminal that let me do it.
chrysoprace
I've always wanted to like Alacritty but they've had an open issue to support ligatures since 2017 and they're not in a rush to implement them.
Now the only feature I need in Ghostty is Windows support.
Imustaskforhelp
> Now the only feature I need in Ghostty is Windows support.
I use ghostty on my mac but have you forgot about ctrl + f to find things support in ghostty (I don't think it has ctrl f support iirc right?)
chrysoprace
I'm always running tmux so it's not typically a feature I look for, but as you mention it doesn't seem to trigger a find for terminal scrollback. Wezterm doesn't do this either so maybe that's an iTerm thing. I always assume Ctrl keybindings will trigger emacs mode shortcuts in the tty.
Update: Windows Terminal doesn't do it either.
hnlmorg
I thought built in theme pickers were the norm…?
ctippett
I appreciate this analysis is on the state of terminal emulators, but I'm curious how well the integrated terminals that come bundled in code editors/IDEs also perform. For example, where does Zed's integrated terminal fit in the rankings? VS Code (and its derivatives)? JetBrains, Sublime Text?
kartoffelmos
vscode terminal came in at number 32.
https://ucs-detect.readthedocs.io/sw_results/vscodeterminal....
ctippett
I missed that one!
shirro
Terminal emulators are caught between emulating terminals and teletypes of the past and implementing new features and unicode is one of the struggles. The way most terminals and wcwidth handle the width of characters sometimes is not correct but preserving behavior is important for compatibility. It is possible that its just not worth trying to handle all unicode perfectly in a terminal. Its pretty good for legacy stuff and sysadmin. We have other ways of doing things remotely like html that might be more appropriate for ZWJ emoji and languages with complicated text shaping/rendering.
kevin_thibedeau
For glyph width, there are codepoints classified as ambiguous width. These are mostly narrow pre-emoji symbols that have been extended with an alternate emoji representation. There's no way to predict what their width will be, even with explicit variation selectors which might just be ignored.
lifthrasiir
> These are mostly narrow pre-emoji symbols that have been extended with an alternate emoji representation.
Nitpick: this is incorrect. Easy counter-examples would be arrow symbols like →. UAX #11 helpfully explains what is "ambiguous" about those characters:
Ambiguous characters occur in East Asian legacy character sets as wide characters, but as narrow (i.e., normal-width) characters in non–East Asian usage. (Examples are the basic Greek and Cyrillic alphabet found in East Asian character sets, but also some of the mathematical symbols.) Private-use characters are considered ambiguous by default, because additional information is required to know whether they should be treated as wide or narrow.
In the other words, these characters have been commonly available in both Asian and non-Asian character sets and assigned different widths by them.
kevin_thibedeau
There are preexisting narrow symbols that were given a new emoji presentation in later standards rather than assigning a new codepoint. Text rendering engines vary on which form is the default. VTE had an option to set the preference. This can be very annoying when some arrows get the new emoji form but others in their cohort stay as narrow glyphs.
charcircuit
The terminal emulator knows what font is being used so it should be possible to predict it.
kevin_thibedeau
The terminal application doesn't know the font. The best you can do is discover ambiguous widths by printing codepoints and checking the change in cursor position. That's a suboptimal experience.
anthk
It does it fine with GNU Unifont and raw XTerm and others. I just had issues with RXVT and clones.
christophilus
Foot is excellent. Wayland only, but it is very fast to launch, and uses few resources. I love it.
RVuRnvbM2e
I'm quite confused why this article tests foot v1.16.2, which is two years old at this point. The latest version is 1.25.0.
By contrast, the tested version of ghostty v1.2.3 is two weeks old.
aorth
Good point. I just submitted a pull request with new data for foot 1.25.0 https://github.com/jquast/ucs-detect/pull/17. The test suite is really easy to run (and fast, foot rocks!).
moderation
Similarly kitty is at 0.44.0 [0], zutty at 0.16.0 [1]
ac29
Yep this is my current favorite too. I liked ghostty when I evaluated it, but for some reason it uses an order of magnitude more memory than foot to display a single, empty terminal.
tristan957
Ghostty uses GTK + GPU rendering while Foot uses Wayland primitives and CPU rendering.
colordrops
I've seen zero performance issues with foot.
bdunks
I agree. I started using Foot based on a recommendation from the notcurses library author, who has deep expertise in terminal emulation and collaborates with maintainers.
A tip for new users: The default theme is a bit harsh. I was able to port my Alacritty theme and other config by feeding the config file to an LLM (along with the Foot documentation). It generated a configuration that was 80-90% correct and only required about five minutes of manual fixes.
The result is now visually identical to my Alacritty setup, but Foot feels faster.
colordrops
Foot is the best. Love ctrl-shift-o to open up links
zadjii
No love for Windows Terminal? I know that linux has a much richer terminal ecosystem, but WT ranks a lot higher than a wide breadth of terminal emulators on linux now. Could anyone have imagined that 10 years ago?
gschizas
In the test, Windows Terminal (weirdly written as "terminal.exe") comes up as #4 in the scoring table.
As to the "love" question, I still watch this video from time to time: https://www.youtube.com/watch?v=8gw0rXPMMPE :)
EDIT: I love the easter egg with the names of the developers across the Windows timeline :)
jscyc
It's what I most miss from using windows. It handles tabs, theming and renaming of windows so well. Being able to tell at a glance what each window is connected to, it's purpose etc is very handy for me.
epolanski
I absolutely love it, it's my personal favorite. Using ghostty on MacOS instead.
But I'm no power user.
bigstrat2003
I would argue that anyone who uses the terminal enough to have opinions on which one they like best is very much a power user.
epolanski
I don't know, reading around feels like power users are mostly defined but the tons of features they use and miss when switching emulators.
TacticalCoder
[dead]
p_l
Interesting that xterm is written off as not supporting sixel, when in actuality it supports both full SIXEL and ReGIS and Tek 4010, with 24bit colour IIRC.
It's just not enabled by default.
audidude
So the state of 2025 then tests a VTE that is from 2023? 4 major releases behind? And through a GTK 3 app, not even a GTK 4 one which will use the GPU?
milliams
Likewise I noticed that Konsole was version 23.08. I've just submitted a PR (https://github.com/jquast/ucs-detect/pull/14) to update it to 25.08.
embedding-shape
Which one is that about specifically? Maybe the author could fix it.
Compared the results (https://ucs-detect.readthedocs.io/results.html#general-tabul...) with what I use day-to-day (Alacritty) and seems the results were created with the same version I have locally installed, from Arch/CachyOS repos, namely 0.16.1 (42f49eeb).
aidenn0
They accept PRs on the ucs-detect project for updated test results.
Get the top HN stories in your inbox every day.
Work had me using the Windows Terminal for the first time ever after a life of developing on Linux. I got immediately hooked on the smart Ctrl+C and Ctrl+V (without needing to use Shift like on Linux!)
For those not knowing, Windows Terminal uses Ctrl+C to abort the current process (as we'd expect) when nothing is selected, but copies when there is a selection. Similarly, Ctrl+V just pastes. So convenient!