mirror of
https://github.com/tmux-plugins/tmux-sensible.git
synced 2025-09-09 15:47:46 +00:00
Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
bbff707eaa | |||
13f58a8870 | |||
c908b42f2b | |||
9beab4784c | |||
4a584b0799 |
@ -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
|
||||||
|
35
README.md
35
README.md
@ -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`:
|
||||||
|
@ -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)"
|
||||||
|
Reference in New Issue
Block a user