11 Commits

Author SHA1 Message Date
c20bc5c4e2 v2.1.0 2014-12-12 23:25:39 +01:00
294e607f83 Deprecate "almost sensible" feature 2014-12-12 23:17:34 +01:00
d2565e5f10 Enable focus-events 2014-12-12 22:40:09 +01:00
babfd71d08 Update changelog and readme 2014-12-03 13:22:19 +01:00
c95eb0d88d Merge pull request #13 from m1foley/safe_bind_prefix
Don't overwrite $prefix if already bound
2014-12-03 13:19:50 +01:00
df5b537d21 Don't overwrite $prefix if already bound 2014-12-02 17:55:10 -08:00
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 74 additions and 17 deletions

View File

@ -2,6 +2,17 @@
### master
### v2.1.0, 2014-12-12
- check before binding `prefix + prefix` (@m1foley)
- enable `focus-events`
- deprecate 'almost sensible' feature. The reason for this is to focus the
plugin on doing just one thing.
### 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

@ -1,14 +1,14 @@
# Tmux sensible
A set of tmux options that should be acceptable for everyone.
A set of tmux options that should be acceptable to everyone.
Inspired by [vim-sensible](https://github.com/tpope/vim-sensible).
### Principles
- `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 any of the options 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.
- **no overriding** of user defined settings.<br/>
Your existing `.tmux.conf` settings are respected and they won't be changed.
@ -44,21 +44,23 @@ 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
# focus events enabled for terminals that support them
set -g focus-events on
### 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,14 +73,33 @@ 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 - deprecated
**Note**: this feature is deprecated and will be removed from `tmux-sensible`
in the next major release. The reason for this is to focus this plugin on doing
just one thing (and hopefully doing it well).<br/>
If you were using 'almost sensible' the path forward is to move all the
below options to your `.tmux.conf`.
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`:
set -g @tpm_plugins " \
set -g @tpm_plugins ' \
tmux-plugins/tpm \
tmux-plugins/tmux-sensible \
"
'
Hit `prefix + I` to fetch the plugin and source it. That's it!

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,11 @@ key_binding_not_changed() {
fi
}
# "almost sensible" is deprecated
almost_sensible_on() {
[ "$(tmux show-option -gvq "$ALMOST_SENSIBLE_OPTION")" == "on" ]
}
main() {
# OPTIONS
@ -82,7 +94,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 +103,26 @@ 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
# focus events enabled for terminals that support them
tmux set-option -g focus-events on
# ALMOST SENSIBLE OPTIONS - DEPRECATED
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)"
@ -113,7 +136,9 @@ main() {
fi
# pressing `prefix + prefix` sends <prefix> to the shell
tmux bind-key "$prefix" send-prefix
if key_binding_not_set "$prefix"; then
tmux bind-key "$prefix" send-prefix
fi
fi
# If Ctrl-a is prefix then `Ctrl-a + a` switches between alternate windows.