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 ### 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 ### v1.1.0, 2014-08-30
- bugfix: determine the default shell from the $SHELL env var on OS X - bugfix: determine the default shell from the $SHELL env var on OS X
- set `mode-mouse on` by default - 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). 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 If any option bothers you, please open an issue and it will probably be
updated (or removed). updated (or removed).
- if you think a new option should be added, feel free to open a pull request. - 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. 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. 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 ### Goals
- group standard tmux community options in one place - group standard tmux community options in one place
- remove clutter from your `.tmux.conf` - remove clutter from your `.tmux.conf`
- educate new tmux users about basic options - educate new tmux users about basic options
### Options ### Core options
# utf8 is on # utf8 is on
set -g utf8 on set -g utf8 on
@ -44,21 +49,20 @@ Inspired by [vim-sensible](https://github.com/tpope/vim-sensible).
# upgrade $TERM # upgrade $TERM
set -g default-terminal "screen-256color" 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 # emacs key bindings in tmux command prompt (prefix + :) are better than
# vi keys, even for vim users # vi keys, even for vim users
set -g status-keys emacs set -g status-keys emacs
### Key bindings ### Core key bindings
# easier and faster switching between next/prev window # easier and faster switching between next/prev window
bind C-p previous-window bind C-p previous-window
bind C-n next-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` # source .tmux.conf as suggested in `man tmux`
bind R source-file '~/.tmux.conf' 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-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. 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) ### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended)
Add plugin to the list of TPM plugins in `.tmux.conf`: 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 )" CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
ALMOST_SENSIBLE_OPTION="@almost-sensible"
is_osx() { is_osx() {
local platform=$(uname) local platform=$(uname)
[ "$platform" == "Darwin" ] [ "$platform" == "Darwin" ]
} }
command_exists() {
local command="$1"
type "$command" >/dev/null 2>&1
}
# returns prefix key, e.g. 'C-a' # returns prefix key, e.g. 'C-a'
prefix() { prefix() {
tmux show-option -gv prefix tmux show-option -gv prefix
@ -52,6 +59,10 @@ key_binding_not_changed() {
fi fi
} }
almost_sensible_on() {
[ "$(tmux show-option -gvq "$ALMOST_SENSIBLE_OPTION")" == "on" ]
}
main() { main() {
# OPTIONS # OPTIONS
@ -82,7 +93,7 @@ main() {
fi fi
# required (only) on OS X # 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" tmux set-option -g default-command "reattach-to-user-namespace -l $SHELL"
fi fi
@ -91,15 +102,23 @@ main() {
tmux set-option -g default-terminal "screen-256color" tmux set-option -g default-terminal "screen-256color"
fi 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 # emacs key bindings in tmux command prompt (prefix + :) are better than
# vi keys, even for vim users # vi keys, even for vim users
tmux set-option -g status-keys emacs 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 # DEFAULT KEY BINDINGS
local prefix="$(prefix)" local prefix="$(prefix)"