Ghostty terminal is out!
Ghostty terminal is out!
Ghostty terminal is out!
Cool project and... no screenshots? 😭
Every. Damn. Time.
Lol right?
I mean, it's a terminal emulator; what's it supposed to show, a bunch of white text on black background?
It's ridiculous how much time people are spending performance optimizing terminals.
xterm on a 120MHz Pentium on X11 in the 90s performed "fine".
Assuming you had a pretty decent monitor and graphics output in the 90s, it may have been 800x600, but more likely 640x480, and you'd have been using the standard issue bitmap font with no anti-aliasing, blitted to screen using software rendering. Probably in a single colour, too.
Alas, the problem with that is that it doesn't scale. On xterm a 4K monitor, I can watch Vim redrawing the screen, paging through logs is painful. Use Kitty for the same, it's instant, I can flip through tabs and split screens too, and have niceties like anti-aliased fonts and transparency if I want them.
Some people spend a lot of time in the terminal, so I can't fault them for taking the time to make a nice working environment and sharing that work with others.
"decent" hardware back then ran at 1024x768. I never ran less. And definitely multiple colors. But sure - no anti-aliasing and other features. But also on hardware several orders of magnitude slower.
Though granted I don't have a 4k monitor so maybe there are issues with that...
Some people spend a lot of time in the terminal, so I can’t fault them for taking the time to make a nice working environment and sharing that work with others.
I mean - it's the first thing I open... Which is why I'm surprised others seem to have "performance issues" since I've never seen any.
Sure, it performed "fine".
But it was sluggish compared to the VGA ttys we were used to.
Now, if we can have something as snappy and at the same time as pretty as Eterm.. 👌
Every Linux user has the earliest and lowest specced version of the 4k Lenovo thinkpad from back when 4k on a laptop was impractical and a stupid idea.
The "Abandon all hope, ye who enter here" terminal?
Edit: that was once a comment in the sourcecode.
Hah! It's funny I just fired it up again for the first time and I do see a bit of flicker in xterm when paging full-screened in vim... So maybe there is something to performance optimizing terminals. :-)
The problem with xterm is that everything else about it sucks. The only other half-decent performer is mlterm which is decent but has its share of issues.
This one feels quite snappy; better than foot.
Hacker news users seem happy with its performance, so will try tomorrow. Fun with new terminals.
Is there a difference in performance between terminals? Holy hell
Edit: i always used byobu btw
Looked at it, interesting, no package, installed cosmic-term
instead
Uses alacritty under the hood, with tabs and tiles!
For those that are, for some reason, incredulous of having more performant software (???), here's a simple program to demonstrate the point:
rs
use std::{ fs::File, io::{BufWriter, Write}, }; fn main() { let buf = File::create("/dev/stdout").unwrap(); let mut w = BufWriter::new(buf); let mut i = 0; while i <= 100000 { writeln!(&mut w, "{}", i).unwrap(); i += 1; } }
It simply prints the numbers 0-100000 to the screen. Compile it (rustc path-to-file
). Run it in a non-accelerated terminal with time ./path-to-bin
. Now time that same binary in a terminal emulator with GPU-acceleration.
The difference becomes more apparent with more text. Now, imagine needing to use something like find
on a large set of files. Doing this on a non-accelerated terminal is literally slower.
It's fine if you don't need a GPU-accelerated terminal, but having acceleration is genuinely useful and a noticeable quality-of-life improvement if you do anything more than just basic CLI usage.
Isn't the terminal only going to affect performance when it's displayed in stdout? I'd think a program like find / using pipes would send the data under the hood and all that the terminal would deal with would be the output of the entire command.
Perhaps that's true. Although, I think that should be tested because I'm a little unsure since pipes are just the stdout of one command being used as the stdin of the following command. There's still some output, even if you don't see it.
In any case, find
has many uses, many of which will print data to the screen, and find
is far from the only use case in which this would be apparent. There are tons of situations in which you're going to have to work with large amounts of stdout/stderr, and having a GPU-accelerated terminal will be much faster in all of those situations.
It’s awesome to see a project written with Zig!
They know what they doin. Take off every zig.
And now that song is back in my head. Thanks man :|
Thought out choice but disappointing nevertheless:
My stance for now is that Ghostty will not support sixels.
What do you think about the Kitty Graphics Protocol?
I like Kitty Graphics. I like graphics in the terminal for two reasons:
Reason (1.) works with Kitty. (2.) does not. (2.) is pretty esoteric so I think sixel will probably die out soon due to the user base?
I get that Sixel is old AF but is there a new standard or is it just an open sea of fragmentation where everybody picks some branched attempt at doing the same thing and rolls with it instead?
Kitty Graphics Protocol seems to be the new one they're pushing
Hm... I don't see it stating anything about wayland, but since it says "native" in some many places, I need to assume it won't use Xwayland, unless specifically told to.
Right? Anyone to confirm?
It works natively on Wayland. The UI uses gtk4.
Hm. That's good. I wonder if it could be compiled to use no toolkit, but only rely on server-side decos.
Oh well. I'll give it a try.
EDIT: We'll it, indeed, can be compiled without toolkit. Nice. Strangely it defaulted to US keyboard layout. While all other programs do respect my system keyboard layout setting.
i dont have xwayland, and it worked (though i did not test enough(lack of interest))
Hey OP, what is the coolest feature?
Any speed comparison?
thanks but i'm good with st
I think I'll stick to alacritty, but options are always fun
Same. Wezterm is good enough so far
I've been a foot
user for quite some time now.
However, this seems interesting.
IME it feels much snappier than foot.
I was very satisfied with Bash for a long time until my friend got me using Zsh. I still am not sure i need Zsh over Bash honestly. Command autocomplete is obnoxious
Bash and zsh aren't terminals. They're shells.
Different things. Bash/Zsh/Fish/Nu are shells, i.e. a low level CLI interface with the computer. On systems with graphics you need a graphical program to display the shell, e.g Konsole/Gnome-shell/Alacritty. Also there's a third (optional) program to render the line where you type commands differently, this is called a prompt and there are several different ones, e.g. Powerlevel10k/oh-my-posh/Starship.
warning: this is a giant rant lol
Before the rest of my comment, let me be clear, I think this terminal is good, and i have no problems with it. My problem is with the hype.
I simply don't understand the hype whatsoever.
First of all, it's not even faster than my current terminal. especially when running cat /dev/random
for whatever reason
For the test i ran this rust program i saw in a comment thread somewhere
rust
use std::{ fs::File, io::{BufWriter, Write}, }; fn main() { let buf = File::create("/dev/stdout").unwrap(); let mut w = BufWriter::new(buf); let mut i = 0; while i <= 100000 { writeln!(&mut w, "{}", i).unwrap(); i += 1; } }
compile with rustc
to test yourself.
running the binary with hyperfine
, i get ~35ms
on my current terminal (foot), and ~40ms
on ghostty.
The terminal window sizes about the same size, in fact, there were 3 extra lines in foot
so it was technically handicapped.
Next is the whole "native ui thing", which sure, if you use gnome, or mac is fine i guess, but what about kde where qt is used. And for me i simply hate title bars so i turned it off immediately and now it looks better.
I do think the tabs are cool, not much to say about that, I wouldn't use them, but for those who do, pretty cool.
I have a similar opinion with the panes, personally i think if you want panes, just use a tiling window manager, or tmux or something, but i also dont really have a problem with this (tmux can be annoying).
If I've missed anything let me know, because I really dont get it.
I must be retarded. People are excited about a terminal emulator. Why?
It's incredibly fast, has the features you would want like tabs/splits, maintains comprehensive compatibility, and is written cleanly in Zig. What's not to like?
People gets excited to see something written in their favourite niche language.