97

Is there an iTerm2 (terminal application for Mac OS) equivalent for Ubuntu?

Amongst the many features it adds the one I'm after is the "hotkey window", where you can overlay/hide a translucent terminal window at the touch of a button on the keyboard.

muru
  • 207,228
Dunhamzzz
  • 1,271

13 Answers13

43

Update as of 4/2025

I've switched to ghostty for the last couple of months, and it compares favorably with the projects detailed below. Ghostty and Wezterm are still my favorite cross-platform TEs and my recommendations to folks who ask me for a good solution especially folks coming from MacOS.

Update as of 3/2021

While I in general prefer GTK applications in terminal emulators the reigning champ Qt is being overtaken not by them but by projects eschewing traditional GUI toolkits entirely!

My current picks for my favorite Linux iTerm2 replacements are, in no particular order:

Wezterm

Has GPU acceleration, built in multiplexer (tabs and splits), ligature support, built in imgcat support, background images, transparency, shell integration, almost everything one could want. One feature I miss is profiles, but you can always have multiple config files (author made the interesting choice of using Lua rather than ini/toml/yaml/json for the config file). The only other thing I want is a hotkey dropdown terminal, not the end of the world. If you're a ricer, this is the terminal emulator for you. It's a newer project but this may be the iTerm2 killer. Go give the project some love.

Tilix Apparently now unmaintained

Fantastic and polished terminal emulator, been my daily driver for a while now. Not on par with iTerm2 in terms of feature set, but a very solid choice for a daily driver. It just works. I'm not wild about the choice of configuring through dconf rather than just having a text file in $HOME/.config, but not the end of the world.

Konsole

The stock KDE terminal is a solid choice and in addition to a rich feature set it's the only terminal I know of that comes out of box with that recent MacOS-ish translucency blur onion skin effect (a.k.a. gaussian blur).

Qterminal

Not quite as polished as some of the others, but has a very full feature set, see my old review below for more details.

Update as of 8/2020

Some other worthy contenders not mentioned in the original answer are Tilix and Terminator (check them out!), and my top pick is still for the most part
Qterminal. Linux terminals in general seem to be getting closer to parity with iTerm2.

Current as of 9/2018

Here's a short list of iterm2 (v3) features:

  • True color (16 million color) support
  • Split panes
  • Transparency
  • Show images (i.e. imgcat)
  • Show inline images e.g. beer mug for homebrew
  • Full support/integration for various shells (e.g. zsh, fish)
  • Hotkey support (e.g. drop-down terminal)

I haven't even come close to listing them all, although these are the ones I use/care about the most.

I cannot find a single linux terminal that completely matches this feature set (much less all the ones I didn't mention) but there are linux terminals that come pretty darn close, and can do things that iterm2 can't do (like set per window/pane background images). So here are a few terminals that are probably closest to iterm2 in terms of feature parity:

Qterminal

This is an abbreviation of qt terminal. It has full true color support, a dropdown hotkey, transparency, background image, panes, tabs, shell integration. Install via apt. Cons: no built-in way to preview images, it's handling of background images can be wonky.

Konsole

The default KDE terminal (e.g. for kubuntu) has true color, tabs, background image, transparency. Cons: no hot-keyed drop down window, no independent panes, handling of background images can be wonky.

Kitty

A terminal that AFAICT was just written by one guy with a surprisingly rich feature set: has true color, horizontal splits, transparency, shows images, shell integration. Cons: no background images (there's an issue open), no vertical splits without configuration, no drop down, and while it has packages for several distros ubuntu isn't one of them (have to manually install deps and compile from source).

Terminology

The default terminal of the Enlightenment desktop. It by far has the best image handling of any terminal emulator I've ever used and has been my daily driver for a couple of years now. Has resizable independent panes (vertical and horizontal), tabs, transparency, shell integration, but it lacks true color support (maintainer says he will not be adding it) which is becoming increasingly annoying as a heavy neovim/ncurses user. Cons: 256 color only, no drop down, package in repositories is extremely out of date and installing/compiling the latest version of the EFL dependencies from source literally takes half an hour.


There are a lot of other worthy terminal emulators: rxvt-unicode, suckless, termite, etc. but they all have glaring flaws, sometimes even worse than the above. Suckless (st) for example keeps it's configuration in a header file meaning every config change requires a recompile. Many of them (including some of the ones I highlighted above like konsole) seem to be configurable only via mouse, which is beyond annoying for a terminal emulator.

Many might consider the existence of tmux to make splits/panes a non-issue for the terminal itself. I don't disagree, but YMMV.

There's a glaring omission: I haven't mentioned any of the electron-based projects like hyper. That's because I personally keep about 12 different terminal sessions going at a given time, and electron is just too greedy for that kind of usage. Which is a shame, as some of those offerings have impressive feature sets. If you tend to have fewer sessions open you might give one of them a try, I've played with extraterm and it seems a little more in line with what iterm2 offers.

I wish everyone luck, but my quest for the one true terminal emulator continues onward.

40

As suggested in the iterm2 website itself (under "Hotkey Window"). There is guake, tilda and yakuake. Which can be installed from repositories.

I personally use guake. If you use unity, I have written an indicator for guake although you can easily enable systray in unity as well.

Eliah Kagan
  • 119,640
sagarchalise
  • 24,306
26

You can try terminator, search for it in the Software Centre.

I'm not sure whether it provides the feature you require, but it offers some other good features of iterm2 like horizontal and vertical window split

Since April 2020 the source is hosted by github.

abu_bua
  • 11,313
Anoop
  • 404
25

tilix is the most complete alternative I found so far

MattDMo
  • 2,115
Serg Fillipenko
  • 351
  • 3
  • 3
8

I would suggest guake Install guake

Which has an overlay and the "hotkey window" and stuff like that

Amith KK
  • 13,547
4

DomTerm supports many of the features of iterm2 and more: Shell integration, split panes, inline html (images and rich text), detachable sessions, very solid xterm emulation.

4

iTerm2 does amazing things, but so far only for Mac OS X. (github)

extraterm is a terminal emulator for Linux, Mac and Windows that does different amazing things.

joeytwiddle
  • 2,009
3

Just to add Hyper to the list. It's an electron based terminal that's fairly neat, stable, and easy to use with lots of configuration options.

https://hyper.is/

2

kitty is a cross-platform terminal emulator with GPU rendering, Python scriptable, and feature-full.

fferri
  • 151
  • 6
2

Deepin Terminal is a pretty good option. It's a very fast/light terminal. You can install it by running:

sudo apt install deepin-terminal
王子1986
  • 2,452
  • 6
  • 27
  • 30
1

You can use tmux - simple and powerful terminal multiplexer.

Features:

  • Menus for interactive selection of running sessions, windows or clients
  • Window can be linked to an arbitrary number of sessions
  • vi-like or Emacs command mode (with auto completion) for managing tmux
  • Lack of built-in serial and telnet clients (which some consider bloat for the terminal multiplexer)
  • Easier configuration
  • Different command keys—it is not a drop-in replacement for screen, but can be configured to use compatible keybindings
  • Vertical and horizontal Window split support

Source


To install press Ctrl+Alt+T and do:

sudo apt install tmux
Olimjon
  • 7,522
bitbull
  • 11
1

The Trans-terminal-to-hotkey functionality to which you refer is available with the stock gnome terminal (or just terminal) which comes preinstalled in most Ubuntu versions.

Just right click the icon & choose preferences to set up. You won't see many options until you click 'profile' this gives you a 'load file' if you will.

As soon as you've set a profile, you get to customize everything about it, including transparency and keybindings.

Alot of the other answers refer to Tmux, which can be autoset on start with the terminal. In the 'Commands' section of preferences, uncheck the box above the textbox input line. Type tmux into this textbox. That is it. Tmux will autoload in all future windows.

And dont forget about Profiles. I personally have 3: tmux, vim, and nano. All configured via same process.

EDIT Sorry to bring this one back up from the depths, but I have a related info that I believe could save a lot of time for a lot of people. It changed my workflow, so when I saw this back on the front page, I decided to share.

Since writing this answer, Ive started using Terminator, as it lets you open as many terminals as you need (within reason) and save all of their attributes. So If you want to maximize the terminal, then split it into 6 or 7 terminals, and finally change each to a seperate profile (each with it's own transparency, color, command on launch, etc.), you can save all of that to a single layout.

I believe it is just

sudo apt install terminator

To show you just how powerful this program can be, I will show the current content of my displays. I currently have 3 seperate displays. Currently, this is what is loaded to them:

enter image description here

To load all this, I type Ctrl + Alt + Super + s.

Normally, one of the hassles of rebooting, for me, is reconfiguring all the windows that I need. However, they usually need to be in one of 5(ish) layouts. So I just set them each up and to a keybinding with terminator. I still have to open anything else I need, but one of the presets usually gets me most of the way.

NOTE: the non-terminal apps do not normally start with a layout launch. You have to set them to a terminal's launch command. But with 6 separate terminals launching, that is 6 opportunities to run commands. To launch an outside app, you have to use the ; or && operator. The 'command' is actually anything you can fit on a line, but you have to launch a shell somewhere in there.

Nate T
  • 1,590
0

I want to preface this by saying that you need to consider the type of people who use MacOS, and why they would find iTerm2 attractive. First, most MacOS users are just that, users. They are not computer programmers and they don't use a terminal program to write code. Their main use of a terminal program is most likely to do administrative tasks on various servers, probably in their own home network. Also, they are very much GUI oriented - they didn't want to memorize obscure facts in history class in high school and they don't want to memorize keyboard shortcuts now. That is why when they start using Linux they tend to absolutely loathe some Linux terminal emulators. The features that many long-time Linux users hold near and dear in terminal emulators are total turn-offs to people who want to point and click, who don't care about coding, and who just want to get into their servers, do what they need to do, and get out as quickly as possible. Of course these are generalizations; some MacOS users DO write code or like using keyboard shortcuts, but I would say they are in the minority.

iTerm2 seems to cater to the majority by making everything as easy as possible without making it so "easy" it becomes hard (I will explain that in a second), by making most things point and click, and by generally adhering to Apple design standards. Everything just works, and it works easily. If you DO happen to be a power user there are keyboard shortcuts available, and you can do some REALLY geeky stuff in iTerm2 (honestly I never understood what 80% of the settings were for but I assume someone had a use for them).

The other thing about iTerm2 is when it comes to setting up connection profiles (which you would do so you can just point and click to log into a server in your profile list) they do not put you into "checkbox and dropdown hell". That is what I mean about terminal programs trying so hard to make things easy that they actually become hard. To give an example, let's say you want to set up an ssh connection with some obscure options, maybe some kind of tunneling. iTerm2 will let you enter that ssh command in a profile, just as you would enter it at a command prompt. Some other terminal programs, far too many in fact, make you try to guess which combination of checkboxes and dropdown menu selections will allow you to make the type of connection you're trying to create. It really does not bother me to have to enter an entire ssh command in a text entry box in a profile, but it annoys me greatly when I am only allowed to enter the address of the server in a text box and then have to guess which of a number of settings will give me the type of connection I want. This is like some kind of disease that appears to have afflicted the developers of Linux terminal programs; either the don't offer any kind of profile or connection manager at all, or they force you to use checkboxes and dropdowns. iTerm2 has a sensible profile manager that I have not seen in ANY Linux terminal program.

One choice that no one has mentioned so far is a cross-platform program called WindTerm. It unfortunately commits some of the sins I have mentioned above with regard to falling prey to trying to make things so easy they become hard, but it does have many of the advantages of iTerm2. There is an article about it here and you can see it is quite full-featured, but I will bet some people will take one look at the screenshot and hate it, without realizing that all those panels can be hidden or closed, so you only see the ones you want to see. The other issue with WindTerm is described by the authors of this article:

WindTerm is described as “A Quicker and better SSH/Telnet/Serial/Shell/Sftp client for DevOps.” But you don’t need to be a developer to appreciate it. So why is it that you have probably never head of it before? Well, we have a theory about that, and it is that they bury the download link and the installation instructions.

The article goes on to explain how to download and install it, but he is right, whoever designed their site apparently never realized that a surefire way to drive down usage would be to hide the download link!

I am still searching for a really great alternative to iTerm2. Tabby comes sort of close but it had some quirks I personally found annoying. WindTerm comes a lot closer in my opinion, but that's kind of like saying Mars is closer to the Earth that Pluto - neither of them are anywhere near close enough to make a former MacOS user happy, I'm afraid,