5 Commits

Author SHA1 Message Date
bbff707eaa Almost sensible options 2014-10-03 18:40:53 +02:00
13f58a8870 Remove all mouse-related options 2014-10-03 17:45:31 +02:00
c908b42f2b Bugfix: tmux quits if 'reattach-to-user-namespace' is not installed
Fixes #9
2014-09-21 16:02:55 +02:00
9beab4784c Merge pull request #8 from janko-m/prefix-descriptions
Add descriptions for `C-p` and `C-n` bindings
2014-09-04 15:03:14 +02:00
4a584b0799 Add descriptions for C-p and C-n bindings
Fixes #6
2014-09-04 14:03:52 +02:00
3 changed files with 56 additions and 15 deletions

View File

@ -2,6 +2,11 @@
### master
### v2.0.0, 2014-10-03
- bugfix: prevent exiting tmux if 'reattach-to-user-namespace' is not installed
- remove all mouse-related options
- introduce 'almost sensible' setting and options
### v1.1.0, 2014-08-30
- bugfix: determine the default shell from the $SHELL env var on OS X
- set `mode-mouse on` by default

View File

@ -4,9 +4,9 @@ A set of tmux options that should be acceptable for everyone.
Inspired by [vim-sensible](https://github.com/tpope/vim-sensible).
### Principles
### Core principles
- `tmux-sensible` options should be acceptable to **every** tmux user!<br/>
- core `tmux-sensible` options should be acceptable to **every** tmux user!<br/>
If any option bothers you, please open an issue and it will probably be
updated (or removed).
- if you think a new option should be added, feel free to open a pull request.
@ -14,13 +14,18 @@ Inspired by [vim-sensible](https://github.com/tpope/vim-sensible).
Your existing `.tmux.conf` settings are respected and they won't be changed.
That way you can use `tmux-sensible` if you have a few specific options.
### Almost sensible principles
- widely used settings that do not make it into the 'core'
- explicitly enabled with `set -g @almost-sensible 'on'`
### Goals
- group standard tmux community options in one place
- remove clutter from your `.tmux.conf`
- educate new tmux users about basic options
### Options
### Core options
# utf8 is on
set -g utf8 on
@ -44,21 +49,20 @@ Inspired by [vim-sensible](https://github.com/tpope/vim-sensible).
# upgrade $TERM
set -g default-terminal "screen-256color"
# enable mouse features for terminals that support it
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
# emacs key bindings in tmux command prompt (prefix + :) are better than
# vi keys, even for vim users
set -g status-keys emacs
### Key bindings
### Core key bindings
# easier and faster switching between next/prev window
bind C-p previous-window
bind C-n next-window
Above bindings enhance the default `prefix + p` and `prefix + n` bindings by
allowing you to hold `Ctrl` and repeat `a + p`/`a + n` (if your prefix is
`C-a`), which is a lot quicker.
# source .tmux.conf as suggested in `man tmux`
bind R source-file '~/.tmux.conf'
@ -71,6 +75,19 @@ Inspired by [vim-sensible](https://github.com/tpope/vim-sensible).
If prefix is `C-b`, above keys will be `C-b` and `b`.<br/>
If prefix is `C-z`, above keys will be `C-z` and `z`... you get the idea.
### Almost sensible options
Activate these by putting `set -g @almost-sensible 'on'` in `.tmux.conf`.
# C-a should be the Tmux default prefix, really
set -g prefix C-a
set -g mode-keys vi
# enable mouse features for terminals that support it
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended)
Add plugin to the list of TPM plugins in `.tmux.conf`:

View File

@ -2,11 +2,18 @@
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
ALMOST_SENSIBLE_OPTION="@almost-sensible"
is_osx() {
local platform=$(uname)
[ "$platform" == "Darwin" ]
}
command_exists() {
local command="$1"
type "$command" >/dev/null 2>&1
}
# returns prefix key, e.g. 'C-a'
prefix() {
tmux show-option -gv prefix
@ -52,6 +59,10 @@ key_binding_not_changed() {
fi
}
almost_sensible_on() {
[ "$(tmux show-option -gvq "$ALMOST_SENSIBLE_OPTION")" == "on" ]
}
main() {
# OPTIONS
@ -82,7 +93,7 @@ main() {
fi
# required (only) on OS X
if is_osx && option_value_not_changed "default-command" ""; then
if is_osx && command_exists "reattach-to-user-namespace" && option_value_not_changed "default-command" ""; then
tmux set-option -g default-command "reattach-to-user-namespace -l $SHELL"
fi
@ -91,15 +102,23 @@ main() {
tmux set-option -g default-terminal "screen-256color"
fi
# enable mouse features for terminals that support it
tmux set-option -g mouse-resize-pane on
tmux set-option -g mouse-select-pane on
tmux set-option -g mouse-select-window on
# emacs key bindings in tmux command prompt (prefix + :) are better than
# vi keys, even for vim users
tmux set-option -g status-keys emacs
# ALMOST SENSIBLE OPTIONS
if almost_sensible_on; then
# C-a should be the Tmux default prefix, really
tmux set-option -g prefix C-a
tmux set-option -g mode-keys vi
# enable mouse features for terminals that support it
tmux set-option -g mouse-resize-pane on
tmux set-option -g mouse-select-pane on
tmux set-option -g mouse-select-window on
fi
# DEFAULT KEY BINDINGS
local prefix="$(prefix)"