By Daniel Miessler
Created/Updated: November 13, 2019
- Why tmux?
- Installing tmux
- Creating a session
- Detaching from a session
- Attaching to a session
- Killing a session
- Using Windows and Panes
- A Quick Command Reference
tmux lets you keep things running persistently on servers, so you can disconnect and connect as needed without interrupting tasks that are in progress.
Use-cases: compiling code, running security scans, etc.
It’s best to install tmux using your existing OS package management options.
$ brew install tmux
$ apt install tmux
Creating a session
If you invoke tmux by itself, you’ll get dropped into a new session. And if you exit this session, you drop right back into your normal shell.
The ctrl – b shortcut is good to memorize.
Creating named sessions lets you reattach more easily.
$ tmux new -s session-name
A raw tmux session
Detaching from a session
You want a pause between the shortcut and the following command.
To detach from a session you invoke the shortcut ( ctrl-b )—followed by d , for detatch, or by typing detach explicitly.
Consider remapping CAPSLOCK to CONTROL in your OS to make this easier.
Show existing sessions
You can—and often will—have multiple tmux sessions on a single system, so you want to be able to see what they are.
You can also show sessions using the shortcut ctrl – b – s .
A view of running sessions
Attaching to an existing session
Now that we can see those sessions, you can either connect to one by session name, or by number.
The session names start at 0 and increment upwards.
$ tmux attach -t 0
tmux a will connect you to the first available session.
$ tmux attach -t session-name
Killing a session
There are times when you’ll want to destroy a session outright, and that can be done similar to attaching to one.
$ tmux kill-session -t session-name
You can also kill tmux altogether with killall tmux .
Windows and Panes
I don’t use this functionality myself.
Another feature of tmux is the ability to break your session into more discreet components, called windows and panes. These are good for organizing multiple activities in a logical way.
Basically, tmux sessions have windows, and windows have panes. Here’s how I conceptualize the structure.
- Sessions are for an overall theme, such as work, or experimentation, or sysadmin.
- Windows are for projects within that theme. So perhaps within your experimentation session you have a window titled noderestapi, and one titled lua sample.
- Panes are for views within your current project. So within your sysadmin session, which has a logs window, you may have a few panes for access logs, error logs, and system logs.
A Quick Command Reference
These all play off of the ctrl-b shortcut.
- ? get help
- s list sessions
- $ rename the current session
- d detach from the current session
- c create a new window
- , rename the current window
- w list windows
- % split horizontally
- “ split vertically
- n change to the next window
- p change to the previous window
- 0 to 9 select windows 0 through 9
- % create a horizontal pane
- “ create a vertical pane
- h move to the left pane. *
- j move to the pane below *
- l move to the right pane *
- k move to the pane above *
- q show pane numbers
- o toggle between panes
- > swap with next pane
- < swap with previous pane
- ! break the pane out of the window
- x kill the current pane
Here are a few tips I’ve picked up over the years using tmux .
- Consider using as few sessions and windows as possible. Humans aren’t as good at multitasking as we think we are, and while it feels powerful to have 47 panes open it’s usually not as functional as you’d imagine.
- When you do use windows and panes, take the time to name them. They are indeed useful, but switching between sessions and windows is supremely annoying when they’re all labeled 0, 1, and 2.
- Start with a basic config and get used to it before you get silly with it. I’ve seen multiple people spend hours configuring vim or tmux only to confuse themselves and abandon the project altogether. Start simple.
We’ve already learned how to use GNU Screen to manage multiple Terminal sessions. Today, we will see yet another well-known command-line utility named “Tmux”, which is used to manage Terminal sessions. This guide explains what is Tmux and the Tmux command usage with examples in Linux.
1. What is Tmux?
Similar to GNU Screen, Tmux is also a Terminal multiplexer that allows us to create number of terminal sessions and run more than one programs or processes at the same time inside a single Terminal window.
Tmux is free, open source and cross-platform program that supports Linux, OpenBSD, FreeBSD, NetBSD and Mac OS X.
2. Install Tmux in Linux
Tmux is available in the official repositories of most Linux distributions.
On Arch Linux and its variants like EndeavourOS and Manjaro Linux, run the following command to install it.
On Debian, Ubuntu, Linux Mint:
On Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux:
Well, we have just installed Tmux. Let us go ahead and see some examples to learn how to use Tmux.
3. Tmux command usage with examples
The default prefix shortcut to all commands in Tmux is Ctrl+b . Just remember this keyboard shortcut when using Tmux.
Note: The default prefix to all Screen commands is Ctrl+a.
3.1. Creating Tmux sessions
To create a new Tmux session and attach to it, run the following command from the Terminal:
Once you are inside the Tmux session, you will see a green bar at the bottom as shown in the screenshot below.
It is very handy to verify whether you’re inside a Tmux session or not.
3.2. Detaching from Tmux sessions
To detach from a current Tmux session, just press Ctrl+b and d . You don’t need to press this both Keyboard shortcut at a time. First press “Ctrl+b” and then press “d” .
Once you’re detached from a session, you will see an output something like below.
3.3. Creating named sessions
If you use multiple sessions, you might get confused which programs are running on which sessions. In such cases, you can just create named sessions.
For example if you wanted to perform some activities related to web server in a session, just create the Tmux session with a custom name, for example “webserver” (or any name of your choice).
Here is the new named Tmux session.
As you can see in the above screenshot, the name of the Tmux session is webserver. This way you can easily identify which program is running on which session.
To detach, simply press Ctrl+b and d .
3.4. List Tmux sessions
To view the list of open Tmux sessions, run:
As you can see, I have two open Tmux sessions.
3.5. Creating detached sessions
Sometimes, you might want to simply create a session and don’t want to attach to it automatically.
To create a new detached session named “ostechnix”, run:
The above command will create a new Tmux session called “ostechnix”, but won’t attach to it.
You can verify if the session is created using tmux ls command:
3.6. Attaching to Tmux sessions
You can attach to the last created session by running this command:
If you want to attach to any specific named session, for example “ostechnix”, run:
3.7. Kill Tmux sessions
When you’re done and no longer required a Tmux session, you can kill it at any time with command:
To kill when attached, press Ctrl+b and x . Hit “y” to kill the session.
You can verify if the session is closed with tmux ls command.
To Kill Tmux server along with all Tmux sessions, run:
Be careful! This will terminate all Tmux sessions even if there are any running jobs inside the sessions without any warning.
When there were no running Tmux sessions, you will see the following output:
3.8. Split Tmux Session Windows
Tmux has an option to split a single Tmux session window into multiple smaller windows called Tmux panes.
This way we can run different programs on each pane and interact with all of them simultaneously.
Each pane can be resized, moved and closed without affecting the other panes. We can split a Tmux window either horizontally or vertically or both at once.
3.8.1. Split panes horizontally
To split a pane horizontally, press Ctrl+b and “ (single quotation mark).
Use the same key combination to split the panes further.
3.8.2. Split panes vertically
To split a pane vertically, press Ctrl+b and % .
3.8.3. Split panes horizontally and vertically
We can also split a pane horizontally and vertically at the same time. Take a look at the following screenshot.
First, I did a horizontal split by pressing Ctrl+b “ and then split the lower pane vertically by pressing Ctrl+b % .
As you see in the above screenshot, I am running three different programs on each pane.
3.8.4. Switch between panes
To switch between panes, press Ctrl+b and Arrow keys (Left, Right, Up, Down).
3.8.5. Send commands to all panes
In the previous example, we run three different commands on each pane. However, it is also possible to run send the same commands to all panes at once.
To do so, press Ctrl+b and type the following command and hit ENTER :
Now type any command on any pane. You will see that the same command is reflected on all panes.
3.8.6. Swap panes
To swap panes, press Ctrl+b and o .
3.8.7. Show pane numbers
Press Ctrl+b and q to show pane numbers.
3.8.9. Kill panes
To kill a pane, simply type exit and ENTER key. Alternatively, press Ctrl+b and x . You will see a confirmation message. Just press “y” to close the pane.
4. Zoom in and Zoom out Tmux panes
We can zoom Tmux panes to fit them into the full size of the current Terminal window for better text visibility and for viewing more of its contents.
It is useful when you need more space or focus on a specific task. After finishing that task, you can zoom out (unzoom) the Tmux pane back to its normal position. More details in the following link.
5. Autostart Tmux Sessions
It is always a good practice to run a long running process inside a Tmux session when working with remote systems via SSH.
Because, it prevents you from losing the control of the running process when the network connection suddenly drops.
One way to avoid this problem is to autostart Tmux sessions. For more details, refer the following link.
In this guide, we have discussed Tmux command usage with examples. At this stage, you will get a basic idea of Tmux command line utility and how to use Tmux to manage multiple Terminal sessions. For more details, refer man pages.
Both GNU Screen and Tmux utilities can be very helpful when managing servers remotely via SSH. Learn Screen and Tmux commands thoroughly to manage your remote servers like a pro.
I need my $TERM to be xterm-256color outside of tmux (in “plain” terminal with zsh), but screen-256color inside tmux.
add export TERM=’xterm-256color’ to my
add set -g default-terminal “screen-256color” to my
Now, when I open terminal (say, xterm), TERM is xterm-256color , which is correct. But when I run tmux, TERM is again xterm-256color !
Then I tried to comment out line in my
/.zshrc . Now, when I open terminal, TERM is xterm , and when I run tmux, TERM is screen-256color . So it seems if I set TERM in the .zshrc , tmux firstly sets TERM to screen-256color , runs shell (which is zsh), and zsh reads .zshrc and resets TERM to xterm-256color .
So, how to make TERM to be xterm-256color in “plain” terminal, and screen-256color in tmux?
/.terminfo database). – Stéphane Chazelas Jun 25 ’14 at 10:20
2 Answers 2
The TERM environment variable should be set by the application that is acting as your terminal. This is the whole point of the thing: letting programs running inside them know what terminal is being used and hence what sort of features it supports.
Zsh is not a terminal. It is a shell. It might care what your TERM is set to if it wants to do special things, but it should not be responsible for setting it. Instead it is responsible for setting variables such as ZSH_VERSION which can be used by scripts or other child processes to understand what behavior to expect from their parent shell.
Instead, you need to check the configuration for whatever terminal application you are using and ask it to report itself properly. For example you can do this for xterm by adding this line to the
/.Xdefaults file it uses for configuration values:
It appears gnome-terminal does the idiotic thing of reading what your xterm configuration would be instead of having it’s own. This might get you by in some cases but is should more properly be set to gnome-256color. This appears to be a long standing gripe against it (and some other VTE based terminal emulators). A common way to hack around this is exploit another value it does set:
But this brings you back around to your problem with tmux, so you would have to account for that by not resetting TERM if it is already something like “screen-256color” or “screen”:
For other terminals you will need to lookup their proper configuration routines.
How to use, open, resize, and split Panes in the Windows Terminal
My love and appreciate for the new open-source Windows Terminal is well-documented. I enjoy customizing the Windows Terminal with a nice prompt.
The Terminal of course has Tabs so you can open many different shells at once within a terminal instance, often I want to do things like Split Screen/Split Pane. “Use Tmux!” you might shout, and that’s a valid thing to yell if I was only living in Linux (using WSL2). There are several multi-pane options to choose from within a shell using something like tmux.
There’s great docs on setting up hotkeys for this, and you should.
The best way to get started with ZERO setup is to click the main Dropdown in Windows Terminal and hold down the ALT key while you click on a shell!
Below you can see Ubuntu/WSL2 on the left running htop, while on the right I’m running PowerShell 7 (powered by .NET Core) and sitting in my podcast’s source code directory.
I’ll then click the dropdown, hold ALT, and click on the Visual Studio Developer Command Prompt that I’ve added to the menu. I’m doing this while Ubuntu is the focused pane.
Now you can see the VS2019 prompt in the lower left corner. With hotkeys I can control where panes open.
I can even navigate between pans with the ALT key and my arrow keys! Even better, SHIFT+ALT and the arrow keys will resize them!
Go spend some time learning about Panes in Windows Terminal and let me know how it goes for you! It’s gonna make your command line life so much better!
ACTION: Finally, please take a moment and subscribe to my YouTube or head over to http://computerstufftheydidntteachyou.com and explore! I’d love to hit 100k subs over there. I heard they give snacks.
Sponsor: Suffering from a lack of clarity around software bugs? Give your customers the experience they deserve and expect with error monitoring from Raygun.com. Installs in minutes, try it today!
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
The terminal for Windows Subsystem for Linux (WSL) is fairly minimal. I have not used the terminal on Windows very much – I generally use Ubuntu or OSX – but I am surprised that the default terminal is so bare.
Is it possible to either:
Connect a Windows terminal program to WSL or
Launch the Ubuntu terminal program from WSL as an X window?
12 Answers 12
I personally do the latter: use VcXsrv as my X server in multiple windows mode, then launch the xfce4-terminal (because gnome-terminal had visual issues that I didn’t care to try to learn how to fix), and suddenly I have a competent terminal with font and color support.
I found I needed to add these to my bashrc.
I also installed compiz and I use the cbwin project to run windows programs from my xfce4-terminal shell.
I am very happy with this setup and use NeoVim + lots of native linux plugins even though my “for-work” machine must be Windows. 🙂
It is also possible to start an SSH server in Bash-on-Linux-on-Windows and then connect to it, say from MinTTY like from Cygwin.
PS: to make launching xfce4-terminal painless and without the extra bash cmd window, I wrote a program that does nothing but start the bash process with arguments to start xfce4-terminal without a console window. I did this in C# – basically use arguments “UseShellExecute” false and “CreateNoWindow” true. I then pinned that to my taskbar and it’s almost seemless.
EDIT: The answer with VBScript is brilliant. Here’s that same script, but a JScript version.
Anthony Heddings is the resident cloud engineer for LifeSavvy Media, a technical writer, programmer, and an expert at Amazon’s AWS platform. He’s written hundreds of articles for How-To Geek and CloudSavvy IT that have been read millions of times. Read more.
tmux, short for terminal multiplexer, is a command line utility that makes working from the terminal much easier. It allows you to split your terminal window into many panes, which will persist across multiple SSH sessions.
Installing and Using tmux
tmux can be installed from the package manager for most distros. For Debian-based systems like Ubuntu, that would be:
It’s also available on brew, a third-party package manager for macOS, with brew install tmux .
Once it’s installed, you can get started by entering the tmux command. However, this starts a session with a random name, so you can create a new named session with tmux new :
This will take over your terminal window, and you’ll see a new command bar at the bottom. You’re now running inside tmux , in a newly created session. This session acts as if you opened a new terminal window or a new SSH session and left it running on your desktop, except it’s running without a window and behind the scenes. tmux allows you to connect to it. In essence, tmux is a desktop environment for the terminal world.
If you close the actual terminal window, this tmux session will persist until you manually terminate it (or restart your system). It works the same way when connecting to a remote server; everything you run will persist until you terminate the session.
To terminate the session, you can run the exit command, or press Control+A, Control+D. You’ll see “exited” in your main terminal as tmux exits.
More often though, you’ll simply want to disconnect from the session and leave it running on the server. To do this, you’ll want to press the tmux prefix shortcut, which is Control+B by default, and then press the “D” key. You’ll see “Detached From Session” in your main terminal when tmux exits.
To reconnect to a session, use:
The “ a ” command is short for attach-session , which saves some keystrokes. Additionally, you can use the # shortcut to connect to the last created session:
To view all sessions, you can run:
Which will display the session name and current number of windows. Make sure you’re not already connected to a tmux session when trying to connect to another session, as recursion is blocked by default (and is a pain anyway).
Multitasking with Panes
Panes make heavy use of the tmux prefix shortcut, so it’s best to remember it:
Every command will be prefixed with this so that tmux intercepts it.
To make a new pane, use one of two shortcuts:
- Control+B % to split vertically
- Control+B ” to split horizontally
These will split the current pane however you choose.
To switch between panes, you’ll have enter Control+B followed by an arrow key. You can also install mouse support with Oh My Tmux!, which will let you click between them.
If you aren’t satisfied with how big the panes are, you can resize them with these two commands:
Control+B followed by a colon opens up the tmux command prompt, which accepts more detailed commands. The command we use here is resize-pane , which takes a direction (U for up, L for left, etc.) and the number of lines to expand. In this case, this command expands the currently selected pane four lines to the right.
If you don’t like the look of having your terminal split (or just want to multitask will full screen apps) you can use tmux windows. You can use the following commands to work with windows:
- Control+B c to create a new window
- Control+B p to switch to the previous window
- Control+B n to switch to the next window
- Control+B 0-9 to switch to a window by index number.
Additionally, pressing Control+B w will bring up an interactive exposé, allowing you to view what windows you have open, what commands they are running, and how many panes they have:
You can terminate a window at any time by using the exit command, which will stop all running processes. Note that this will also stop tmux altogether if you run it with only one window open.
If the window becomes unresponsive, you can force it closed with Control+B & , which will always kill the running processes in that window.
tmux is wildly popular, and there’s plenty of plugins, themes, and community support behind it. Here’s a few useful ones:
- Oh My Tmux! – Powerline theme, mouse support, and a lot of useful features
- tmux-resurrect – Saves your layout (and more) across reboots
- tmux-pain-control – Adds a few more keybinds for managing panes
- tmux-better-mouse-mode – Better mouse support for some CLI apps
- tmuxifier – Window manager for tmux that saves to configuration files
- And a ton of themes.
There is a lot more to tmux than is covered here, but the core functionality is relatively simple (which makes it a great utility).
Want to improve this question? Update the question so it’s on-topic for Stack Overflow.
Closed 2 years ago .
I am looking for a terminal multiplexer for Microsoft Windows. I was unable to locate the installers for Microsoft Windows for both tmux and GNU Screen.
Currently I’m using Putty to connect to my Linux machine from from Windows Machine. Can somebody please suggest how to get GNU Screen or tmux working on Windows Platform.
Are there any other good alternatives to above options.
9 Answers 9
Look. This is way old, but on the off chance that someone from Google finds this, absolutely the best solution to this – (and it is AWESOME) – is to use ConEmu (or a package that includes and is built on top of ConEmu called cmder) and then either use plink or putty itself to connect to a specific machine, or, even better, set up a development environment as a local VM using Vagrant.
This is the only way I can ever see myself developing from a Windows box again.
I am confident enough to say that every other answer – while not necessarily bad answers – offer garbage solutions compared to this.
Update: As Of 1/8/2020 not all other solutions are garbage – Windows Terminal is getting there and WSL exists.
As of the Windows 10 “Anniversary” update (Version 1607), you can now run an Ubuntu subsystem from directly inside of Windows by enabling a feature called Developer mode.
To enable developer mode, go to Start > Settings then typing “Use developer features” in the search box to find the setting. On the left hand navigation, you will then see a tab titled For developers. From within this tab, you will see a radio box to enable Developer mode.
After developer mode is enabled, you will then be able to enable the Linux subsystem feature. To do so, go to Control Panel > Programs > Turn Windows features on or off > and check the box that says Windows Subsystem for Linux (Beta)
Now, rather than using Cygwin or a console emulator, you can run tmux through bash on the Ubuntu subsystem directly from Windows through the traditional apt package ( sudo apt-get install tmux ).
As a fairly new desktop Linux user I’ve been a distro-hopping fanatic, exploring the functionality and key differences between the array of excellent options out there. While a “forever distro” is the ultimate goal, the journey has been exciting and educational. Recently my Linux adventures led me to Deepin, an OS that captured my attention and boasts a few key ingredients I fell in love with.
The Deepin Desktop with Control Center activated
Like many other Linux operating systems such as Ubuntu and elementary OS, Deepin is based on Debian. But Deepin is also a standalone desktop environment, meaning it’s possible to install it as your default “look and feel” on a wide range of distributions (an alternative word for desktop operating system in the Linux world).
Deepin does something unique that I haven’t seen in any other Linux distribution I’ve tried. Or for that matter, in any version of macOS or Windows. This compels me to describe it as simultaneously sexy and sensible. I know, it’s an unusual combination!
I’ve already written about how intuitive the installation process is, and the animated welcome video that greets you on the first boot manages to visually and succinctly introduce the various features of the OS. A far cry from macOS, and especially from Windows 10 with its endless screens of setup text and nags.
But let’s get into what really shines once Deepin is installed.
The Control Center
Deepin (Fashion Mode) with Control Center
Deepin’s control center is integrated perfectly right into the desktop, and it makes both macOS and Windows 10 feel archaic by comparison. This is especially true for people who enjoy a streamlined desktop that stays out of your way.
We’ve come to expect traditional system settings to open up in a new window — or even multiple windows. It’s here that Deepin sets itself apart in a beautiful way.
Every major setting you need to manage or tweak your operating system exists within the Deepin control center, accessible by clicking an icon in the dock or taskbar. Doing so presents a translucent sidebar that slides out from the right side of your desktop. From here you can access account management, default apps, network settings, themes and fonts, power management, system updates and everything else you’d expect.
Deepin Control Center
You can also rearrange the boot order of various operating systems you have installed, and even setup a VPN connection. All from this single sidebar. No extraneous windows. And once you’ve drilled down into a particular category, it’s a snap to access others by clicking the relevant icons on the left and jumping directly to them.
Mouse and keyboard settings. Love that double click test!
The control center can also serve as your notifications center. Just click the toggle on the upper part of the sidebar and you’ll switch to all of your system and social notifications.
Choosing your default OS is a piece of cake.
Seeing the Deepin control center in motion really drives home how elegant a solution it is. It’s a feature I was blissfully unaware of until I first used it, and now I’m hooked. It’s all very fluid and very impressive.
Fashion Mode and Efficient Mode
Deepin also does something that — at least in my experience — sometimes requires the installation of a completely different desktop environment. It offers fast-switching between “Fashion Mode” and “Efficient Mode,” effectively catering to people (read: Mac and Windows users) with pre-existing preferences on how their desktop should look and function.
Fashion Mode is most easily compared to macOS, sporting a dock that’s centered at the bottom of your screen by default. It will also feel familiar to Gnome or elementary OS desktop users. This dock has a collapsible “system tray” as well which shows notifications, volume controls and network connections.
Deepin’s “Efficient Mode” wtih a Windows 7-style application menu
If you prefer a more Windows-like desktop implementation, “Efficent Mode” is what you’re after. Simply right click in the dock, select it, and then you’ll be rocking a taskbar on the left and system tray area on the right.
In both modes these areas can be snapped into the left, right and top of your screen. In both modes you can easily adjust the sizing and whether or not it auto-hides or stays locked onto the screen, as well as activate or deactive any plugins or applets you’ve installed with a simple right click.
Bonus Points: Selective Dark Mode
I won’t spend too much time on this one, but it’s awesome. Like most modern operating systems, Deepin has a global Dark Mode, but you can toggle Dark Mode on or off on a per-app basis, too, just by selecting it in the open window’s menu.
Deepin Selective Dark Mode
One more thing: even the Deepin System Monitor is gorgeous.
Deepin System Monitor
The Linux Desktop: Elevated
I use Linux for multiple reasons, and paramount among them is freedom of choice. KDE Plasma is polished, ridiculously extendible and speedy. Gnome is sensible, attractive and minimalist in nature. Budgie is gorgeous, lightweight and complete out of the box. And all of those choices are valid ones.
What I love about Deepin is that it elevates the perception of what a Linux desktop is capable of. It brings with it some UI elements that could leave even Apple’s macOS developers drooling. And when stacked against Windows 10, it’s no contest. Microsoft needs to go back to the drawing board.
It’s also very welcoming to new Linux users, and that’s something I personally appreciate. I haven’t needed a command line once, and it’s just a joy to use.
Deepin Linux can be downloaded for free here, but you can also get the Deepin desktop experience in Manjaro Deepin, which I highly recommend. That gives you the immense flexibility and software availability of Arch Linux, but with the decidedly beginner-friendly attitude of Deepin.
Beyond that there are several other Linux distributions that serve up Deepin as their desktop environment. Give one a try!
UPDATE: Yes, Deepin is created by a Chinese company called Wuhan Deepin Technology. Many of you have asked me whether or not Deepin is spyware. This theory was hastily thrown around the internet earlier this year, (and immediately disproved) because the operating system’s App Store was sending data about a user’s browser (user agent, resolution, etc) to popular Chinese analytics company CNZZ. This is effectively the same as Google Analytics. Deepin was at fault for not disclosing this (what may be commonplace in the Windows and macOS world is seriously frowned upon in the Linux one), but they have flatly denied that their OS is spyware, and have since removed the offending code.
Do you love Linux and the community that powers it? Check out my brand new podcast Linux For Everyone!
MORE OF MY LINUX CONTENT AT FORBES:
What is the different between Tmux and Terminator? I currently use Terminator which allows me to add more shell in same screen by splitting them horizontally or vertically.
I read about them in some articles but I’m still not able to figure out the main difference.
I want to know what features I’m missing if I don’t use Tmux. I’m a front-end developer. I mainly use command line to use git commands only.
4 Answers 4
Terminator is easy to install and it does exactly what it’s supposed to do – it can split terminal windows both horizontally and vertically, according to user’s requirements. It also allows to keep multiple tabs opened in case splitting one window is not enough.
Tmux lies somewhere between Terminator and screen, combining ease of use with basing on the plain terminal only.
Here are the advantages of tmux over Terminator:
- Portability – tmux works on all systems able to handle plain, old terminal.
- Scriptability – tmux can be scripted, so that setting up windows and panes takes nothing more than one or two keystrokes.
- Server-client architecture – tmux can be used to share sessions between users.
- Tweaks and options – both tmux and Terminator are easy to get with, but it’s tmux that allows to go further and offers wide range of configuration hacks. 1
1 Source: Łukasz Wróbel
To add up with all the answers said about the question. I have been a user of both Terminator and Tmux, but right this moment I switched to tmux in xterm. My experience has been great over the decision because ;
Predefine layouts, and with these layouts I can use attach commands which will run in each specified pane and then attach some key bindings to activate some predefined layout.
Reassign the default key bindings (as said, it’s scriptable) so I can make my vim key bindings and make the experience even better.
Some learning experience from zooming, copying to and from the clipboard, to configuring your terminal colors and more.
Customizing the look and feel is in your hands. Using scripts and third party scripts you can customize tmux to look like and entreprise IDE ie. (powerline, screen sharing and predefined layouts as said above).
Screen Sharing FTW, Say you work with multi workspaces and have multiple terminals open in different workspaces but there is a tmux window in workspace 1 and you need that window to be available everywhere, with tmux link-window you can have that window available in all your workspaces and it’s awesome!
Did i also say tmux is a Terminal multiplexer and not a Terminal emulator like Terminator, xterm, termite, urxvt etc? This is important to Note because then you can use different terminal emulators and stil share the same tmux windows in emulators you prefer to use.
The experience is so creative, and you can also check this guy called Gotbletu on YouTube he has lots of tutorials on tmux.
Here is an image of my code layout, which I only have to press (Ctlr + a — as the modified mod key) and alt + c to get it starting.