diff --git a/README.md b/README.md index cbd36bb..c1f619f 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,97 @@ .tmux ===== -Self-contained, opinionated `.tmux.conf` configuration file. +Self-contained, pretty and versatile `.tmux.conf` configuration file. ![Screenshot](https://cloud.githubusercontent.com/assets/553208/9889393/85e50e4e-5bfa-11e5-99d8-76572350803a.gif) -The `master` branch targets tmux `HEAD`. You may want to use the `1.9` or `2.0` +The `2.0` branch targets tmux `2.0`. You may want to use the `1.9` or `master` branch. Features -------- - `C-a` acts as secondary prefix, while keeping default `C-b` prefix - - visual theme inspired by [powerline](https://github.com/Lokaltog/powerline) - - [maximize any pane to a new window with `+`](http://pempek.net/articles/2013/04/14/maximizing-tmux-pane-new-window/) - - mouse mode toggle with `m` + - visual theme inspired by [Powerline][] + - [maximize any pane to a new window with ` +`](http://pempek.net/articles/2013/04/14/maximizing-tmux-pane-new-window/) + - mouse mode toggle with ` 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 -The "maximize any pane to a new window with `+`" feature is different +[Powerline]: https://github.com/Lokaltog/powerline +[Facebook PathPicker]: https://facebook.github.io/PathPicker/ +[Urlview]: https://packages.debian.org/stable/misc/urlview + +This configuration uses the following bindings: + + - ` C-c` creates a new session + - ` e` opens `~/.tmux.conf.local` with the editor defined by the + `$EDITOR` environment variable (defaults to `vim` when empty) + - ` r` reloads the configuration + - ` C-f` lets you switch to another session by name + - ` C-h` and ` C-l` let you navigate windows (default + ` n` and ` p` are unbound) + - ` Tab` brings you to the last active window + - ` h`, ` j`, ` k` and ` l` let you navigate + panes ala Vim + - ` H`, ` J`, `` K`, ` L` let you resize panes + - ` <` and ` >` let you swap panes + - ` +` maximizes the current pane to a new window + - ` m` toggles mouse mode on or off + - ` U` launches Urlview (if available) + - ` F` launches Facebook PathPicker (if available) + - ` Enter` enters copy-mode + - ` b` lists the paste-buffers + - ` p` pastes from the top paste-buffer + - ` 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][] + +[my own Vim configuration]: https://github.com/gpakosz/.vim.git + +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 ` +`" 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 `+` either from the source window or the +minimize a pane by using ` +` either from the source window or the maximized window. ![Maximize pane](https://cloud.githubusercontent.com/assets/553208/9890858/ee3c0ca6-5c02-11e5-890e-05d825a46c92.gif) + +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](https://cloud.githubusercontent.com/assets/553208/9890797/8dffe542-5c02-11e5-9c06-a25b452e6fcc.gif) Installation @@ -56,8 +121,27 @@ 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][]). +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][source code pro] of the Source Code Pro] font +- use a [pre-patched font][powerline patched fonts] +- use your preferred font along with the [Powerline font][powerline font] (that + only contains the Powerline symbols): this highly depends on your operating + system and your terminal emulator +- [patch your preferred font][powerline font patcher] by adding the missing + Powerline symbols: this is the most difficult way and is no more documented in + the Powerline manual + +[source code pro]: https://github.com/adobe-fonts/source-code-pro/releases/tag/2.010R-ro%2F1.030R-it +[powerline patched fonts]: https://github.com/powerline/fonts +[powerline font]: https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf +[powerline font patcher]: https://github.com/powerline/fontpatcher + +Please see the [powerline manual] for further details. Then edit the `~/.tmux.conf.local` file and uncomment the following line: