I've been a long-time user of terminator on linux. I started playing around with tilix a couple of months ago, and really liked it.
Interestingly though, what I finally realized is there is a huge amount of value in ditching both and switching over to tmux. Tmux does everything that tilix does but is completely independent of the underlying terminal. What I finally realized is that tmux is not just about persistent sessions - the screen/pane management along with completely keyboard-based navigation and history/copy/paste commands just blows the tiling terminals away.
Highlights one of the big issues in (Linux) desktop: nested inconsistent ad-hoc window management. Consider that in somewhat typical situation you would have your WM/compositor at top managing windows, then something like tilix managing its own panes/tabs, then tmux/screen also managing windows, and finally maybe vim/emacs which also does its own window management. That is four completely independent layers of window management, each of which does mostly the same basic thing.
It is interesting to imagine alternative universe where we instead would have advanced enough OS level window management that would allow deeper integration to underlying applications. E.g. something like OS level tree style tab -like window-management might be neat, especially if combined with powerful tiling management.
Counterpoint: different tools and tasks have different requirements for interaction. Each tool provides an interface specialized to its workflow, and the hierarchical nature of the system allows me to split even inside the same tool for different workflows.
My primary window-organization tools are: i3 virtual desktops, web-browser, emacs, and tmux. i3 virtual desktops are named by task/workflow: I have one desktop for project management, one for emacs, one for terminals for one project, one for terminals for another project, one for work-related communication, and one for personal communication. Emacs does its thing and makes great use of it, but its spectacular profusion of buffers and its insane customization never pollutes the rest of my WM because it's contained within emacs. The browser desktops group related tabs, but they go one further and let me put tabs side-by-side without multiple windows of project management polluting my global window list. And so on and so forth.
Allowing each tool to specialize information management for its particular use case gives me much better performance overall. It's definitely specialized and idiosyncractic; I would not want to make everyone deal with it. But for me, doing this 8+ hours a day: every time I'm forced to work without that hierarchy and that specialization, I can tell you that the effort is worth it.
The beauty in Linux is also the freedom to simplify your workflow as much as you want, and not use the tools you don't need.
I've decided to only use a tiling WM for all window/pane management, and stop using anything else, as much as possible.
So I abandoned Gnome3->Terminator->tmux in favor of bspwm->urxvt. I don't lose the functionality that I had before (tiling terminals), and I'm using much lighter-weight tools and less of them. I love it.
Oh, and as for editor tiling... Yeah, I still have to tile buffers in Vim/Emacs, but only because I prefer the editing workflow in that case (all my context / session / environment remains the same). I suppose I could have lightweight clients, but I haven't really looked into it.
Re: editors, sometimes you simply cannot get away with multiple windows in place of panes, unless someone decides to do insane amount of work just to make editor integrate-able(?) with screen/tmux/whatever WM you happen to use; vimdiff would be a great example, as it is basically impossible to use it without panes.
There's nothing that prevents you from running say XMonad and Emacs (every buffer as a new window), Firefox (every tab as a new window), urxvt (without tabs) thus delegating all window management to XMonad.
I did try this for urxvt and it was quite efficient. No idea whether it will run well with hundreds of e.g. emacs buffers.
At least, with GridSelect [1] the selection mechanism scales well to hundreds of items.
As others have mentioned, a tiling wm solves a lot of this. I still use tabs in Chrome, but mostly because it fits my use better when I occasionally want to open other windows next to a bunch of tabs for example (I'll freely admit that getting used to how quickly arranging i3wm tiles hierarchically is hard).
It doesn't solve frames in Emacs, or tmux/screen per se, but for tmux at least iTerm2 on OS X shows that doing a terminal emulator that integrates with it certainly is possible. For my part, my screen usage is very strictly "full screen" (or full terminal, I guess) so it flows relatively smoothly.
Sometimes it is annoying - splitting emacs frame and resizing it the same way as my tiles would be nice. Other times it is nice to be able to treat them on two separate levels. I'm not sure doing entirely away with the two level nature of that would be ideal.
Herbsluft wm is less flexible than i3wm but I use it because of it. You can tile frames and frame can have multiple windows, with only few modes. No frames inside frames like in i3wm, I tried using qutebrowser without decorations and tabs. Each web page is separate window.
Only issue I am having is sorting of opened web pages. If you using only few web pages per virtual desktop it can be useful.
With tabs in chrome you can move whole chrome to another tile or desktop. But if you have 20 qutebrowser windows it takes to long.
You can use one for most of these functions if you switch to a tiling wm. i3 is popular and has very good defaults I find, I don't really need tmux when I can arrange terminal windows however I like with it.
Most tiling WM's are essentially 'tree style tabs' but for all windows. You organize tiles and children of a tree, in i3 you can also set tiles to stack so you get a tab-like appearance to a tree.
Yes, getting the key mappings to your liking is key. There are lots of resources available. One good place to start is the online book The Tao of tmux https://leanpub.com/the-tao-of-tmux/read.
Using copy mode to navigate the scroll buffer is also a useful feature - you can really cut down the use of a mouse in the terminal.
I've been using Tilix since it's copyright-infringing "Terminix" days as a replacement for Gnome terminal and really like it. While I do most things with it's keyboard shortcuts I sometimes like just mousing between panes and scrolling through history if I'm more reading than actively typing. Per session I use screen for session permanence and it works for me.
I'm sort of in the same boat. I've tried Terminator and tiling window managers and finally realized that tmux is what I wanted all along(on tiling window managers it turns out I really only want to tile terminals).
I've been using screen forever but recently I came across the 'eternal bash history' setup and now I don't dread rebooting or restarting the screen daemon any more. I have my shell history dating back 2 years pegged to screen session ID. Next I guess is some way to distribute it across more than one server.
Yeah, it's a pita. I'm sure there must be a plugin that allows thus to work with OS copy buffer but for now I just zoom on a window when I need it and pipe into pbcopy (macOS) for larger things.
I wish someone did a terminal emulator that integrates deeply with tmux. eg forward all pane/window management, scrollback etc to tmux while making it appear as native gui features of the terminal emulator itself.
I'm not on Mac, unfortunately. I couldn't find anything on the web site showing how the integration happens or works. Presumably it is completely transparent.
I'm a newbie to tmux but I use it with iTerm and I love it. I use my macbook for work but my dev code/servers are on a linux desktop. When I get into work I ssh to my linux box and type "tmux -CC attach" and my tabs all re-open like normal iTerm tabs and my subdivided terminal windows all restore to right where I left them. It's great for leaving all my watches/running code/tailing logs all open and in panes. It used to take me a couple of minutes to re-setup everything when I got into work but now I just run 1 command and I'm back to where I left off.
Link? Google doesn't turn up too much except an old bug report. I switch haphazardly between terminator (sitting at my desk) and tmux (sshing in); I'd love to unify it.
Exactly. I gave up on tiling window managers after I learnt to use tmux. I was really only using tiling for my terminals anyway. I had to rebind some tmux keys though to make it more i3 like.
I'm largely in the same boat, but I use nvim instead. I already learned how to manage panes and tabs in vim so once the terminal mode came out I went ahead and gave a try switching.
I actually went a little bit down the nvim route as well, since it has nice built-in shell support.
What I think you're missing with just nvim is the tmux scripting capabilities and of course the session management.
It's pretty easy to script up a tailored set of tmux sessions/windows/panes. I do this on initial login. Other solutions like tmuxinator/tmux-resurrect exist to automate this setup, if you don't want to script it.
Given that the whole point of the tool is that it's a tiling terminal app, I'd appreciate a few more screenshots on the page or in the readme showing the different ways it lets me organise my terminals.
I'm a big fan of Gnome's design with the unified title and toolbars. For a terminal app such as this, however, the fat title bar combined with the tab bar make for a fairly large and heavy looking header. I wish it was a little more compact.
I feel like people have been complaining about the massive GNOME 3 title bars for at least six years, but the GNOME design team seems incredibly stubborn and unwilling to listen to feedback.
But this post compares against GNOME 2.x, which was equally awful about wasting space. It doesn't compare against Windows or OS X, which are much better with screen real estate and let you easily hide the taskbar or dock to recover more.
> What’s more, today’s Nautilus compares favourably with file managers from other operating systems/desktop environments. KDE’s Dolphin uses 109 vertical pixels of chrome compared with Nautilus’s 48. Finder in the upcoming OS X version seems to have around 75 pixels.
The GNOME design team is like that about everything. They believe that their way is best... until the next major version, whereupon their new way is best.
In any case, they aren't interested in providing choice for users with different tastes. Either you like what they give you, or you should go elsewhere.
I have always found Gnome's design to be horrible - the goal of the windowing system and desktop environment is to direct as much attention as possible to the application in focus; to be absolutely as minimal as possible to get the job done. This is also why I feel the osx dock is atrocious.
Indeed! Most power-users I know (and more than one non-computery-person) completely disregard the dock.
The only reason I ever look at the dock is to open minimized windows, and even for that I usually opt for the 'see all windows of current app' gesture.
That said, the dock is very useful for most tech-illiterate people I know.
I guess it depends on which apps you use, but I consider myself a power user and I regularly drag files onto Kaleidoscope in my Dock to diff them, or I right-click Dock icons to quickly re-open recent files with a single mouse gesture. It's all pretty efficient.
I'm the command-line and use-vim-keybindings-for-all-the-things type person, which often clashes with all the reasons why I'm an Apple fan (slightly abashed these days) and fascinated with UX.
I actually often find myself discovering interesting, hidden OSX 'solutions' to things even now, as a power user, and after using it for more than five years. I never discovered them before because my 'default' would be to go to iTerm2 for a quicker approach.
For example, I find myself switching between Finder and iTerm2(+zsh) quite regularly when my need is to navigate folders/directories and/or quickly CRUD files. And yet, I was also fully aware of the OSX Finder keyboard shortcut 'SHIFT-CMD-G' to jump to a directory from within Finder. I never really used it.
Just last week I decided to use the Finder keyboard shortcut more regularly, and I feel the end result is a boost in productivity, however tiny and ultimately insignificant it may be. There's a certain friction between using the command-line and OSX' GUI that just disappeared for many of my common use cases (CRUD files and directories with sublime text or vim).
Exploring iTerm's extra features (toolbelt, profiles), but also discovering tmux and how iTerm integrates with it, are similar 'tucked away' things that 'fuse' power-user and normal-user interfaces, and that I only discovered in the past months.
I'm not sure why I apparently feel drawn to making a strict dichotomy between CLI and OSX usage that causes me to be blind to these in-between cases, but thanks for reminding me. I'd never have thought to use the 'recent files' lists in the dock. Just a cursory glance makes me suspect I'll be using it quite a bit going forward!
It's quite sad that I mostly lost interest when I saw it mentioned Gnome, because my experience is with Gnome is that either it will take too much space, or if I like it they will systematically take away the options that makes it possible for me to make it work the way I want.
It also has an inspector, so you can find the right class name as you would when doing CSS in a browser.
I have to admit that I also tried developing an extension (https://github.com/mlutfy/hidetopbar), which I found hard, but someone else took over maintenance and he's been doing a really good job. Has a few active contributors too.
(after 10 years on fvwm, I re-tested every w-m out there, before giving up and adopting Gnome3.. happy since)
Interesting, but it looks like that depends on running gnome-shell? The instructions there for triggering the inspector doesn't seem to work for gnome-terminal for me for example (not that I tried very hard to debug why), running under i3wm. Running gnome-shell itself just isn't something I'd consider - I want my tiling wm.
Tilix has an option to control the terminal titlebars style to make it smaller or hide it completely. One of the screenshots on the web page shows it without the terminal title bar.
This is quite off-topic, but I'd like to point it out: please disable subpixel anti-aliasing of fonts in images you upload to webpages. Subpixel anti-aliasing only works when the image is displayed at 1:1 zoom on a display with the same RGB subpixel arrangement. It fails on high-dpi displays, pentile displays, rotated displays, etc. and produces very noticeable rainbow fringing on the letters.
This fails the do one thing and one thing well test very badly. This entire this can be managed by a window manager already. Managing information frames should happen at the WM level, not the bastardized versions of it like this, or man IDEs, or mysqlworkbench, etc
I've been using this for the last two years as a replacement for terminator. It's pretty damn good if you like splitting your terminals up and don't use tmux.
It used to be called something else, but a company with the same name made a copyright complaint.
If you have to access the terminal frequently, a dropdown terminal emulator is the way to go. Press F12, the terminal comes down. Press F11 it goes to full screen. Press F12 again, it retracts. I use yakuake and can't imagine life without it.
Apologies for the off-topic, but does anyone know a nice simple terminal emulator to use with tiling window managers such as i3? I'm using the xfce terminal right now, but that supports tabs which gets a little confusing since so does i3.
I also recommend and use `urxvt`, but I would also add (and others haven't mentioned this) I use `urxvtd` and `urxvtc`. `urxvtd` is a daemon, and when you run `urxvtc` it spawns another urxvt 'client' off of the daemon. It results in a lot less memory usage and much quicker terminal start-ups. Doesn't matter tons if you already have a beefy system, but it helped tons on my older laptop that I used to use, and I've continued to use the feature since then.
Huh, that's pretty bad, I can't blame you for not using it anymore. I've personally never had it segfault and I've been using it for years now, so it's hard to say what was happening there.
I just use gnome-terminal. It is fine. No chrome or trim. i3 and tmux to lay out terminals. If you don't like tmux, i3 is also very good at laying things out. Just turn off all the menus for something like gnome-terminal, which renders things like powerline fonts fine.
I just use termite, it's super simple with no tabs or anything, and you can hack it so that it shows up as a floating window (for quick commands) or as a regular window, and have multiple terminals tiled.
Urxvt seems to be a popular choice among i3 users. I'd recommend checking Reddit (r/unixporn) for some example screenshots showing various configurations common to i3 users.
Not an i3 user, but xmonad should be close enough. I'm using termite nowadays. It's configured by editing a plain text file in your editor of choice (as opposed to a GUI), it does not have buttons that take away space, and the vim-like visual mode is a game changer for me. The only annoying thing is that it sets TERM=xterm-termite, which machines you log in via ssh usually don't recognize because termite is not installed there. Easily fixed in your .bashrc.
The creators of i3wm provide a hint as to what they think might serve as good terminal implementations for i3 on their manual page[1]. Here's how the search sequence begins for a "sensible terminal": $TERMINAL urxvt rxvt termit terminator...
Note that the order in this script is undefined. We started with the terminal emulators we knew about and accepted all PRs which added others. The current order should not be mistaken for fitness or judgement :).
I use urxvt with xmonad (another tiling WM). I love it, it's so minimalist and basic. I think it supports tabs with a perl extension but by default it has no fancy functionality that your WM can provide for you.
alacritty is an absolutely barebones terminal emulator, no tabs, configuration through a flat file etc. It's main 'selling point' is that it paints through the GPU.
I actually don't want any tiling to be done on the terminal level. I want to use my tiling window manager to tile multiple terminals, so I can move a tile between workspaces, monitors, etc.
The "problem" I'm having with the xfce terminal is that it supports tabs. It basically has too much features for me. And being the idiot that I am, I make use of them. Even though I'd actually prefer not to, so that instead I'll be using the features provided by my window manager.
It's a silly problem, I know. But the question is:
What is a performant customizable terminal that is dead simple? No tabs. No tiles. Just a single terminal window.
Or maybe I should just unbind the create new tab shortcut.
Does it have backscroll yet? Without that it's kind of the wrong way around in what features it lacks.
Like, People who want to run every session in tmux (but don't care about using a tiling wm) don't need scrolling, tabs, or splits. People who want to run their terminals in i3 also don't want tabs or splits, but they do need scroll or else they have to duplicate effort on both sides just to get scrolling.
If tiling terminals aren't your thing, I'd suggest giving guake a go. I've been using for a year now, and none of the other emulators have come close to making me switch.
Protip: Use the shortcuts wisely, it makes it much better to use. I personally use + and - on the keypad for new tab/close tab and End to hide/unhide.
It seems to me that terminals are one of those things that handles the most sensitive of details on a server. No offense to the project (which looks very nice), but shouldn't we prefer a terminal emulator that has been well audited for security issues?
Probably, are you going to start on that? It's not like someone's holding a gun to your head and telling you to use it. You can do it yourself, wait, or not use it. There's so many options for this situation.
Another cool trick is to use zero trust mentality and get the secrets to the box without having to copy/paste/type/view them through your terminal emulator.
Has any terminal emulator had a formal security audit done for it as I'm not aware of any that have. If there has let me know, would love to read the report and recommendations as I imagine some of them would be broadly applicable.
So which one (from those audited) do you recommend?
It's using fairly well known library (VTE), it's open source so it's not that easy to sneak something in.
Situations when your terminal emulator (it's not a program facing Internet) can be compromised:
1. you have something malicious on your computer,
2. you have something malicious on you server.
But imho in both situations you already have bigger problems than your terminal emulator...
You know, I am no security expert. I was posing a question.
I frequently see HN comments question security of a number of applications, none of which are as critical an interface with production servers as the lowly terminal. For example, a recent replacement for ls was highlighted on HN, and there were questions of whether one would want to install use an untested application due to security concerns. In the case a terminal, it seems to be even a bigger potential issue since it is what one frequently types passwords in for sudo. I am quite surprised at the tone of comments.
Terminator has not been updated in 9 years, suggesting a lack of maintenance, and is stuck on GTK2, which means no native Wayland support. Tilix, on the other hand, is active, GTK3-based, and works natively on my Gnome Wayland desktop.
Not true. Terminator is still being actively development (albeit somewhat slowly). GTK3 support was completed earlier on in the year and I've personally been using it daily since.
Most shells let you do some arbitrary work before/during the display of the prompt line (in Bash, you can use `PS1` and `PROMPT_COMMAND`). Some people then install special fonts that let them render these fancy “bar segment” things. [Powerline](https://github.com/powerline/powerline) is a notable package for this, but there’s a lot of simpler alternatives out there nowadays.
There is an option for the blink mode in the preferences under Profile (i.e. Default) since it can be configured on a per profile basis. You can set the blink mode to use the system setting, on or off.
Interestingly though, what I finally realized is there is a huge amount of value in ditching both and switching over to tmux. Tmux does everything that tilix does but is completely independent of the underlying terminal. What I finally realized is that tmux is not just about persistent sessions - the screen/pane management along with completely keyboard-based navigation and history/copy/paste commands just blows the tiling terminals away.