aliquote.org

Tmux and OS X

November 15, 2014

I am sometimes using Tmux as my default terminal multiplexer. Here are some notes on my current configuration.

My configuration is rather simple, and it is mostly inspired from others' config files I found with little Googling. The default status bar is not quite bad, but I don’t really like the green background and I prefer non-intrusive ‘markers’ to display information about my running processes. I ended up with the following customization for the status bar: (See also here and here.)

set -g status-bg default
set -g status-fg white
set-option -g status-justify centre
set-option -g status-left '#[fg=blue][#S]'
set-option -g status-left-length 20
set-window-option -g window-status-format '#[fg=blue,dim]#I#[fg=blue]:#W#[fg=blue,dim]#F'
set-window-option -g window-status-current-format '#[fg=yellow,bold]#I#[fg=yellow]:#[fg=yellow]#W#[fg=dim]#F'
set -g status-right '##[fg=blue]%Y-%m-%d %H:%M#[default]'

Tmux comes with several keybindings that we need to learn. Of course, if we are using it all the day, chance are that we will master them quickly (at least, I found them much easier to learn than those for Emacs when I started using it). However, I found the following cheatsheet very useful. Since I like using arrow keys to navigate between windows or panels, I redefine some of the bindings as follows:

bind-key -n S-right next
bind-key -n S-left prev
bind-key -n M-left select-pane -L
bind-key -n M-right select-pane -R
bind-key -n M-up select-pane -U
bind-key -n M-down select-pane -D
bind Space choose-buffer
unbind %
bind h split-window -v
unbind '"'
bind v split-window -h

And here is a little screenshot that shows how it looks on my desktop:

tmux

I should note that iTerm2, which is the Terminal I am using since several years, already provides split panes, autocomplete, powerful search features, session history and window management, as well as mouse action (focus, copy/paste, smart selection, etc.). So why bother with Tmux after all? Well, the only thing that iTerm is currently missing is the ability to keep running in the background when the application is closed (accidentally or not). In any case, iTerm offers nice integration with Tmux. The Text Triumvirate, by Seth Brown, is also definitely a good read.

See Also

» OS X Yosemite » Some useful Mac apps for data scientists » From Beamer to Deckset » Fixing some critical keyboard shortcuts in OS X terminal » A modular configuration for Emacs