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-a
acts as secondary prefix, while keeping defaultC-b
prefix- 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-namespace
if 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-c
creates a new session<prefix> e
opens~/.tmux.conf.local
with the editor defined by the$EDITOR
environment variable (defaults tovim
when empty)<prefix> r
reloads the configuration<prefix> C-f
lets you switch to another session by name<prefix> C-h
and<prefix> C-l
let you navigate windows (default<prefix> n
and<prefix> p
are unbound)<prefix> Tab
brings you to the last active window<prefix> h
,<prefix> j
,<prefix> k
and<prefix> l
let 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> m
toggles mouse mode on or off<prefix> U
launches Urlview (if available)<prefix> F
launches Facebook PathPicker (if available)<prefix> Enter
enters copy-mode<prefix> b
lists the paste-buffers<prefix> p
pastes from the top paste-buffer<prefix> P
lets you choose the paste-buffer to paste fromC-l
clears 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:
h
collapses the current tree nodel
expands the current tree nodeH
collapes all the tree nodesL
expands all the tree nodesK
jumps to the start of list (tmux 2.0+)L
jumps to the end of list (tmux 2.0+)Escape
cancels the current operation
Bindings for the vi-edit
mode-table:
H
jumps to the start of lineL
jumps to the end of lineq
cancels the current operationEscape
cancels the current operation
Bindings for the vi-copy
mode-table:
v
begins selection / visual modeC-v
toggles between blockwise visual mode and visual modeH
jumps to the start of lineL
jumps to the end of liney
copies the selection to the top paste-bufferEscape
cancels 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.