My progression has been st -> kitty -> ghostty. I wanted to love st, but found too many unpolished corners. Kitty was great, but it felt like the exact opposite of st. Very large and opinionated. ghostty, at least originally, was new and something between st and kitty. With claude code I wonder where the landscape of personalized software will land. st and others may be on to something in this era.
Funnily enough, I saw this too. Yesterday I upgraded from ghostty 1.0.0 to 1.2.0 and was hit with startup delay. 1.0.0 didn't have it. My delay was around 5s on a fresh reboot. However, after I opened a few ghostty windows, the delay went away. I'll be keeping my eye on it.
I spent a long time on the gtk vte based terminals (sakura, I wrote my own called svte later), then to st until i had too many patches stacked, then alacritty, but that took a long time to get to because I couldnt figure out how the kerning was different than ST!
Whoever designed the default bindings for kitty clearly has a similar brain to mine. I think I adapted to those keybindings in about an hour, and can't use any other terminal without remapping the keys to match kitty.
My favorite aspect of kitty is the infinite scrollback. My scrollback is 10000 lines long and scrollback buffer itself can store 1 GB worth of history.[0] When you hit a certain shortcut, you can use any pager to search through the scrollback. It's all very fast.
Kitty terminal can essentially replace a big part of a linux desktop environment, if you want it to. It's infinitely customizable AND has own opinions at the same time.
Also my interactive scrollbar change was recently merged in, so if that was stopping you, you can now replace iTerm on your mac with it :)
I both see enormous value mixing text and console, and also worry that TUI will overcomplicate and add even more unnecessary embellishment than it already is trending towards? Semi grump opinion. But it feels weird introducing a new canvas.
I do like the idea of graphics being online in a terminal session. Not a captive app experience in a text/graphic UI, but just cli commands that can have some more visual output too.
> Kitty terminal can essentially replace a big part of a linux desktop environment, if you want it to. It's infinitely customizable AND has own opinions at the same time.
i'm interested in this idea. can you expand on that? what functionality are you replacing? i don't currently use a DE and i get along pretty well doing most of my work in alacritty and firefox-esr. occasionally i drop into pcmanfm if i need a visual file browser, and i use feh to preview images.
I'm on wayland. Kitty can be used as a layershell window. So you can build panels, taskbars, etc if you were so inclined. For example, you want fastfetch or htop as a live desktop background? Kitty can do that.
That reminds me I once tried to write a terminal emulator for libretro so I could run it on RetroArch with cool shaders. I had completely forgotten about that project...
Pretty weird that kitty wouldn't support custom shaders. It already has GPU rendering so why not.
I'm probably the extreme minority on HN (0.00001%) but I pretty much never used any CLI applications. Just never really needed them. But recently at work (we use Macs) I had some tasks which need the Terminal.app so I kinda tried to dig in and learn some stuff but whenever I feel I already know something (more or less) there is always some new stuff entering the picture next day. Shell, console, terminal... now a terminal _emulator_ :insert exploding galaxy brain meme:
A shell is not a terminal emulator. It's a program that does text I/O (perhaps with a terminal, perhaps not) and implements basic system functionality like executing programs and often scripting.
Most people interact with a shell through a terminal emulator, though. The alternative is something like emacs's eshell. Or an actual "terminal" which hasn't been even available for purchase for many decades.
I wouldn't either, which I why I didn't include that interaction in the definition I gave. A shell just implements basic system functionality, it doesn't necessarily function as a UI.
"console", "terminal" and "terminal emulator" all refer to the same thing. "shell" is the read-eval-print-loop interface you use to work in the terminal.
Please don't confuse the novices. A console is either a special kernel device or a UI subsystem; a terminal is a physical piece of kit; and a terminal emulator is an application that runs on a general purpose computer that emulates one of the aforementioned pieces of kit.
You're assigning a rigidity to these terms that they simply don't have. A "console", in the oldest sense of the term, is any place where a user interfaces with a computer, or more broadly with any kind of machine.
>Borrowed from French console (“bracket”, noun), from consoler (“to console, to comfort”, verb). Sense of “bracket” either due to a bracket alleviating the load, or due to brackets being decorated with the Christian figure of a consolateur (“consoler”), itself perhaps a pun on the first sense (alleviating load). Originally used for the bracket itself, then for wall-mounted tables (mounted with a bracket), then for free-standing tables placed against a wall. Use for control system dates at least to 1880s for an “organ console”; use for electrical or electronic control systems dates at least to 1930s in radio, television, and system control, particularly as “mixer console” or “control console”, attached to an equipment rack.
A "terminal" is a text-only console. For a long time, "terminal" and "console" were synonymous. By metaphor, in the same way that a "desktop" is not a desktop, referring to a terminal emulator as a console is perfectly acceptable, and everyone will understand what is meant.
On the contrary, I've quite explicitly pointed out that a console is one of several things, in contrast to the false claim that these are all just the same thing. Go back and read the FGA.
A console is not even necessarily the same abstraction as a terminal, let alone always synonymous with a terminal emulator, and "referring to a terminal emulator as a console" is not only not perfectly acceptable, it is downright erroneous on all of the platforms on which Kitty runs including the platform used by unpopularopp where XNU's console is very specifically a serial or video special kernel device. You are confusing the novices, too.
>"referring to a terminal emulator as a console" is not only not perfectly acceptable
To clarify, you don't like it.
>it is downright erroneous on all of the platforms on which Kitty runs
You make it sound like saying something "erroneous" (which of course I don't agree it is) is some kind of magic spell that does something. "Kitty is a console." What, what did that do?
>You are confusing the novices, too.
Uh huh. Literally no one is confused by these terms, you're just disagreeing with the usages. Say to someone "open up an xterm console" and I guarantee you they will understand that you want them to start an instance of xterm, not that you're having a stroke.
>XNU's console is very specifically a serial or video special kernel device.
If a system uses a word to refer to something specific, that doesn't co-opt the meaning of the word. An "XNU console" and a "console" in the broad sense are distinguishable concepts.
You've only been within earshot of slipshod people. (-: And you are typing below a headline that calls the thing a terminal emulator, so you cannot really say that you've never encountered one referred to as such.
Because people say "open a command prompt". That can be a terminal emulator, a kernel console on screen+keyboard, a terminal via serial port console, or a ssh connection, and usually it doesn't matter which.
At least Microsoft finally stopped making people think (on Windows NT, no less) that these were "DOS prompts", though, which used to be a very common misnomer.
You'll rarely find them actually called "command prompt" on the operating systems that Kitty runs on, though, including the operating system that unpopularopp uses. That's largely a Microsoft-ism, and one that has in fact been quietly eroding in the Microsoft world for years since the advent of PowerShell and Microsoft Terminal, with people now more and more writing and talking about opening "PowerShell" or "Terminal" rather than opening "command prompt".
On the operating systems that Kitty runs on, they're called terminal emulators, especially in their own doco and blurbs (as with Kitty, here), and when it comes to desktop menus usually (in contrast to the Microsoft Windows "command prompt" shortcut) have their actual names (Konsole, XTerm, UXTerm, RXVT Unicode, and so on being listed under their names, with GNOME Terminal and its derivatives and Apple's Terminal being somewhat exceptional rather than the rule).
Long story short: Terminals were the result of moving teleprinting stuff from paper to the screen. The shell is program that accept commands and execute the relevant program and I’m pretty sure console was the whole apparatus.
But now we moved the whole protocol to a program (an emilator) instead, and console refers to the initial boot environment, the attached display, keyboard pair (because you can still use another computer as the interface for control).
But the protocol is fairly old and some stuff clashes with current paradigms for using a computers.
I've been using a terminal extensively for over twenty years. However, I was never able to get to the whole Vim and mouse-less keyboard only setup. If you can live your life to the fullest without using the terminal, I kind of envy you.
I really like kitty. The customisability is off the charts, especially the remote control feature and the kittens feature. You can do almost anything with a combination of those two.
At the same time, it's perfectly usable with opinionates defaults.
Run `kitten` and check out the default kittens, there are some gems in there.
Is it really that hard to add Windows support for these terminal projects? I understand they are more valued in Linux circles but it's not like nobody on Windows is using the terminal.
I've been using alacritty [0] for a while now. Really happy with it. I prefer it over the Windows Terminal, as it feels faster for me. I run a single instance with WSL on the desktop and use tmux for multiplexing. Executing powershell inside tmux isn't an issue. If I need an elevated shell, I use gsudo [1].
Probably the best terminal emulator in existence today. It really pushes the envelope of what's possible to do with terminals. Also has superb font rendering and is very customizable.
kitty is great, but I stopped using it because iTerm's terminal search feature - which I use almost daily - is much more ergonomic. The existing solution in kitty (pipe scrollback buffer to something like less/vim and search with /) is a lot worse IMO which is unfortunately a dealbreaker for me
The author is an interesting character of strong, often contrarian, opinion. He's also the guy behind the Calibre e-book software, which was largely written in Python 2 long after that was deprecated. He even wanted to maintain Python 2 himself rather than rewrite Calibre, but he eventually realized that wasn't feasible and ported Calibre to Python 3.
This reads as if he started Calibre when Python 2 was already deprecated..but to be clear, it was started some years before the first release of Python 3, 14 years before the deprecation.
And at the time of the beef, many bigger apps were not ported yet (some even till today). The authors' opinion was more an extremer version of something the whole community felt at the time.
Also realized this when trying to get terminus to work. I like the simplicity of foot in wayland and st/alacritty in Xorg. I wish I could find a terminus replacement and I do give it a few hours each year but still haven't had any luck...
I switched to kitty after a periodic assessment of my user environment. Turns out, of modern terminal emulators, only Kitty is under a copyleft license. Considering, most of them are pretty capable and competitive, this was enough to switch.
What I don't like:
- No remote terminal persistence solution in the works + termux/screen incompatibility.
- Two modes of font rendering and both are meh. Legacy is uneven and jagged, modern has unbalanced perceived font thickness for dark-on-light and light-on-dark, and the modifications can only make it more unbalanced.
Have no complaints besides that. Default keybindings are ok, performance is great, features are plenty, configuration is easy. Font config `kitten` is great.
Looks like the site owner just purged everything they host and changed some rules in the last 24 hours, I now get a user agent error trying to re-upload. Wonderful.
Let it go. He made a frustrated remark in a support thread 14 years ago where the OP escalated into calling him deliberately rude. Even if he hadn't changed at all over the years he has been contributing to open source with a product used by nontechnical people for 2 decades and deserves some grace for that.