86

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.

3
  • 1
    tilix -> github.com/gnunn1/tilix
    – user218867
    Mar 14 at 0:27
  • This is linux: you can set a hotkey to do ANYTHING! At this moment, my 'F' key calls my mom and... hold on my mom is on the phone again.
    – Nate T
    Jun 14 at 0:22
  • Btw the Trans-terminal-to-hotkey functionality to which you refer is available with the stock gnome terminal in ubuntu. Just right click the icon & choose preferences to set up.
    – Nate T
    Jun 14 at 1:28

12 Answers 12

35

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.

5
  • what about go terminal? Nov 3 '16 at 18:18
  • 1
    Suggested at where? what?
    – Anwar
    Nov 23 '16 at 15:06
  • 2
    I'm currently using yakuake but it's only a drop down terminal. The great thing about iTerm2 is that you can have normal, non-dropdown terminal windows positioned freely on the screen and still bring those up using the global hotkey. Does any of the linux terminals have that?
    – Machisuji
    Apr 30 '18 at 8:17
  • 1
    These all (guake, tilda and yakuake) suck and have nothing to do with iterm2. You could suggest terminator which is also nowhere near iterm2 but better than those three.
    – DimiDak
    Feb 20 '19 at 14:44
  • Tilix is the closest to iterm2.
    – DimiDak
    Sep 16 at 17:35
27

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

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 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.

11
  • 2
    I continue to be awed by iTerm2. I use the tmux control-mode integration daily though I only use separate tabs (not split panes). I wonder how plausible a Linux port would be? Oct 23 '18 at 22:45
  • @StevenShaw probably hard enough to approach being a total rewrite. It's almost certainly written in Objective-C/Swift with Mac OS graphics API calls strewn liberally about. Have no idea if the ioctls are completely different or not between linux and darwin, but I would suspect that they are. But anyways, yes: I find it ironic that freakin Mac OS, aka the Fisher-Price pretty picture OS, has a better terminal emulator than Linux. Oct 24 '18 at 0:03
  • Not sure that Objective-C or Swift pose a particular difficulty on Linux these days but macOS graphics APIs sure do. Perhaps there'd be much to salvage of the non-UI stuff (like pty, tmux control-mode etc). Anyhow, thought I'd say thanks for mentioning Kitty as it looks like one to watch on the Linux side! The author wrote the hugely popular Calibre app. Oct 24 '18 at 3:22
  • 1
    @StevenShaw Tilix is another one I should have mentioned in my answer, it's pretty good although it does it's configuration through dconf while I prefer text/ini/markdown/json, but it's pretty good. Oct 24 '18 at 10:27
  • Thanks for the detailed comparison. You mentioned shell integration for several terminals, yet I'm unable to find anything in those shells documentations, that comes close to iterm2.com/documentation-shell-integration.html (e.g. see the return status code of some previous command by right clicking) Could you elaborate on what you mean by shell integration?
    – T S
    May 8 '19 at 10:08
25

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.

22

tilix is the most complete alternative I found so far

5
  • 2
    A link here: gnunn1.github.io/tilix-web
    – Kaspar
    Oct 24 '17 at 20:09
  • 2
    This definitely is the closest to iterm2 in terms of split windowing and style i have seen thanks!
    – fquinner
    Oct 12 '18 at 17:34
  • Great man, thanx. I've been looking for this long time.
    – DimiDak
    Feb 20 '19 at 14:59
  • tilix is great! love that you can use it in --quake mode
    – adowdy
    Apr 18 '19 at 2:45
  • This should be accepted, at least for Ubuntu, it's so easy to use, and very custimizble. It's github: github.com/gnunn1/tilix , and it also support old ubuntu like 16.04.
    – user218867
    Mar 14 at 0:24
7

I would suggest guake Install guake

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

3
  • I can't find any settings for a hotkey....
    – Dunhamzzz
    Apr 2 '12 at 10:33
  • Whoops @Dunhamzzz Wrong link :D
    – Amith KK
    Apr 2 '12 at 10:49
  • 1
    // , In my experience Guake does not allow screens to be split vertically. This can happen with tmux, but I'd prefer something more analogous to iTerm2. Feb 2 '18 at 20:41
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

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/

1
  • 2
    And fantastically expensive to use, and lacks any of the stability essential of a terminal. It's also slow! Sorry but no.
    – Benjamin R
    Mar 28 '19 at 8:41
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.

2
  • // , How does extraterm compare to linux software like terminator? Feb 2 '18 at 20:41
  • Thanx but you can not install that thing, and when running it inside the folder it comes, nothing happens. Tilix is the shit as it seems.
    – DimiDak
    Feb 20 '19 at 15:23
2

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

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
0
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
0
0

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.