1
0
Fork 0
mirror of synced 2024-12-21 22:31:06 -05:00
Oh My Tmux! My pretty + versatile tmux configuration that just works (imho the best tmux configuration)
Find a file
Gregory Pakosz 4587413028 unbind <prefix> n and <prefix> p
By default <prefix> n and <prefix> p are bound to next/previous-window.

However, this configuration is Vim centric and window navigation is achieved
with <prefix> C-h and <prefix> C-l.

While <prefix> n is currently left unused, <prefix> p is bound to paste-buffer.
2015-10-22 13:06:01 +02:00
.tmux.conf unbind <prefix> n and <prefix> p 2015-10-22 13:06:01 +02:00
.tmux.conf.local made <prefix> e edit ~/.tmux.conf.local instead of ~/.tmux.conf 2015-10-11 20:37:58 +02:00
README.md updated README.md 2015-10-11 17:52:39 +02:00

.tmux

Self-contained, opinionated .tmux.conf configuration file.

Screenshot

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 default C-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 avaiable

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

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

You first need to install fonts patched with powerline symbols (see also the powerline manual).

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.