I still haven't been all that impressed with Ghostty, I get the need for a new terminal environment, but how does this really compare to other options? Is it the GPU focused rendering engine? I...
I still haven't been all that impressed with Ghostty, I get the need for a new terminal environment, but how does this really compare to other options? Is it the GPU focused rendering engine? I still don't see anything like a quake mode implemented. Am I just missing something here?
It's in there: https://ghostty.org/docs/config/keybind/reference#toggle_quick_terminal Do yourself a favor and skim the About Ghostty and Configuration pages of the documentation. Then install...
I still don't see anything like a quake mode implemented
Do yourself a favor and skim the About Ghostty and Configuration pages of the documentation. Then install Ghostty and try it out for a week.
I can write a big long comment explaining exactly why I like it so much, but you would be much better off just trying it out yourself. I will share this though:
I have tried many terminal emulators in the past: urxvt, termite, alacritty, tilix, kitty, foot, st, konsole, zutty, xfce-term, and gnome-terminal, off the top of my head. Every single one of those terminal emulators failed in at least one criteria I considered important:
Font rendering
Scrollbar
Clickable URLs
Automatically copy text selected with the mouse
Infinite scrollback/output history
Doesn't consume a ton of memory to support infinite scrollback
Doesn't consume a ton of resources while sitting idle
Doesn't have high resource usage every time it outputs
Ghostty now supports all these features, correctly, without caveats and with good performance. In as much as software can "just work", Ghostty does a very god job while remaining highly flexible and configurable.
Ghostty's main draw is its focus on good engineering in general. There's a big emphasis on having good defaults and maintaining high quality in multiple categories, i.e., fast and feature-rich and...
Ghostty's main draw is its focus on good engineering in general. There's a big emphasis on having good defaults and maintaining high quality in multiple categories, i.e., fast and feature-rich and efficient and native.
E.g., see this comment thread for a random example of the little touches they do. The README also does a good job of selling the project's ethos.
That said, for most workflows, I don't really have a problem with the default terminal in whatever DE I'm using. xfce4-terminal, gnome-terminal, konsole, and st are all perfectly fine in their respective places if you're not running something very output-intensive.
The main place I've found a use for Ghostty is on macOS, as the default terminal emulator there leaves a lot to be desired. But I did also have to config Ghostty to get rid of the Shift+Enter/Control+Enter escape codes, as it was messing me up quite a lot when typing.
From what I remember reading from his previous posts, h-mo isn't necessarily saying that his terminal emulator is "the best" in a category, but maybe better than average in all the categories?...
From what I remember reading from his previous posts, h-mo isn't necessarily saying that his terminal emulator is "the best" in a category, but maybe better than average in all the categories? (Checked the about page for Ghostty, it's close enough to my interpretation I feel.)
I switched to Ghostty basically because I started using Zellij, Helix, and Yazi together in place of an IDE, and I was running into issues with the Gnome terminal (I honestly don't remember what...
I switched to Ghostty basically because I started using Zellij, Helix, and Yazi together in place of an IDE, and I was running into issues with the Gnome terminal (I honestly don't remember what issues anymore). I tried Alacritty first, ran into some limitation there as well, then tried Ghostty and had no issues.
That's probably not very helpful haha, but I guess my takeaway is that Ghostty just seems like a really well constructed terminal emulator. They care a lot about correctness (as can be seen from this post).
Kitty is done by the same dude as Calibre and he has a "my way or the highway" attitude to programming. He does technically cool stuff, but I don't use his apps unless I have to (Calibre) because...
Kitty is done by the same dude as Calibre and he has a "my way or the highway" attitude to programming. He does technically cool stuff, but I don't use his apps unless I have to (Calibre) because of his general attitude towards good programming practices.
I used to use Wezterm, because I do like applications that use Lua for configuration - but in the end it turned out to be a bit wonky. Ghostty with a few config tweaks is good for me.
I don't think you can fault him for this? That same attitude of stubbornness and perhaps rudeness but definitely bluntness (we all have bad days) is what led him to push so hard on moving the...
"my way or the highway" attitude to programming
I don't think you can fault him for this? That same attitude of stubbornness and perhaps rudeness but definitely bluntness (we all have bad days) is what led him to push so hard on moving the terminal ecosystem forward.
If he was a more nice and gentle person I don't think he would start out his programming career by reverse engineering DRM. He bought a product and felt so wronged that it led him to create a driver and eventually that turned into Calibre. The ncurses maintainer was similarly uncooperative and that led him to create Kitty and that helped significantly to push the terminal ecosystem forward!
I think you can have some respect for a person and what they've achieved while not wanting to use their works. He does, as others point out, do technically cool things, and can drive ecosystems...
I don't think you can fault him for this?
I think you can have some respect for a person and what they've achieved while not wanting to use their works. He does, as others point out, do technically cool things, and can drive ecosystems forward with new ideas, but his attitude makes his software unpleasant and sometimes unsafe to use. There are whole articles, for example, about his angry response about a root privilege escalation bug being intended behavior; his response to Python 2 end-of-life was to close the bug by *arguing that it would be easier for him to single-handedly continue maintaining Python 2 than migrate Calibre to Python 3. That Calibre is so opinionated and yet seems to be the only software of its kind is unfortunate; I just can't deal with the way it clobbers files, for example. By coincidence I had some interactions with the developer when we were both in past lives (and I certainly won't say that I was an easy person to deal with at the time), and he's just not someone I would prefer to have to interact with; now, he puts so much of himself in his software that that preference also extends to his software.
I have to wonder a bit if that type of opinionated software comes out of a Physics culture, and there's a mismatch between his software taking that perspective while being very widely used, non-research software. The (physicist) developers of Gwyddion, some software for scanning probe microscopy, had a similar Python 2 problem: with them, if I understand correctly, it came from them feeling that Gtk > 2 was bad and not to be used, which meant in consequence that Python 3 could not be used, which meant in turn that they would not migrate to Python 3 unless the Gtk developers changed their views entirely. In their case, at least, Python was only used for scripting. From our side as researchers, the response was "ok, guess we'll write our scripts in Python 2". From the side of developers of distributions and for packaging, the response tended to range from, "ok, guess our users will be getting packages of your software with scripting ripped out" to "your software is a security risk and we'll make it actively difficult for users to install".
He's perfectly within his rights to do things like he wants to. IIRC he even wanted to rather fork Python 2 and keep a private fork than port Calibre to Python 3 :) But I personally don't want to...
He's perfectly within his rights to do things like he wants to. IIRC he even wanted to rather fork Python 2 and keep a private fork than port Calibre to Python 3 :)
But I personally don't want to support that kind of behavior by using their software if I can avoid it. Calibre has no real alternatives so I just deal with the unique UX patterns and very specific ways it operates contrary to any established standards.
With terminals I have options so I choose not to use Kitty.
Oh, I didn't realize the kitty guy also did Calibre. I'm not proselytizing kitty here (though it is what I use -- and since I have no complaints and am satisfied with it so far, I don't have any...
Oh, I didn't realize the kitty guy also did Calibre.
I'm not proselytizing kitty here (though it is what I use -- and since I have no complaints and am satisfied with it so far, I don't have any desire to switch atm), I just know it is GPU-based, so people choosing ghostty must be choosing it for other reasons beyond just that.
Tech wise kitty is fucking amazing, features that were first in kitty have been ported to others, like the ability to show images in terminals, some keybinding tricks etc. But still not supporting...
Tech wise kitty is fucking amazing, features that were first in kitty have been ported to others, like the ability to show images in terminals, some keybinding tricks etc.
I still haven't been all that impressed with Ghostty, I get the need for a new terminal environment, but how does this really compare to other options? Is it the GPU focused rendering engine? I still don't see anything like a quake mode implemented. Am I just missing something here?
It's in there:
https://ghostty.org/docs/config/keybind/reference#toggle_quick_terminal
Do yourself a favor and skim the About Ghostty and Configuration pages of the documentation. Then install Ghostty and try it out for a week.
I can write a big long comment explaining exactly why I like it so much, but you would be much better off just trying it out yourself. I will share this though:
I have tried many terminal emulators in the past: urxvt, termite, alacritty, tilix, kitty, foot, st, konsole, zutty, xfce-term, and gnome-terminal, off the top of my head. Every single one of those terminal emulators failed in at least one criteria I considered important:
Ghostty now supports all these features, correctly, without caveats and with good performance. In as much as software can "just work", Ghostty does a very god job while remaining highly flexible and configurable.
Ghostty's main draw is its focus on good engineering in general. There's a big emphasis on having good defaults and maintaining high quality in multiple categories, i.e., fast and feature-rich and efficient and native.
E.g., see this comment thread for a random example of the little touches they do. The README also does a good job of selling the project's ethos.
That said, for most workflows, I don't really have a problem with the default terminal in whatever DE I'm using. xfce4-terminal, gnome-terminal, konsole, and st are all perfectly fine in their respective places if you're not running something very output-intensive.
The main place I've found a use for Ghostty is on macOS, as the default terminal emulator there leaves a lot to be desired. But I did also have to config Ghostty to get rid of the Shift+Enter/Control+Enter escape codes, as it was messing me up quite a lot when typing.
From what I remember reading from his previous posts, h-mo isn't necessarily saying that his terminal emulator is "the best" in a category, but maybe better than average in all the categories? (Checked the about page for Ghostty, it's close enough to my interpretation I feel.)
As far as (q?)uake mode, it does support it, except for Gnome users
I switched to Ghostty basically because I started using Zellij, Helix, and Yazi together in place of an IDE, and I was running into issues with the Gnome terminal (I honestly don't remember what issues anymore). I tried Alacritty first, ran into some limitation there as well, then tried Ghostty and had no issues.
That's probably not very helpful haha, but I guess my takeaway is that Ghostty just seems like a really well constructed terminal emulator. They care a lot about correctness (as can be seen from this post).
afaik kitty also uses a GPU-based rendering engine, so it can't be that.
Kitty is done by the same dude as Calibre and he has a "my way or the highway" attitude to programming. He does technically cool stuff, but I don't use his apps unless I have to (Calibre) because of his general attitude towards good programming practices.
I used to use Wezterm, because I do like applications that use Lua for configuration - but in the end it turned out to be a bit wonky. Ghostty with a few config tweaks is good for me.
I don't think you can fault him for this? That same attitude of stubbornness and perhaps rudeness but definitely bluntness (we all have bad days) is what led him to push so hard on moving the terminal ecosystem forward.
If he was a more nice and gentle person I don't think he would start out his programming career by reverse engineering DRM. He bought a product and felt so wronged that it led him to create a driver and eventually that turned into Calibre. The ncurses maintainer was similarly uncooperative and that led him to create Kitty and that helped significantly to push the terminal ecosystem forward!
I think you can have some respect for a person and what they've achieved while not wanting to use their works. He does, as others point out, do technically cool things, and can drive ecosystems forward with new ideas, but his attitude makes his software unpleasant and sometimes unsafe to use. There are whole articles, for example, about his angry response about a root privilege escalation bug being intended behavior; his response to Python 2 end-of-life was to close the bug by *arguing that it would be easier for him to single-handedly continue maintaining Python 2 than migrate Calibre to Python 3. That Calibre is so opinionated and yet seems to be the only software of its kind is unfortunate; I just can't deal with the way it clobbers files, for example. By coincidence I had some interactions with the developer when we were both in past lives (and I certainly won't say that I was an easy person to deal with at the time), and he's just not someone I would prefer to have to interact with; now, he puts so much of himself in his software that that preference also extends to his software.
I have to wonder a bit if that type of opinionated software comes out of a Physics culture, and there's a mismatch between his software taking that perspective while being very widely used, non-research software. The (physicist) developers of Gwyddion, some software for scanning probe microscopy, had a similar Python 2 problem: with them, if I understand correctly, it came from them feeling that Gtk > 2 was bad and not to be used, which meant in consequence that Python 3 could not be used, which meant in turn that they would not migrate to Python 3 unless the Gtk developers changed their views entirely. In their case, at least, Python was only used for scripting. From our side as researchers, the response was "ok, guess we'll write our scripts in Python 2". From the side of developers of distributions and for packaging, the response tended to range from, "ok, guess our users will be getting packages of your software with scripting ripped out" to "your software is a security risk and we'll make it actively difficult for users to install".
He's perfectly within his rights to do things like he wants to. IIRC he even wanted to rather fork Python 2 and keep a private fork than port Calibre to Python 3 :)
But I personally don't want to support that kind of behavior by using their software if I can avoid it. Calibre has no real alternatives so I just deal with the unique UX patterns and very specific ways it operates contrary to any established standards.
With terminals I have options so I choose not to use Kitty.
Oh, I didn't realize the kitty guy also did Calibre.
I'm not proselytizing kitty here (though it is what I use -- and since I have no complaints and am satisfied with it so far, I don't have any desire to switch atm), I just know it is GPU-based, so people choosing ghostty must be choosing it for other reasons beyond just that.
Tech wise kitty is fucking amazing, features that were first in kitty have been ported to others, like the ability to show images in terminals, some keybinding tricks etc.
But still not supporting the dev :)