mirror of
1
0
Fork 0
tmux-config/README.md

7.8 KiB

.tmux

Self-contained, pretty and versatile .tmux.conf configuration file.

Screenshot

The 2.0 branch targets tmux 2.0. You may want to use the 1.9 or master branch.

Features

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 to vim 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 from
  • C-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 node
  • l expands the current tree node
  • H collapes all the tree nodes
  • L expands all the tree nodes
  • K 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 line
  • L jumps to the end of line
  • q cancels the current operation
  • Escape cancels the current operation

Bindings for the vi-copy mode-table:

  • v begins selection / visual mode
  • C-v toggles between blockwise visual mode and visual mode
  • H jumps to the start of line
  • L jumps to the end of line
  • y copies the selection to the top paste-buffer
  • Escape 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.

Maximize pane

Mouse mode allows you to set the active window, set the active pane, resize panes and select switch to copy-mode to select text.

Mouse mode

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: Powerline 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.