FLOSS Grenoble Meetup: tmux + tmuxinator

On Wednesday 16th November we had the first FLOSS (Free Libre Open Source Software) Meetup Group in Grenoble.  The group was created recently by Rene Ribaud and myselff and Bruno Cornec are co-organizers.

To set the ball rolling I proposed a presentation of "tmux + tmuxinator".  Tmux is a screen multiplexer, similar to GNU Screen - in fact if you're happy with GNU Screen already, well you might as well stick with that.  That said tmux is a much more active project achieving similar functionality since it's debut in 2011.

The following diagram illustrates the main concepts of tmux.

We deal with a tmux session, which is composed of one or more windows - where a window fills a terminal console, such as a Gnome terminal window.  Windows can be split up into panes, allowing to have several applications or shells running in different panes of the same window view as shown below.

Thus image shows a GNOME terminal, where the currently displayed window is split into 3 panes.
Note in the status bar we see win1* (indicating that we are displaying window 'win1') and win2 another window which we do not see here.

Within this one window we can see 3 shells each in it's own pane
So in a window we could mix several applications, for example a vim text editing session, a web server and a command-line shell for example.

The concept of a session is very useful.
If you disconnect from your tmux session it continues to run in the background.
This can be particularly useful when connecing to a remote server for example, whether you choose to disconnect or lose the network connection you session continues to run and you can reconnect to it at will.

Another useful aspect of the session is that it allows you to group related tasks within the same session.
You might have several sessions running dedicated to tasks such as
- performance monitoring
- (command-line) editing a presentation, and web serving it
- etc ...

That's a very quick overview of tmux, you can find more information in the presentation here, or on the tmux web site, or awesome-tmux list of useful tmux related resources.

Enjoy tmux !