Ghostty terminal is out! (github.com)
from TheTwelveYearOld@lemmy.world to linux@lemmy.ml on 26 Dec 20:59
https://lemmy.world/post/23575655

#linux

threaded - newest

akkajdh999@programming.dev on 26 Dec 21:02 next collapse

thanks but i’m good with st

TheTwelveYearOld@lemmy.world on 26 Dec 21:21 next collapse

rn Im using Kitty, I’ll check out Ghostty later.

SmokeInFog@midwest.social on 26 Dec 22:26 collapse

I <3 kitty, will probably give this a look but I’ve got kitty so well tuned to my liking at this point it’s hard for me to imagine switching

flashgnash@lemm.ee on 27 Dec 03:04 collapse

Have got kitty and xterm looking identical, multiplexing is done by zellij anyway

I think kitty is a bit snappier but honestly you could switch one out for the other and I probably wouldn’t notice

syklemil@discuss.tchncs.de on 26 Dec 21:53 next collapse

I think I’ll stick to alacritty, but options are always fun

fin@sh.itjust.works on 27 Dec 00:15 collapse

Same. Wezterm is good enough so far

Classy@sh.itjust.works on 27 Dec 02:49 next collapse

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

cybersandwich@lemmy.world on 27 Dec 03:57 next collapse

I don’t know that anyone “needs” anything more than bash. It’s the creature comforts that sell the other shells. That said, bash has never hung or crashed on me. I can’t say the same for zsh.

atzanteol@sh.itjust.works on 27 Dec 05:37 next collapse

Bash and zsh aren’t terminals. They’re shells.

Nibodhika@lemmy.world on 27 Dec 09:05 collapse

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.

Zucca@sopuli.xyz on 27 Dec 10:11 collapse

I’ve been a foot user for quite some time now. However, this seems interesting.

Atemu@lemmy.ml on 27 Dec 20:05 collapse

IME it feels much snappier than foot.

GuyDudeman@lemmy.world on 26 Dec 22:01 next collapse

What are the differences between all of these terminals?

kusivittula@sopuli.xyz on 26 Dec 22:13 next collapse

ikr, i try to stay away from the stock one too

muhyb@programming.dev on 27 Dec 02:32 collapse

If you’re occasionally using them, there aren’t any.

If you’re excessively using them, there are many.

Sturgist@lemmy.ca on 27 Dec 10:16 collapse

Could you highlight a couple, I’m kinda in between with my terminal usage…

muhyb@programming.dev on 27 Dec 11:14 collapse

Sure, I can do that.

  • If you’re looking for something lightweight, go for st or urxvt. These are Xorg-only.
  • If you want to configure it via GUI, xfce4-terminal is the middle ground for lightweight and feature-rich. If you are on KDE, konsole would suffice. You can use these on Xorg and Wayland.
  • If you want to work with multiple panes in a single window, terminator is your friend. Used this on Xorg but not sure about its Wayland compatibility.
  • If you want GPU acceleration and more features, kitty and alacritty is out there. Both should work on Xorg and Wayland.
  • If you want something like st but pure Wayland, foot is the best lightweight terminal emulator. My current personal favourite.
Sturgist@lemmy.ca on 27 Dec 14:00 collapse

Fucking legend!

Pretty sure I’m using konsole right now, whatever it is, it came pre-installed on my distro.
Might check out foot and kitty, what I’m using is working right now, but always nice to look into different options.

muhyb@programming.dev on 27 Dec 15:08 collapse

Yeah, it’s one of the greatest characteristics of FOSS. We have many options and endless posibilities.

Glad to help.

1984@lemmy.today on 26 Dec 22:28 next collapse

Hacker news users seem happy with its performance, so will try tomorrow. Fun with new terminals.

bruhduh@lemmy.world on 27 Dec 05:55 collapse

Is there a difference in performance between terminals? Holy hell

Edit: i always used byobu btw

QuazarOmega@lemy.lol on 27 Dec 00:00 next collapse

Cool project and… no screenshots? 😭
Every. Damn. Time.

prole@lemmy.blahaj.zone on 27 Dec 15:23 next collapse

Lol right?

Atemu@lemmy.ml on 27 Dec 20:04 collapse

I mean, it’s a terminal emulator; what’s it supposed to show, a bunch of white text on black background?

QuazarOmega@lemy.lol on 27 Dec 22:23 collapse

It supposedly supports fancy features, so I’m curious to see how those look, they also say it’s got top of the line speed, so maybe a screencast with side by side of reference terminal emulator (xterm?) and ghostty displaying heavy throughput output to see the smoothness goodness

Atemu@lemmy.ml on 28 Dec 15:53 collapse

A screencast cannot really capture that. Practically any terminal is fast enough to render a shitton of text quickly and “smoothly”.

The difference in speed can only really be felt.

W.r.t. UI, it looks exactly like you’d expect a GTK4/adwaita terminal emulator to look.

QuazarOmega@lemy.lol on 28 Dec 17:09 collapse

By “can only be felt” do you mean in the way it affects the performance of your system?

Atemu@lemmy.ml on 28 Dec 19:55 collapse

No terminal emulator ever should affect the performance of the rest of your system.

I mean that totally w.r.t. how it feels to interact with the terminal emulator.

QuazarOmega@lemy.lol on 29 Dec 01:36 collapse

Sorry, what does w.r.t. stand for?

No terminal emulator ever should affect the performance of the rest of your system.

No idea honestly, people are saying that certain heavy output programs might just slow down the execution of other graphics related processes because text is usually expensive to draw, haven’t tried it myself

Atemu@lemmy.ml on 29 Dec 16:30 collapse

with regard/respect to

Whoever told you text is expensive to draw has no idea what they’re talking about.

MNByChoice@midwest.social on 27 Dec 01:26 next collapse

Hey OP, what is the coolest feature?

vhstape@lemmy.sdf.org on 27 Dec 01:52 next collapse

It’s awesome to see a project written with Zig!

Telorand@reddthat.com on 27 Dec 02:38 collapse

They know what they doin. Take off every zig.

perishthethought@lemm.ee on 27 Dec 06:30 collapse

And now that song is back in my head. Thanks man :|

brie@programming.dev on 27 Dec 02:55 next collapse

I must be retarded. People are excited about a terminal emulator. Why?

crestwave@lemmy.world on 27 Dec 03:43 next collapse

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?

brie@programming.dev on 27 Dec 04:02 collapse

I’ve never seen a slow terminal emulator. Most terminals have tabs and splits. Never experienced compatibility issues. Don’t care about Zig at all.

Are these all the reasons? Another toy software written out of boredom.

False@lemmy.world on 27 Dec 04:42 next collapse

Yeah, I couldn’t care less what language its written in

crestwave@lemmy.world on 27 Dec 05:50 next collapse

Most terminal emulators are in fact slow and they can be a huge bottleneck if you run complex TUIs or workloads that print a lot of output.

Ever written a program that was extremely slow only for it to run instantly after removing your debug print statements? That’s because your terminal is slow.

Fast terminal emulators already exist, but they notably refused to add tabs/splits and overall tended to be quite janky. Ghostty merging these features may not be the most groundbreaking innovation, but a high quality piece of software that can drop-in replace something you use daily with some cool improvements is something to be excited about to me. :-)

brie@programming.dev on 27 Dec 05:58 collapse

Thanks, this clears things up. I didn’t know what exactly was making print IO slow.

I don’t use any complex TUIs. Pretty much everything is CLI or GUI. Which TUIs did you have in mind that were slow?

I’d like to test this soon. I’ll look for a modern TUI framework.

FrederikNJS@lemm.ee on 27 Dec 14:59 collapse

On slow terminals k9s can be rather sluggish when scrolling through the lists

brie@programming.dev on 28 Dec 00:50 collapse

Fair. I hate kube though. Most companies run just 10 pods because they cargo cult google. The complexity of it is completely unjustified

FrederikNJS@lemm.ee on 28 Dec 14:23 collapse

The right tool for the right job.

I agree that many small businesses jump to Kube too early. If your entire app is a monolith and maybe a few supplementary services, then Kube is massive overkill.

But many people also tend to overlook all of the other benefits that suddenly become very easy to add when you already have Kube, such as a common way to collect logs and metrics, injecting instrumentation, autoscaling, automated certificate handling, automated DNS management, encrypting internal network traffic, deployment tools that practically works out of the box, and of course immutable declarative deployments.

Of course you can build all of this yourself, when you need it, but once you have the foundation up and running, it becomes quite easy to just add a helm chart and suddenly have a new capability.

In my opinion, when the company it big enough to need a dedicated ops team, then it’s big enough to benefit from Kube.

brie@programming.dev on 29 Dec 00:12 collapse

Something like heroku is better for out of the box stuff like logging and autoscaling. Some companies like banks have to have their own data center. But they should write their own “tools”.

Must be fun looking at 10 pods and pretending to be in control of Google search by proxy. Autists have a peculiar way of day dreaming, as they’re extremely limited in imagination. They always seek artificial complications to cover up the fact that what they’re doing is actually not far from trivial, and without gatekeeping a school kid would be capable of doing.

FrederikNJS@lemm.ee on 29 Dec 01:15 collapse

I’m not quite sure what you are getting at… Are you implying that I’m autistic because I only have 10 pods in a Kubernetes cluster?

Presently our clusters run roughly 1400 pods, and at this scale there certainly are benefits to using something like Kubernetes.

If your project is small enough to make sense on Heroku, then that’s awesome, but at some point Heroku stops making sense… both for managing at scale, and costs. Heroku already seems to be 2-4x as expensive as AWS on-demand. Presently we’re investigating moving out of AWS and into a datacenter, as it seems that we can reduce our costs by at least an order of magnitude.

brie@programming.dev on 29 Dec 01:32 collapse

No. I didn’t mean to attack you in particular in any way. I apologize if it came off as such. I just dislike the blind copying of what Google and Facebook do. Docker is another atrocity that everyone seems to feel obligated to use.

Heroku supports moderately large amounts of requests. It’s less expensive than having a proper sysops team in most cases.

With 1,400 it’s probably worth it to move away from AWS. Something like self-hosted Triton (descendant of Solaris) cluster would be far more elegant than kube and lxc.

FrederikNJS@lemm.ee on 29 Dec 02:26 collapse

Apology accepted, and thank you for not name calling.

And yeah, if you can save the ops team salaries by picking Heroku, then it certainly might offset the costs.

When you talk about Triton, do you mean this? Because funnily enough one of their bigger features seems to be that you can run Kubernetes on top of it. It looks pretty cool though, but I must say it was quite hard to find proper info on it.

Triton also seem to push for containerization quite heavily, and especially Docker… So when you talk about Triton are you suggesting to use the Infrastructure Containers or Virtual Machines instead?

brie@programming.dev on 29 Dec 03:00 collapse

Triton and SmartOS are still Sun Microsystems people. Solaris zones preceded Linux containers by almost a decade. They lost the popularity contest, so they have to provide compatibility with kube and docker. I think infrastructure containers are zones with extra whistles.

For even better performance, I’d go with Xen and Linux unikernel. The startup time can be just 1s with such minimum overhead. It also greatly reduces the attack surface. I highly doubt you’ll be allowed for such a drastic change though.

FrederikNJS@lemm.ee on 29 Dec 14:35 collapse

My team is constantly looking for new technologies to make sure we’re not turning ourselves into dinosaurs. We all know that Kubernetes won’t last forever, something better will come along some day.

That being said I don’t really see the full value of Triton or Xen with unikernels… They might have a bit less performance overhead if used correctly, but then again Kubernetes on bare metal also has very little overhead.

Kubernetes is certainly comes with a learning curve, and you need to know how to manage it, but once you have Kubernetes there’s a ton of nifty benefits that appear due to the thriving community.

Need to autoscale based on some kind of queue? Just install the Keda helm chart

Running in the cloud and want the cluster to autoscale the nodes? Just install cluster-autoscaler helm chart

Want to pick up all of your logs and ship them somewhere? Just install the promtail helm chart

Need a deployment tool? Just install the ArgoCD helm chart

Need your secrets injected from some secret management solution? Just install the external-secrets helm chart

Need to vulnerability scan all the images you are using in your cluster? Just install the trivy-operator helm chart

Need a full monitoring stack? Just install the kube-prometheus-stack helm chart

Need a logging solution? Just install the loki helm chart

Need certificates? Just install the cert-manager helm chart

The true benefit of Kubernetes isn’t Kubernetes itself, but all the it’s and pieces the community has made to add value to Kubernetes.

brie@programming.dev on 30 Dec 00:21 collapse

That’s what I meant. It’s a standard, and the sunk cost and network effect make it practical. Same as HTTP and SSL compared to SCTP and IPSec. Isn’t it sad when you see web devs preferring native apps even more than the general public?

Packaging is very practical, but that’s a boring dead end that unfortunately lasted 20+ years. I mentioned Triton in the context of Sun folks who have done containers better and earlier, yet failed to market because Sun went bankrupt. Your long list that was packaged is nothing that can’t be developed in-house better with far less complexity. Triton provides no benefit to you, but who knows maybe you’ll need dtrace one day.

Unikernels and Xen allow function as a service (I assume you don’t need that as well). FaaS is the future, as it’s a progression of the micro services trend. Startup time and hardening are not of interest to you as well, so no reason to switch.

I’m not completely against packaging. It’s great for open source desktop apps. When it’s out of sight away from the user, it turns into a boring game.

MonkderVierte@lemmy.ml on 27 Dec 10:54 collapse

I’ve never seen a slow terminal emulator.

feddit.uk/comment/14184961

Most terminals have tabs and splits.

Most for wayland have no tabs.

brie@programming.dev on 28 Dec 00:46 collapse

Why is it so funny to see issues with a terminal running in 4k? It never crossed my mind that some folks do that.

Konsole has no tabs?

MonkderVierte@lemmy.ml on 28 Dec 11:30 collapse

Beats me.

Konsole has all the KDE dependencies.

brie@programming.dev on 29 Dec 00:00 collapse

So? You’re limited by disk space?

daniskarma@lemmy.dbzer0.com on 27 Dec 07:21 collapse

People gets excited to see something written in their favourite niche language.

brie@programming.dev on 28 Dec 00:36 collapse

I actually like Zig. I wish something like CUDA was available in it.

atzanteol@sh.itjust.works on 27 Dec 05:36 next collapse

It’s ridiculous how much time people are spending performance optimizing terminals.

xterm on a 120MHz Pentium on X11 in the 90s performed “fine”.

addie@feddit.uk on 27 Dec 08:07 next collapse

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.

atzanteol@sh.itjust.works on 27 Dec 14:10 collapse

“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.

MonkderVierte@lemmy.ml on 27 Dec 10:51 next collapse

The “Abandon all hope, ye who enter here” terminal?

Edit: that was once a comment in the sourcecode.

atzanteol@sh.itjust.works on 27 Dec 14:16 collapse

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. :-)

geneva_convenience@lemmy.ml on 27 Dec 17:26 next collapse

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.

Atemu@lemmy.ml on 27 Dec 20:03 next collapse

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.

PetteriPano@lemmy.world on 27 Dec 20:36 collapse

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… 👌

w3dd1e@lemm.ee on 27 Dec 06:39 next collapse

But does it roll down like Yakuake did before I updated Fedora and broke it? :( That’s all I want.

flying_sheep@lemmy.ml on 27 Dec 09:29 collapse

Yes, it calls that its “quick terminal” feature

w3dd1e@lemm.ee on 27 Dec 17:21 next collapse

Okay, I’m sold.

onnekas@sopuli.xyz on 28 Dec 14:13 collapse

I can’t get it to work on Linux and on the website it is only stated under MacOs features…

flying_sheep@lemmy.ml on 28 Dec 16:08 collapse

Aw, didn’t know that! Maybe make an issue? Yakuake works under Wayland, so there’s nothing that should stop them

Zucca@sopuli.xyz on 27 Dec 10:09 next collapse

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?

sga@lemmy.world on 27 Dec 10:24 next collapse

i dont have xwayland, and it worked (though i did not test enough(lack of interest))

thepiguy@lemmy.ml on 27 Dec 14:48 collapse

It works natively on Wayland. The UI uses gtk4.

Zucca@sopuli.xyz on 28 Dec 19:37 collapse

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.

fox2263@lemmy.world on 27 Dec 10:21 next collapse

Any speed comparison?

MonkderVierte@lemmy.ml on 27 Dec 11:17 next collapse

Looking at ghostty-git in AUR, zig is built on haskell? With 221 haskell libraries.

And what does it need pandoc-cli and hslua-cli for?

Crazazy@feddit.nl on 27 Dec 15:22 collapse

Checked the build.zig file for ghostty, seems to be for manpage generation. Zig itself doesn’t use Haskell though

MonkderVierte@lemmy.ml on 27 Dec 15:24 collapse

What the hell?

Atemu@lemmy.ml on 27 Dec 20:00 collapse

Chill, it’s just pandoc.

MonkderVierte@lemmy.ml on 27 Dec 21:08 collapse

But i use pandoc-bin, because i was annoyed by dozens of haskell lib updates each update run…

Atemu@lemmy.ml on 28 Dec 15:50 collapse

Unless you frequently build this from source, you don’t need to care about the pandoc build-time dep.

boredsquirrel@slrpnk.net on 27 Dec 12:21 next collapse

Looked at it, interesting, no package, installed cosmic-term instead

Uses alacritty under the hood, with tabs and tiles!

taiidan@slrpnk.net on 27 Dec 16:39 next collapse

Thought out choice but disappointing nevertheless:

My stance for now is that Ghostty will not support sixels.

MashedTech@lemmy.world on 28 Dec 14:32 next collapse

What do you think about the Kitty Graphics Protocol?

taiidan@slrpnk.net on 29 Dec 17:15 collapse

I like Kitty Graphics. I like graphics in the terminal for two reasons:

  1. integration with MC (midnight commander) style directory browser to show previews of jpegs, pdfs, etc.
  2. w3m web browser. I like being able to use that super-light weight webrowser when working/coding to keep me focused.

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?

brax@sh.itjust.works on 29 Dec 00:36 collapse

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?

MashedTech@lemmy.world on 29 Dec 22:36 collapse

Kitty Graphics Protocol seems to be the new one they’re pushing

trevor@lemmy.blahaj.zone on 28 Dec 19:22 next collapse

For those that are, for some reason, incredulous of having more performant software (???), here’s a simple program to demonstrate the point:

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.

asdfasdfasdf@lemmy.world on 28 Dec 20:16 collapse

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.

trevor@lemmy.blahaj.zone on 28 Dec 20:29 collapse

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.

Euro@lemmy.ml on 29 Dec 23:09 collapse

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

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.