Alacritty, Konsole, or something else? Which terminal emulator do you recommend?

CatLikeLemming@lemmy.blahaj.zone to Linux@lemmy.ml – 116 points –

So, Konsole shipped by default with KDE Plasma, my current Desktop Environment. While I don't have a problem with it, I am interested in what other people are using, because there very likely is something better out there.

Specifically I've seen talk of Kitty and Alacritty, although I've also read that the dev of Kitty is allegedly kind of a jerk, so I am specifically interested in how Konsole matches up to Alacritty in your experience, but other suggestions and general terminal emulator discussion are also welcome!

102

I don't get the fixation people have with terminals. I don't think I've ever used one in Linux that made me think "you know, I need to install a better terminal emulator". So I just use what comes with my DE.

I am on EndeavourOS and install packages via the command line and on top of that I primarily use Neovim, so I spend a decent amount of time in the terminal

I get that, but even when I worked as a coder using vim I didn't care. What makes, let's say, Gnome terminal a bad terminal?

2 more...

My counterpoint is terminator. The logger plugin saved my ass a few times, it remembers the commands I ran and what their output was so I don't have to.

I guess it depends on if you're willing to take advantage of the extra features, or just want to do as little CLI as possible

Nowadays I don't use the CLI much. But back in the day I used vim professionally and still didn't care. Maybe because I ran everything from within vim?

There are two kinds of powerusers, and they DO NOT understand each other one bit.

The first, like you, just wants to get shit done and want to avoid the friction of choosing/installing/configuring their tools. GNOME, Chromium, and VSCode will do just fine.

The second, like me, wants to get shit done as well, but has a strong need for a very specific workflow. I'll spend half an hour to get a toolchain working on nvim instead of using a pre-baked VSCode plugin. Not because VSCode is bad, but because I have a very (!) specific workflow and associated muscle memory and anything else distracts and unsettles me.

Some of the best engineers I know fall into either category, neither way is superior it's just how brains are wired.


Anyway I use Kitty because it allows me to split tabs into windows (not windows into tabs! ew!), has low latency with high throughput thanks to GPU rendering, and a low memory footprint.

Oh that made a ton of sense! I don't customize as much because I'm a completionist and would waste a whole week on it and not even change much from defaults anyway.

I also checked kitty and terminator and I can see the appeal. I'm used to opening separate windows and tile them using window manager commands to get a similar effect.

Thanks for your response, that was an eye opener!

I like customizing mine and switch DEs often, and use multiple across different devices. It's easier to find one good terminal that can share a config and work well on each device and DE.

2 more...

Alacritty is really nice and easy to configure, and isn't "tied" to any desktop environment, like Konsole is. Kitty is really cool for its implementation of image display. Foot is a Wayland-native alternative that is also really nice to use.

+1 for kitty. Embedded images for Ranger is super cool. The only downside is i’ve been getting rendering issues for a couple seconds after waking up from suspend but that’s probably a configuration issue on my end

Call me boring, but I really like the Gnome terminal.

There was one terminal that blew my mind in terms of speed and features, and it was Kitty: it's properly fast and it's packed with fantastic features, such as the ability to display images and play videos in the terminal itself.

However, I uninstalled it because it did one thing that really, REALLY rubbed me the wrong way: by default, it phones home to find updates.

Any software that phones home behind my back, even with good intentions, and particularly something as essential as a terminal in which you type all sorts of passwords, gets a hard pass from me. But if you don't mind, I highly recommend it.

by default, it phones home to find updates.

Do you have a source for that? I just did a rough check using nethogs (on my Arch box) and I didn't see any connections originating from kitty.

I also found this comment from the author mentioning that he wasn't a fan of automatic updates (which implied it wasn't a feature).

and no I dont want to do automatic updates, am not a fan of those. If and when you have an issue or want to try new functionality, its just a simple command to update it.

Do you have a source for that?

Yeah, my own eyes: it told me an update was available. That alarmed me enough to look around, and I found a toggle in the config file to disable automatic update checking. It was on by default.

Then I promptly uninstalled it. Too bad, because I really liked it.

EDIT: maybe I wasn't clear: it doesn't auto-update, it checks for updates. Slight difference. What bothers me with that is that it does networking operations when a terminal has no business doing any networking at all.

Hmm, sounds like you used a binary build that wasn't packaged by your distro, which explains why I didn't see any network traffic from my Kitty which I installed from the Arch repos. The config docs mentions this:

update_check_interval

The interval to periodically check if an update to kitty is available (in hours). If an update is found, a system notification is displayed informing you of the available update. The default is to check every 24 hours, set to zero to disable. Update checking is only done by the official binary builds. Distro packages or source builds do not do update checking.

Ah right. Well it's possible, I don't really remember. That was quite some time ago.

I switched from Alacritty to Wezterm because I wanted ligature support and it's also written in Rust. I really like it, though it had some issues with Wayland so I had to install a -git package but it's fixed now. It also has a bunch of features I don't use so I can't really talk about those. I you don't care about ligatures and the features, use Alacritty, it's really good.

Wez is actually pretty awesome too

I like wezterm a lot but lately have not been impressed with some breaking changes on the main branch. I know its basically a nightly release, but that's the recommended way to install according to their website. The devs acknowledged it, and recommended using a tiling manager as the fix.

Foot but its limited for the averaged user. While it does support most standards its got no ui, configuration is done through a text editor and foots config file.

Personally I like it. Light weight and robust

Kitty is a great choice But I also enjoyed konsole for its SSH Alias's

One feature foot is missing is ligatures. So if that is important to you, you'll need to look for an alternative.

The dev of foot is an awesome person though, so that could offset the missing feature for some :-)

I am a boring person and use what my DE gives me by default. Konsole is very good and I also use Yakuake a lot but I will also take a closer look at Kitty.

Kitty, hands down. GPU accelerated; native image protocol implemented by ranger, neofetch, and more; incredibly customizable; multiplexing with multiple windows and tabs; ligature support; and much more

If anybody has any questions about it, swing on over to Kitty Terminal Emulator [!kittyterimal@midwest.social]

I have to ssh in to arbitrary systems often and Kitty seemed to have compatibility issues, which I still don't grok but plainly can't use

kitty requires its terminfo be set properly on the remote host. Its best to use the ssh kitten (I have it aliased), though it's only technically required the first time on any particular box/instance. See this issue in the FAQ: I get errors about the terminal being unknown or opening the terminal failing or functional keys like arrow keys don’t work?

I guess my issue is that these are production machines that aren't really meant to be mutated and I'm generally just pulling diagnostic data off of. Often I'm ssh'd in to a hub machine and jumping in to edge devices, so I couldn't run ssh kitten if I wanted to. I think I'm probably an edge case, but it is very frustrating.

I found Wezterm to be quite nice.

Same, nice to see it get some love. I've tried a whole bunch of them, Wez is also a super nice guy and very active on GitHub.

I’ve been using Terminator for years primarily because it’s portable. It predates a lot of the portable terminals in vogue right now. I haven’t really noticed a difference in using any of the newer ones so I haven’t switched. There’s some endowment effect there and sunk cost dotfiles.

If there’s a good comparison someone knows about that I should scope to understand what I’m missing I’m always curious!

Honestly, Konsole is fantastic. On Gnome I use Blackbox, on Sway I use Foot, but if you’re on KDE you don’t really get better than Konsole.

Alacritty and Kitty are both terminals I used to use back when I was on i3wm, they’re perfectly usable, but I don’t think the average user will gain any tangible benefit from replacing Konsole.

I've used GNOME's terminal, Konsole, kitty, st, cool-retro-term, Alacritty, foot, and Wezterm.

The things I want from a terminal emulator are:

  • Ligatures
  • Customisability
  • Icon support / good font management
  • High-ish performance

Wezterm is afaik the only one with all of those.

Konsole is actually a pretty good terminal emulator, its big downside is that it looks horribly out-of-place in anything other than Plasma. So as long as you stay on Plasma, Konsole is a good choice. If you ever move to a WM or something, I recommend foot or Wezterm.

Alacritty has some degree of customisability, Konsole has more, but either way it's nothing when compared to Wezterm. It is really fast though!

The thing that skews the duel in favour of Konsole for me is the ligature support. I use neovim for programming and we all know code ligatures are a godsend, so ligature support in the terminal is very much a thing that I want.

I just switched to wezterm and I’m really liking it so far. Takes some time to setup and tweak, but you can do almost anything. Works “everywhere“ too.

The only thing I’m missing so far is broadcast input.

Kitty but only if you don't mind configuring everything in a config file. It has GPU acceleration so it will be faster than Konsole when showing 300+ lines of output on older hardware. Alacritty had a lot of issues on my installations so can't recommend it

I'm just curious, when do I have to care about virtual terminal speed? When do you need that GPU acceleration?

From my experience, you only really need it when you want to get a lot of output (try find /). In my cases it's more than 2 times faster on GPU accelerated terminal emulators. And I believe you can't display images on non-accelerated ones

Just tried "time tree ~" and "time fd .mkv /" in alacrity and konsole. Konsole was actually beating it by fractions of a second in most runs. Alacritty was only slightly faster at treeing after a few runs.

It's always faster after a few runs. But in my case it's like 10 seconds faster. Though I have an old HDD so maybe that's the reason lol

Konsole can display sixel images (same as kitty I believe), though I don't know anything about it's implementation.

Kitty if you have a GPU and run programs that have a lot of output (build scripts and emerge). It uses the GPU for better performance.

kitty is great, for me it's similar to mpv: it does what it's supposed to do, no fluff. Just straight up performance.

Kitty is great until you SSH into a machine where it's not installed and try to use tmux or some other commandline apps

If it's a machine you have control over you can install the terminfo. Or setting the TERM variable to something like xterm-256color when connecting, that usually works, though I haven't tried with tmux.

I usually just change TERM to xterm but I've heard that isn't a good way to do it

Also I'd rather not install stuff on every server I ssh into, I've installed it on test servers but wouldn't want to do it on prod

@flashgnash @Laser Connecting once with its ssh kitten resolves this by uploading appropriate terminfo files to the user's directory.

I didn't realise it was only once you had to use it

@flashgnash Yep, just once to transfer the terminfo files and resolve this.

The SSH kitten is pretty useful though. If you use it in combination with kitty's --single-instance mode, you can start new kitty windows in the same SSH session without logging in again using its shared connection feature. Hugely convenient for how I work at least.

I have used it for that feature before, is there not a concern around defense in depth there though? If you've got a rogue program running could it not then hijack your ssh connection and infect that machine as well?

I discovered wezterm a few weeks ago and it is really neat, works even on windows. So I can share config files between my private and my work machine. It is kinda similar to alacritty but I don’t like how the developers of alacritty talk to people on GitHub, like they are really arrogant.

since you seem to consider alacritty, which is pretty minimal in features, maybe give foot a shot as well. i find it fits best into tiling wm land (sway, river, etc.) so might not be your cup of tea...

Been using foot for like 5 years now. It just gels so damn well with tiling wms and super fast.

what does it better than any other terminal for twms?

It does pretty much nothing in terms of fancy windowing and layout features. No tab interface, split screens, etc. I let those handled by my TWM and it just starts really fast.

I use i3 and don't have a mouse. Rn I'm using Alacritty because I want to keep things minimal. Is foot a good fit for my usecase?

not sure for i3, i think foot is wayland-only. but i have the same setup with sway and am very happy

urxvt is the only terminal I'll use. Every time I try something else I come back to it because of some basic thing that's not right - usually font rendering which urxvt is one of the few that works well with scalable fonts. It's fast and simple and does everything I need without any bloated stuff I'll never use.

If you can't give evidence, it's not nice to spread rumours

I like Prompt.
I use Silverblue and a lot of Distrobox containers, which is why I enjoy it that much.
I discovered it through Bazzite.

Before that, I used Gnome Console or Black Box, because they're based on Libadwaita, good looking and very simple, which is enough for my needs.

Konsole is excellent. Wezterm is even better, and can pretty much do everything, everywhere.

There's no need to bother with the others if you like either of these.

TLDR: try them out, see what you like. It's a relatively easy switch-out, it's not like you're debating different web stacks.

I used zutty for awhile. It was fine and lightweight, but broke when I switched back from the nvidia drivers to nouveau (it's an older laptop that has no reason to milk every last bit of performance out of its gpu).

Now I'm using Alacritty. I like that I can configure it in a .yml file instead of needing to use my mouse, I like that it's written in Rust, I like that I got it to do transparency within minutes. I love the vi mode.

On my daily driver I use Terminator. I like the multiplexing/tabs/panes, the infinite scrollback when needed, and the logger plugin when needed. I might see if I can get it to do transparency tomorrow.

xterm has always treated me well too. Just a good, solid choice.

I guess my two biggest pieces of advice re: terminal emulators are

  1. use tmux, it's extremely convenient once you get the hang of it. It's like any terminal-based text editor: hard to learn, but such a pleasure to use once you've got it down. Why waste time moving over to grab your mouse when you could just hit 2-3 keys?

  2. configure the hell out of whatever you pick. It doesn't feel comfortable, like it's your command line—in the same way that it's your bed, or your chair, or your computer—until you've configured it. After you do, it just feels comfortable. Change the color scheme to all custom colors, change the font, change the shell, change the sounds, change the cursor blink rate, disable cursor, disable animations, disable text output, enable scrollback, enable logging, enable transparency, enable autopilot, adjust the retro encabulator, fasten your seatbelts, eat your veggies, stay in school.

  3. use transparency. There's just something so pleasant about something more than a solid color background.

I have been using Terminator for years now, because you can easily slice and dice the window into several terminals, and it is reasonably configurable. But then, as I am completely happy with it, I never ventured out to find an even better one, so YMMV.

Kitty. Don't really care about the dev. I don't use software or not just because the devs are assholes, as long as they're not cannibals or pedos ofc. Even less so if it's FOSS.

Oh, I’m missing out on the latest “xyz dev is a jerk” drama again? Oh well …

I use Kitty, it’s a great terminal emulator that is easily extendable and gives me all the features I like.

I use Tilix, mostly because I'm used to it. I should probably upgrade to the plethora of new GTK4 terminal emulators, but I just can't be bothered. Plus none of them support tiling.

It all depends by what you need it for.
I remember the first years I approached Linux I wanted to try every bit of software and that made me waste a lot of time and energy because I hadn't already learned to ask myself that question.
If you just need a terminal to run updates and basic commands, stick with what your distro is shipped with. It will be better integrated and well tested and will save you a lot of time.
If you need something in specific instead, you'll be able to find the software with a feature set that will match all your needs.

I've been using Alacritty (on Wayland) for the past few years. I like it's customizability. My only real complaint is that there are times when I really miss having scrollbars. After reading this thread I'll have to give kitty a try. I think I tried it a couple if years ago and was not impressed, but maybe it has gotten a lot better since then.

Having looked closer, kitty just looks too complicated. I just want a nice terminal. Kitty doesn't have scrollbars either. I'll stick with Alacritty for now.

Hey, have a look at Wezterm. I was an Alacritty user for 3 years, but always wanted a scrollbar and tabs. Wezterm is what you are looking for.

I really enjoy alacritty, it provides you a terminal with nice defaults.

For a bit more base functionality, such as tabs or split panes, you could look into kitty or wezterm for example.

In the case of alacritty you'd need to look at other tools such as tmux or zellij for multi-terminal workspaces in one window.

I'm sort of in the same position I guess. I'm interested in other options, but so far Konsole has more than satisfied my needs. It does everything I need and is easy to customize.

I use Gnome Terminal and Mate Terminal on my laptop. Nothing fancy, they just work. They do what I need (which is run a shell), they support tabs, and transparency is just nice to have. I also run Tilda because once in a while I need to enter a quick command without changing desktops.

Tilix

For me that's the one, even though I've also been using KDE plasma for the better part of the past ten years. Very configurable, going as far as to have an option to disable CSD. It also looks like a proper modern app without being dumbed down.

I was a fan of Alacritty and used it for the last 3 years, but I was frustrated by the lack of features (no scroll bar, no native tabs) and the disrespectful way the developers handled feature requests.

A few weeks ago someone on this site recommended Wezterm, so I tried it out, and it's amazing. It's everything I was hoping Alacritty would be or could become.

Read this thread for more details, specifically the reply by wez: https://github.com/wez/wezterm/discussions/1769

I was a fan of Alacritty and used it for the last 3 years, but I was frustrated by the lack of features

You were a fan, but didn't realise that it's minimal on purpose?

It's AFAIK the only popular, minimal, GPU accelerated terminal emulator. It doesn't have tabs, multiplexing, and other features because it's not supposed to. Your wm/tmux handles that already, and scrollbars are waste of screen space.

Would you also complain that a flat head screwdriver is missing those cross bits to help you unscrew phillips heads?

On Cosmic you can tile multiple windows in tabs. Tabs are essential for me, I tried Alacritty (and it had quite some issues but I got it to work) and switched back to Konsole

Wherever possible I use the XFCE defaults, as I basically turn Budgie into XFCE. So I use the XFCE-Terminal, and it's probably the most comfortable TE I've tried.

I just never would recommend mixing Gnome's Terminal and Konsole. Gnome and KDE never seem to play nice with each other. Besides that, go wild.

Would be foot but monaspace font doesn't work that well, so kitty

As long as I have my aliases working and I can strip away unnecessary gui clutter, I'm fine with whatever.

Konsole and Kitty are objectively better than alacrity. So it's a question of which of those to use. Konsole if you use the Breeze application style, and Kitty if you don't. Konsole has the best keybinds and it actually has a scrollbar, but kitty doesn't require breeze.

Konsole doesn't require Breeze. It's themable, like most KDE applications. It does ship with a Breeze terminal color scheme, but that's just the default. Many more are available out of the box and creating new ones is easy.