7.8 KiB
.tmux
Self-contained, pretty and versatile .tmux.conf configuration file.
The master branch targets tmux HEAD. You may want to use the 1.9 or 2.0
branch.
Features
C-aacts as secondary prefix, while keeping defaultC-bprefix- visual theme inspired by Powerline
- maximize any pane to a new window with
<prefix> + - mouse mode toggle with
<prefix> m - automatic usage of
reattach-to-user-namespaceif available - laptop battery status
- configurable new windows and panes behavior (optionally retain current path)
- Facebook PathPicker integration if available
- Urlview integration if available
This configuration uses the following bindings:
<prefix> C-ccreates a new session<prefix> eopens~/.tmux.conf.localwith the editor defined by the$EDITORenvironment variable (defaults tovimwhen empty)<prefix> rreloads the configuration<prefix> C-flets you switch to another session by name<prefix> C-hand<prefix> C-llet you navigate windows (default<prefix> nand<prefix> pare unbound)<prefix> Tabbrings you to the last active window<prefix> h,<prefix> j,<prefix> kand<prefix> llet you navigate panes ala Vim<prefix> H,<prefix> J,<prefix>K,L` let you resize panes<prefix> <and<prefix> >let you swap panes<prefix> +maximizes the current pane to a new window<prefix> mtoggles mouse mode on or off<prefix> Ulaunches Urlview (if available)<prefix> Flaunches Facebook PathPicker (if available)<prefix> Enterenters copy-mode<prefix> blists the paste-buffers<prefix> ppastes from the top paste-buffer<prefix> Plets you choose the paste-buffer to paste fromC-lclears both the screen and the history
Additionaly, vi-choice, vi-edit and vi-copy named tables are adjusted
to closely match my own Vim configuration
Bindings for the vi-choice mode-table:
hcollapses the current tree nodelexpands the current tree nodeHcollapes all the tree nodesLexpands all the tree nodesKjumps to the start of list (tmux 2.0+)Ljumps to the end of list (tmux 2.0+)Escapecancels the current operation
Bindings for the vi-edit mode-table:
Hjumps to the start of lineLjumps to the end of lineqcancels the current operationEscapecancels the current operation
Bindings for the vi-copy mode-table:
vbegins selection / visual modeC-vtoggles between blockwise visual mode and visual modeHjumps to the start of lineLjumps to the end of lineycopies the selection to the top paste-bufferEscapecancels the current operation
The "maximize any pane to a new window with <prefix> +" feature is different
from stock resize-pane -Z as it allows you to further split a maximized pane.
Also, you can maximize a pane to a new window, then change window, then go back
and the pane is still in maximized state in its own window. You can then
minimize a pane by using <prefix> + either from the source window or the
maximized window.
Mouse mode allows you to set the active window, set the active pane, resize panes and select switch to copy-mode to select text.
Installation
$ cd
$ rm -rf .tmux
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .
If you're a Vim user, setting the $EDITOR environment variable to vim will
enable and further customize the vi-style key bindings (see tmux manual).
Configuration
While this configuration tries to bring sane default settings, you may want to
customize it further to your needs. Instead of altering the ~/.tmux.conf file
and diverging from upstream, the proper way is to edit the ~/.tmux.conf.local
file:
echo "set -g history-limit 10000" >> ~/.tmux.conf.local
You will also notice the default .tmux.conf.local file contains variables you
can change to alter different behaviors.
Enabling the Powerline like visual theme
Powerline originated as a status-line plugin for Vim. Its popular eye-cacthing
look is based on the use of special symbols: 
To make use of these symbols, there are several options:
- use a font that already bundles those: this is e.g. the case of the 2.010R-ro/1.030R-it version of the Source Code Pro] font
- use a pre-patched font
- use your preferred font along with the Powerline font (that only contains the Powerline symbols): this highly depends on your operating system and your terminal emulator
- patch your preferred font by adding the missing Powerline symbols: this is the most difficult way and is no more documented in the Powerline manual
Please see the powerline manual for further details.
Then edit the ~/.tmux.conf.local file and uncomment the following line:
#tmux_conf_theme=powerline_patched_font
Configuring the battery indicator
Edit the ~/.tmux.conf.local file and uncomment the following lines:
#tmux_conf_battery_symbol=heart
#tmux_conf_battery_symbol_count=5
The possible values for tmux_conf_battery_symbol are heart or block
(default).
To use the heat palette for the battery indicator, edit the ~/.tmux.conf.local
file and uncomment the following line:
#tmux_conf_battery_palette=heat
To use the gradient palette for the battery indicator, edit the
~/.tmux.conf.local file and uncomment the following line:
#tmux_conf_battery_palette=heat
To display the battery charging (⚡ U+26A1) / discharging (🔋 U+1F50B) status
indicators, edit the ~/.tmux.conf.local file and uncomment the following line:
#tmux_conf_battery_status=true
Configuring new windows and new panes creation
Edit the ~/.tmux.conf.local file and uncomment the following lines:
#tmux_conf_new_windows_retain_current_path=false
#tmux_conf_new_panes_retain_current_path=true
Accessing the Mac OSX clipboard from within tmux sessions
Chris Johnsen created the reattach-to-user-namespace
utility that makes
pbcopy and pbpaste work again within tmux.
To install reattach-to-user-namespace, use either MacPorts or
Homebrew:
$ port install tmux-pasteboard
or
$ brew install reattach-to-user-namespace
Once installed, reattach-to-usernamespace will be automatically detected.


