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
It comes with KDE, supports tabs, themes, and loads very fast.
I don't really need more from a terminal than that. When I, rarely, need more advanced features like window splitting and session management I also use Zellij (previously I used tmux).
My favorite is Alacritty but I don't use it because of stability issues lol. Kitty is popular now. It seems to have some questionable update policy but it's fixable. It supports plugins (kittens), tabs and most of the common features. Though the configuration is done in a text file. It doesn't have a GUI for it. For that I'd recommend Konsole
Wezterm is my favourite because it's really configurable and supports ligatures. Konsole is also quite nice. Generally I'm in favour of using whichever one comes with your DE, or Wezterm if you use a WM.
Kitty is probably the most popular one, but I don't like it cause no ligature supportno acceleration it claims it has good font management, but fonts never worked properly in my experience.
Alacritty and Foot are also popular for their performance. Alacritty does have some stability issues though.
I use foot because it's wayland native and the developer is a very nice person. Only thing missing from it for me is ligature support.
A close second for me is WezTerm. It is very full featured, although I do not use a lot of its features. Developer is also extremely nice and helpful. It does have ligature support.
I personally use tiling window managers, so I have no need for built-in tiling / tabbing features.
Ptyxis, formerly Prompt. I used urxvt for many years but eventually settled on GNOME Terminal after transitioning to the GNOME environment for most of my devices. Ptyxis is a slick and quick container-centric GTK 4 terminal that fits well with my Fedora Silverblue container-based workflow.
Well I'll throw in my endorsement for kitty. I like the ligature support, the fact that it can be configured to hide all UI, and it uses text files for configuration that I can put in my dot files repo.
There are some particular features that I use constantly:
I can yank a file path to the prompt from previous output by pressing ctrl+shift+p then f then a 1-character label. I can do the same with a git hash (or other hash) by pressing h instead of f.
I can scroll back and search previous output using only the keyboard with ctrl+shift+h which puts the terminal history in a pager.
I can get the output of only the previous command in a pager with ctrl+shift+g. Or jump to previous prompts with ctrl+shift+x and ctrl+shift+z.
I use kitty-scrollback.nvim which replaces that pager with neovim so I can use all of my editor features to search history, copy what I want, etc.
Alacritty, launching tmux with fish shell. The latter shell could easily have been zsh. But a good and fast terminal w/tmux is such a nice thing to have.
Any time to wish you had bothered with tmux, is when it's already too late. If you go for this, you'll never look back.
I like just good old gnome terminal. Theming scripts work well with it, like the gruvbox one that has like a hundred color themes. it's got all the right features. just works
I've used Alacritty for a long time, but I am looking to switch since they moved to TOML for their config file. The migration they advertised did not work, and looking for some sample files took me to a GitHub issue thread where the devs are just... dicks. It was rather easy to write a new config file from scratch, but their attitude is just ridiculous.
Wezterm, because it lets me easily disable all keymaps and then reenable only those few that I use. I use tmux to handle most things, and with wezterm I don't have to worry about tmux clashing with wezterm's krymaps.
Once upon a time, I loved Xfce Terminal. It use light and complete for the use-case I had. Then I wanted something that looked nicer with vin. So I started looking for an alternative.
I used alacrity for a long time (4 years). Then, I found kitty provided some nice stuffs that simplified the workflow for remote servers thanks to special ssh commands and session tabs. I used kitty for about 2-3 years. One thing I missed was that it's hard to integrate with other software because it implementa all it's crazy "kitty protocols" and pretend to use them even if they're compleynon-standard.
Recently, some misterious bug appeared and made it impossible to use. I switched to wezterm. I liked it could be configured in Lua, so it feels more coherent with my neovim configs. I just missed the mappings for switching terminal and send "!!<enter>" (i.e. execute last command). The special commands for copying custom configs on any ssh server was also missing, but it's easy to make a script for that. I haven't experienced too much with integrating it with other tools, but I suspect it's not better than kitty in this.
I gave a chance to konsole last week. I just asked myself why we (neovim users) all look for Gpu-accelarated stuffs. The improvement in performance is negligible actually. However, konsole is super-well integrated in the OS, with a scratch terminal (yakuake), file managers (dolphin, konqueror), text editors (Kate), and even simple browsers (konqueror). It provides all the features of wezterm. I still lack a key map for sending "!!<enter>" to a specific terminal, though. But I think the integration it offers is superior to that niche feature (that can be paired within neovim, btw).
I like Terminator for its mouse-controlled multiplexing. I also like the fact that it's made with Python, although I haven't utilized this fact in practice.
Usually whatever fits in best with the DE I'm using. I'm on Pop!, so that's Gnome Terminal currently. I'm excited to see when System76's Pop!_OS's COSMIC Desktop will bring with an alacritty-based terminal emulator.
I like Tilix, since it lets me split the terminal with a keyboard shortcut and easily switch between terminals too. I tried using GNOME terminal + tmux, but having to hit Ctrl+b before the command I wanted got tedious fast.
I use ddterm. It's a gnome extension that adds a Drop Down Terminal. I quite like how easy it is to bring it up and hide it again, at the press of a button. You can even hide it without closing it, so it's great for testing web apps.
9term is what I use the most. Once you get used to the Plan9 way, you kind of like it. Sometimes I use Terminator as well. Konsole is like Terminator, both are good. They are both nicer than kitty for me. I tried kitty, went back to Terminator as it has menus to edit things, not just a text file.
I don't know if it's Plasma dependent, but I love using yakuake on my laptop for the convenience of pressing F4 and it just popping up. I know there are shortcuts for making a terminal pop up, but I really like how yakuake closes itself when you click out of it.
Couldn't tell you about the technical side of yakuake, but I will say I just love the convenience more than anything else.
Wezterm. I started out on konsole, and was happy with it, but then I started using zellij as my terminal multiplexer. Although zellij allows you to configure what command copies and pastes text, copy/paste on wayland and windows only works by default with wezterm. It gives me consistency across multiple DEs/OSes, with minimal configuration, which is good because I was setting up development environments for many people, with many configurations
What's my favourite terminal? The one that fits my desktop environment. When I used XFCE I used its terminal, when I used i3 I used kitty, and now I use blackbox on Gnome.
I don't have one specific as my favorite anymore and currently use Konsole from KDE. If you like tinkering with files and want it highly customizable through configuration files instead a gui, then probably Kitty is the best (and the closest to being my favorite). Alacritty is also a good one, but its quite simple and lacks some features in my opinion. I didn't try too many, but these 3 are the top three I would consider using in the feature future.
Call me lazy if you like, but I use GNOME terminal. Comes as standard with my distro. Does what I need. Supports fonts that aren't pixel fonts and has various look and feel tweaks accessible by GUI if I really want to get in there. I do that once after every fresh install and it's been a while since then.
Given that I loved a bit of Quake back in the day, you'd think I'd like drop down terminals like ddterm and Guake (which might not work on Wayland?), but weirdly no. I like it in a box I can move around.
I also keep the ancient xterm installed just in case and for when I get nostalgic for the old pixel fonts, but it's not exactly my go-to.
I want to say Alacritty+zellij but have not even tried that lol.
Konsole. It just works, has profiles etc. I highly recommend to change it to "launch every window in same process" to avoid multiple windows, create a new desktop entry replacing "konsole" with "konsole --new-tab".
And also learn Desktop actions, its very cool!
I have a profile with different colors that starts in my Distrobox.
Plasma will still display "open new window" which will instead open a new tab. Pressing Ctrl+Alt+t will also open a new tab, just as opening from Dolphin etc. Perfection!
Note that Konsole will pull in tons of dependencies, you may want to use XFCEs Terminal if you dont want that. Alacritty has no tabs which I find annoying (I hate windows).
Guake. Has been for years. I am in and out the terminal all the time, so F12 works well for me. Plus I used to play Quake and used the in game terminal to do all kinds of things. Plus I'm an old RISC OS kid and F12 was the key to get the "star line".
I do a ton of work on my homelab from my iPad with Blink Shell, and if I had to pick a favorite terminal, it would be Blink. I know this kinda falls outside the goal of your question, and with that in mind, after Blink, my favorite is Konsole.
Try out warp. They have built in Ai help, and a lot of features. The Linux version is available since 2 weeks.
Cons: you need to create an account
https://app.warp.dev/