Best Terminal Emulator Application
Frankly, I don’t think that there is any point of discussion, it is hands down KDE’s Konsole, but as recently I’ve been using GNOME 3.16 as my main desktop environment, I thought it will be useful to have a list of features missing from GNOME Terminal to be a contender:
- “Use current window size on next startup” – I guess it is less useful if your work flow is to have many terminal windows, but for my use case which is normally just one fully maximized window with many tabs, not having this feature is really annoying: every time I start the terminal, I have to also maximize it because the default for GNOME terminal is a small window.
- “Put new tab after current tab” – very important for a task based work flow, when I use only one window with multiple ongoing tasks and I need a new terminal for one of the current tasks, I would like the new tab to be located near the other terminal tabs for the same task. Konsole has this behavior as an option while GNOME terminal always opens a new tab at the end. This is a lot about personal preferences and what is more destructive to the work flow – for example, in my Konsole setup, if I want to start a new task then I can’t just open a new tab – I’d have to either go to the last tab before opening a new tab, or open and then move it, while in GNOME Terminal I have to open it and then move it back to the correct group. It just depends what you do more, but definitely having the option to select the desired behavior is better than not having it.
- “Start in the same directory as current tab” – works very well with the previous behavior, if I want a new tab on the same task then it is mighty useful to already start on the same directory. Again its a trade-off, because if I want to start a new task then I will need to create a new tab and then issue <code>cd</code>. But having the option to choose this behavior is better than not having it.
- Tab titles show access to remote hosts – The terminal’s tab headers show what application is currently running, which is might useful, but with GNOME Terminal when you ssh to a different host, the tab title doesn’t even show that the tab isn’t local anymore. Konsole shows the target of the SSH and what application / directory is used on the remote.
Sounds like you need to be introduced to tmux, but I am probably not the best person to do that, because I am only now beginning to reap the fruits of my labour with it. You can start with [Meir][1] and [Avi’s][2] writings, and then move on to [the book][3].
[1]: http://meirkriheli.com/talks/tmux-vim/index.html
[2]: http://avi.io/blog/2014/08/28/my-development-workflow-vim-tmux-terminal-awesomeness/
[3]: https://pragprog.com/book/bhtmux/tmux
I can add, though, that I have a script, based on generated output from tmuxinator, that creates a new tmux session (or switches to, if exists) in a specified working directory and arranges a few panes, one of which running vim. To create another window in the same session (another tab on the same task, in your terms) is easy from there. I will share it from my other computer if anyone is interested.
In familiar with tmux, which is basically a fancy SCREEN replacement. It has its uses, though I prefer to work with byobu if it’s available.
All that being said, it doesn’t replace a terminal emulator (which the software that is running the window on your graphical desktop and knows how to draw text) – if you already have a terminal emulator then tmux allows you to do some fancy stuff with it – such as cramming a single window with multiple views. The multiple panes, BTW, never worked for me: I prefer a single full screen window for most things, not only terminal windows.
You get the facts right about tmux, but I still insist that its concept of “sessions” is better than trying to order tabs into “tasks” by hand. Maybe Konsole and Byobu have similar equivalent concepts, I wouldn’t know.
Maybe. Its probably very subjective.
I’ve tried working with tmux, and I don’t like the way it handles creation of ad-hoc terminals (complicated shortcuts to create, move between, and figure out where you are). Panes in the same window are easier to handle, but that means that (a) you have to basically order them manually (decide each time if you want a new vertical or horizontal pane, and where you are willing to sacrifice the screen real estate) and (b) you can quickly run out of screen space. Its tabs for me all the way 🙂