remove tumux plugins
This commit is contained in:
parent
8fa405e41e
commit
ab31d043cd
91 changed files with 0 additions and 4807 deletions
2
tmux/plugins/tmux-sensible/.gitattributes
vendored
2
tmux/plugins/tmux-sensible/.gitattributes
vendored
|
@ -1,2 +0,0 @@
|
|||
# Force text files to have unix eols, so Windows/Cygwin does not break them
|
||||
*.* eol=lf
|
|
@ -1,43 +0,0 @@
|
|||
# Changelog
|
||||
|
||||
### master
|
||||
- remove `detach-on-destroy`
|
||||
- do not set `aggressive-resize` on iTerm terminal
|
||||
- disable `detach-on-destroy`
|
||||
|
||||
### v3.0.0, 2015-06-24
|
||||
- remove 'almost sensible' feature
|
||||
|
||||
### v2.3.0, 2015-06-24
|
||||
- update to support \*THE\* latest tmux version
|
||||
- bugfix for `prefix + R` key binding
|
||||
- fix for tmux 2.0 `default-terminal` option (thanks @kwbr)
|
||||
|
||||
### v2.2.0, 2015-02-10
|
||||
- bugfix in `key_binding_not_set`: the regex is now properly detecting key
|
||||
bindings with `-r` flag.
|
||||
- enable `aggressive-resize`
|
||||
|
||||
### 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
|
||||
- do not make any decision about the prefix, just enhance it
|
||||
- update `README.md`. List options set in the plugin.
|
||||
- do *not* set `mode-mouse on` by default because some users don't like it
|
||||
- if a user changes default prefix but binds `C-b` to something else, do not
|
||||
unbind `C-b`
|
||||
|
||||
### v1.0.0, 2014-07-30
|
||||
- initial work on the plugin
|
||||
- add readme
|
|
@ -1,19 +0,0 @@
|
|||
Copyright (C) 2014 Bruno Sutic
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -1,114 +0,0 @@
|
|||
# Tmux sensible
|
||||
|
||||
A set of tmux options that should be acceptable to everyone.
|
||||
|
||||
Inspired by [vim-sensible](https://github.com/tpope/vim-sensible).
|
||||
|
||||
Tested and working on Linux, OSX and Cygwin.
|
||||
|
||||
### Principles
|
||||
|
||||
- `tmux-sensible` options should be acceptable to **every** tmux user!<br/>
|
||||
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.
|
||||
That way you can use `tmux-sensible` if you have a few specific options.
|
||||
|
||||
### Goals
|
||||
|
||||
- group standard tmux community options in one place
|
||||
- remove clutter from your `.tmux.conf`
|
||||
- educate new tmux users about basic options
|
||||
|
||||
### Options
|
||||
|
||||
# utf8 is on
|
||||
set -g utf8 on
|
||||
set -g status-utf8 on
|
||||
|
||||
# address vim mode switching delay (http://superuser.com/a/252717/65504)
|
||||
set -s escape-time 0
|
||||
|
||||
# increase scrollback buffer size
|
||||
set -g history-limit 50000
|
||||
|
||||
# tmux messages are displayed for 4 seconds
|
||||
set -g display-time 4000
|
||||
|
||||
# refresh 'status-left' and 'status-right' more often
|
||||
set -g status-interval 5
|
||||
|
||||
# set only on OS X where it's required
|
||||
set -g default-command "reattach-to-user-namespace -l $SHELL"
|
||||
|
||||
# upgrade $TERM
|
||||
set -g default-terminal "screen-256color"
|
||||
|
||||
# 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
|
||||
|
||||
# super useful when using "grouped sessions" and multi-monitor setup
|
||||
setw -g aggressive-resize 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'
|
||||
|
||||
"Adaptable" key bindings that build upon your `prefix` value:
|
||||
|
||||
# if prefix is 'C-a'
|
||||
bind C-a send-prefix
|
||||
bind a last-window
|
||||
|
||||
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.
|
||||
|
||||
### 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 @plugin 'tmux-plugins/tmux-sensible'
|
||||
|
||||
Hit `prefix + I` to fetch the plugin and source it. That's it!
|
||||
|
||||
### Manual Installation
|
||||
|
||||
Clone the repo:
|
||||
|
||||
$ git clone https://github.com/tmux-plugins/tmux-sensible ~/clone/path
|
||||
|
||||
Add this line to the bottom of `.tmux.conf`:
|
||||
|
||||
run-shell ~/clone/path/sensible.tmux
|
||||
|
||||
Reload TMUX environment with `$ tmux source-file ~/.tmux.conf`, and that's it.
|
||||
|
||||
### Other goodies
|
||||
|
||||
You might also find these useful:
|
||||
|
||||
- [copycat](https://github.com/tmux-plugins/tmux-copycat)
|
||||
improve tmux search and reduce mouse usage
|
||||
- [pain control](https://github.com/tmux-plugins/tmux-pain-control)
|
||||
useful standard bindings for controlling panes
|
||||
- [resurrect](https://github.com/tmux-plugins/tmux-resurrect)
|
||||
persists tmux environment across system restarts
|
||||
|
||||
### License
|
||||
|
||||
[MIT](LICENSE.md)
|
|
@ -1,161 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# used to match output from `tmux list-keys`
|
||||
KEY_BINDING_REGEX="bind-key[[:space:]]\+\(-r[[:space:]]\+\)\?\(-T prefix[[:space:]]\+\)\?"
|
||||
|
||||
is_osx() {
|
||||
local platform=$(uname)
|
||||
[ "$platform" == "Darwin" ]
|
||||
}
|
||||
|
||||
iterm_terminal() {
|
||||
[[ "$TERM_PROGRAM" =~ ^iTerm ]]
|
||||
}
|
||||
|
||||
command_exists() {
|
||||
local command="$1"
|
||||
type "$command" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# returns prefix key, e.g. 'C-a'
|
||||
prefix() {
|
||||
tmux show-option -gv prefix
|
||||
}
|
||||
|
||||
# if prefix is 'C-a', this function returns 'a'
|
||||
prefix_without_ctrl() {
|
||||
local prefix="$(prefix)"
|
||||
echo "$prefix" | cut -d '-' -f2
|
||||
}
|
||||
|
||||
option_value_not_changed() {
|
||||
local option="$1"
|
||||
local default_value="$2"
|
||||
local option_value=$(tmux show-option -gv "$option")
|
||||
[ "$option_value" == "$default_value" ]
|
||||
}
|
||||
|
||||
server_option_value_not_changed() {
|
||||
local option="$1"
|
||||
local default_value="$2"
|
||||
local option_value=$(tmux show-option -sv "$option")
|
||||
[ "$option_value" == "$default_value" ]
|
||||
}
|
||||
|
||||
key_binding_not_set() {
|
||||
local key="$1"
|
||||
if $(tmux list-keys | grep -q "${KEY_BINDING_REGEX}${key}[[:space:]]"); then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
key_binding_not_changed() {
|
||||
local key="$1"
|
||||
local default_value="$2"
|
||||
if $(tmux list-keys | grep -q "${KEY_BINDING_REGEX}${key}[[:space:]]\+${default_value}"); then
|
||||
# key still has the default binding
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
# OPTIONS
|
||||
|
||||
# enable utf8 (option removed in tmux 2.2)
|
||||
tmux set-option -g utf8 on 2>/dev/null
|
||||
|
||||
# enable utf8 in tmux status-left and status-right (option removed in tmux 2.2)
|
||||
tmux set-option -g status-utf8 on 2>/dev/null
|
||||
|
||||
# address vim mode switching delay (http://superuser.com/a/252717/65504)
|
||||
if server_option_value_not_changed "escape-time" "500"; then
|
||||
tmux set-option -s escape-time 0
|
||||
fi
|
||||
|
||||
# increase scrollback buffer size
|
||||
if option_value_not_changed "history-limit" "2000"; then
|
||||
tmux set-option -g history-limit 50000
|
||||
fi
|
||||
|
||||
# tmux messages are displayed for 4 seconds
|
||||
if option_value_not_changed "display-time" "750"; then
|
||||
tmux set-option -g display-time 4000
|
||||
fi
|
||||
|
||||
# refresh 'status-left' and 'status-right' more often
|
||||
if option_value_not_changed "status-interval" "15"; then
|
||||
tmux set-option -g status-interval 5
|
||||
fi
|
||||
|
||||
# required (only) on OS X
|
||||
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
|
||||
|
||||
# upgrade $TERM, tmux 1.9
|
||||
if option_value_not_changed "default-terminal" "screen"; then
|
||||
tmux set-option -g default-terminal "screen-256color"
|
||||
fi
|
||||
# upgrade $TERM, tmux 2.0+
|
||||
if server_option_value_not_changed "default-terminal" "screen"; then
|
||||
tmux set-option -s default-terminal "screen-256color"
|
||||
fi
|
||||
|
||||
# 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
|
||||
|
||||
# super useful when using "grouped sessions" and multi-monitor setup
|
||||
if ! iterm_terminal; then
|
||||
tmux set-window-option -g aggressive-resize on
|
||||
fi
|
||||
|
||||
# DEFAULT KEY BINDINGS
|
||||
|
||||
local prefix="$(prefix)"
|
||||
local prefix_without_ctrl="$(prefix_without_ctrl)"
|
||||
|
||||
# if C-b is not prefix
|
||||
if [ $prefix != "C-b" ]; then
|
||||
# unbind obsolete default binding
|
||||
if key_binding_not_changed "C-b" "send-prefix"; then
|
||||
tmux unbind-key C-b
|
||||
fi
|
||||
|
||||
# pressing `prefix + prefix` sends <prefix> to the shell
|
||||
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.
|
||||
# Works for any prefix character.
|
||||
if key_binding_not_set "$prefix_without_ctrl"; then
|
||||
tmux bind-key "$prefix_without_ctrl" last-window
|
||||
fi
|
||||
|
||||
# easier switching between next/prev window
|
||||
if key_binding_not_set "C-p"; then
|
||||
tmux bind-key C-p previous-window
|
||||
fi
|
||||
if key_binding_not_set "C-n"; then
|
||||
tmux bind-key C-n next-window
|
||||
fi
|
||||
|
||||
# source `.tmux.conf` file - as suggested in `man tmux`
|
||||
if key_binding_not_set "R"; then
|
||||
tmux bind-key R run-shell ' \
|
||||
tmux source-file ~/.tmux.conf > /dev/null; \
|
||||
tmux display-message "Sourced .tmux.conf!"'
|
||||
fi
|
||||
}
|
||||
main
|
|
@ -1,201 +0,0 @@
|
|||
# Tmux Themepack
|
||||
|
||||
A pack of various themes for Tmux.
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
### Install manually
|
||||
|
||||
1. Clone repo to local machine:
|
||||
|
||||
git clone https://github.com/jimeh/tmux-themepack.git ~/.tmux-themepack
|
||||
|
||||
2. Source desired theme in your `~/.tmux.conf`:
|
||||
|
||||
source-file "${HOME}/.tmux-themepack/powerline/block/green.tmuxtheme"
|
||||
|
||||
In some linux distributions you might have to remove the quotation marks from the
|
||||
`source-file` command to avoid a `no such file or directory` error:
|
||||
|
||||
source-file ${HOME}/.tmux-themepack/powerline/block/green.tmuxtheme
|
||||
|
||||
### Install using [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm)
|
||||
|
||||
1. Add plugin to the list of TPM plugins in `.tmux.conf`:
|
||||
|
||||
set -g @plugin 'jimeh/tmux-themepack'
|
||||
|
||||
2. Hit `prefix + I` to fetch the plugin and source it. The plugin should now be working.
|
||||
|
||||
You can pick and choose a theme via `.tmux.conf` option:
|
||||
|
||||
- `set -g @themepack 'basic'` (default)
|
||||
- `set -g @themepack 'powerline/block/blue'`
|
||||
- `set -g @themepack 'powerline/block/cyan'`
|
||||
- `set -g @themepack 'powerline/default/gray'`
|
||||
- `set -g @themepack 'powerline/double/magenta'`
|
||||
- `...`
|
||||
|
||||
## Themes
|
||||
|
||||
### Basic Themes
|
||||
|
||||
**Default:**
|
||||
|
||||
![basic](https://raw.github.com/jimeh/tmux-themepack-previews/master/default-preview.png)
|
||||
|
||||
**Basic:**
|
||||
|
||||
![basic](https://raw.github.com/jimeh/tmux-themepack-previews/master/basic-preview.png)
|
||||
|
||||
### Powerline Themes
|
||||
|
||||
Inspired by the [Powerline][] VIM plugin,
|
||||
and requires the use of a powerline compatible font in your terminal. You can
|
||||
find a number of such fonts in the
|
||||
[powerline-fonts][] project.
|
||||
|
||||
If your preferred font isn't available there, please refer to Powerline's
|
||||
documentation on [Font Patching][] to patch the font yourself.
|
||||
|
||||
[powerline]: https://github.com/Lokaltog/powerline
|
||||
[powerline-fonts]: https://github.com/Lokaltog/powerline-fonts
|
||||
[font patching]: https://powerline.readthedocs.org/en/latest/fontpatching.html#font-patching
|
||||
|
||||
**Powerline Blue:**
|
||||
|
||||
![powerline-default-blue](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/default/blue-preview.png)
|
||||
|
||||
**Powerline Cyan:**
|
||||
|
||||
![powerline-default-cyan](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/default/cyan-preview.png)
|
||||
|
||||
**Powerline Gray:**
|
||||
|
||||
![powerline-default-gray](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/default/gray-preview.png)
|
||||
|
||||
**Powerline Green:**
|
||||
|
||||
![powerline-default-green](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/default/green-preview.png)
|
||||
|
||||
**Powerline Magenta:**
|
||||
|
||||
![powerline-default-magenta](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/default/magenta-preview.png)
|
||||
|
||||
**Powerline Orange:**
|
||||
|
||||
![powerline-default-orange](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/default/orange-preview.png)
|
||||
|
||||
**Powerline Red:**
|
||||
|
||||
![powerline-default-red](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/default/red-preview.png)
|
||||
|
||||
**Powerline Yellow:**
|
||||
|
||||
![powerline-default-yellow](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/default/yellow-preview.png)
|
||||
|
||||
#### Block
|
||||
|
||||
Currently selected window is indicated by a colored block.
|
||||
|
||||
**Powerline Blue Block:**
|
||||
|
||||
![powerline-block-blue](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/block/blue-preview.png)
|
||||
|
||||
**Powerline Cyan Block:**
|
||||
|
||||
![powerline-block-cyan](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/block/cyan-preview.png)
|
||||
|
||||
**Powerline Gray Block:**
|
||||
|
||||
![powerline-block-gray](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/block/gray-preview.png)
|
||||
|
||||
**Powerline Green Block:**
|
||||
|
||||
![powerline-block-green](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/block/green-preview.png)
|
||||
|
||||
**Powerline Magenta Block:**
|
||||
|
||||
![powerline-block-magenta](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/block/magenta-preview.png)
|
||||
|
||||
**Powerline Orange Block:**
|
||||
|
||||
![powerline-block-orange](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/block/orange-preview.png)
|
||||
|
||||
**Powerline Red Block:**
|
||||
|
||||
![powerline-block-red](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/block/red-preview.png)
|
||||
|
||||
**Powerline Yellow Block:**
|
||||
|
||||
![powerline-block-yellow](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/block/yellow-preview.png)
|
||||
|
||||
#### Double
|
||||
|
||||
Both left and right far sides of the statusbar are colored, rather than just
|
||||
the left side.
|
||||
|
||||
**Powerline Double Blue:**
|
||||
|
||||
![powerline-double-blue](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/double/blue-preview.png)
|
||||
|
||||
**Powerline Double Cyan:**
|
||||
|
||||
![powerline-double-cyan](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/double/cyan-preview.png)
|
||||
|
||||
**Powerline Double Green:**
|
||||
|
||||
![powerline-double-green](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/double/green-preview.png)
|
||||
|
||||
**Powerline Double Magenta:**
|
||||
|
||||
![powerline-double-magenta](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/double/magenta-preview.png)
|
||||
|
||||
**Powerline Double Orange:**
|
||||
|
||||
![powerline-double-orange](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/double/orange-preview.png)
|
||||
|
||||
**Powerline Double Red:**
|
||||
|
||||
![powerline-double-red](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/double/red-preview.png)
|
||||
|
||||
**Powerline Double Yellow:**
|
||||
|
||||
![powerline-double-yellow](https://raw.github.com/jimeh/tmux-themepack-previews/master/powerline/double/yellow-preview.png)
|
||||
|
||||
|
||||
## Tips
|
||||
|
||||
- Use different themes/colors on different machines by using some sort of
|
||||
wrapper around launching Tmux.
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
If you decide to contribute your own tmux themes, please try to base it on the
|
||||
`default.tmuxtheme` theme. This ensures that switching between themes works as
|
||||
it should and completely overwrites all settings from previous themes.
|
||||
|
||||
If it's not possible to base your theme on my default one, something is
|
||||
probably missing from it. So please contribute a fix to the default theme too
|
||||
in that case :)
|
||||
|
||||
|
||||
## License
|
||||
|
||||
```
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2013 Jim Myhrberg
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
```
|
|
@ -1,54 +0,0 @@
|
|||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style bg=black,fg=cyan
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=black,fg=green
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#S #[fg=white]» #[fg=yellow]#I #[fg=cyan]#P"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=black,fg=cyan
|
||||
set -g status-right-length 40
|
||||
set -g status-right "#H #[fg=white]« #[fg=yellow]%H:%M:%S #[fg=green]%d-%b-%y"
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format " #I:#W#F "
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=red,fg=black
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=black,fg=yellow
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=default
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=green
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour default
|
||||
set -g display-panes-active-colour default
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour red
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=default,fg=default
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=default,fg=default
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=red,fg=default
|
|
@ -1,62 +0,0 @@
|
|||
#
|
||||
# Default Tmux Theme
|
||||
#
|
||||
|
||||
# This theme matches Tmux's default style as closely as possible. It functions
|
||||
# as a template for creating new themes, and as a way to reset a running Tmux
|
||||
# server's style to it's defaults.
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 15
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style bg=green,fg=black
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=green,fg=black
|
||||
set -g status-left-length 10
|
||||
set -g status-left "[#S]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=green,fg=black
|
||||
set -g status-right-length 40
|
||||
set -g status-right "\"#H\" %H:%M %d-%b-%y"
|
||||
|
||||
# Window status
|
||||
set -g window-status-format "#I:#W#F"
|
||||
set -g window-status-current-format "#I:#W#F"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=green,fg=black
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=black,fg=green
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator " "
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify left
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=white
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=green
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour blue
|
||||
set -g display-panes-active-colour red
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour blue
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=yellow,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=green,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=yellow,fg=black
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Blue Block - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour24,bold] #S #[fg=colour24,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format " #I:#W#F "
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour24,fg=colour232
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour31
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour24
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour24
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour24,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour24,fg=colour231
|
|
@ -1,65 +0,0 @@
|
|||
#
|
||||
# Powerline Cyan Block - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour39,bold] #S #[fg=colour39,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format " #I:#W#F "
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour39,fg=colour232
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour75
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour39
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour39
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour39,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour39,fg=colour232
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Gray Block - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour238,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour245,bold] #S #[fg=colour245,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format " #I:#W#F "
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour245,fg=colour232
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour235
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour240
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour240
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour245,fg=colour232
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=colour250
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour243,fg=colour232
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Green Block - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format " #I:#W#F "
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour100,fg=colour232
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour107
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour100
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour100
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour100,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour100,fg=colour235
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Magenta Block - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour125,bold] #S #[fg=colour125,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format " #I:#W#F "
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour90,fg=colour232
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour141
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour90
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour90
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour90,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour125,fg=colour231
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Orange Block - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour130,bold] #S #[fg=colour130,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format " #I:#W#F "
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour130,fg=colour232
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour130
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour130
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour130
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour130,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour130,fg=colour232
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Red Block - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour16,bg=colour88,bold] #S #[fg=colour88,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format " #I:#W#F "
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour124,fg=colour16
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour88
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour88
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour88
|
||||
set -g message-style bg=colour24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour88,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour88,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour124,fg=colour231
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Yellow Block - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour227,bold] #S #[fg=colour227,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format " #I:#W#F "
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour227,fg=colour232
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour229
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour227
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour227
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour227,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour227,fg=colour235
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Blue - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour238,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour24,bold] #S #[fg=colour24,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour33,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour100,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour24
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour24
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour24,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour24,fg=colour231
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Cyan - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour39,bold] #S #[fg=colour39,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour81,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour39,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour39
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour39
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour39,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour39,fg=colour232
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Gray - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour238,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour245,bold] #S #[fg=colour245,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour250,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=black,fg=colour250
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour243
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour235
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour240
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour240
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour245,fg=colour232
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=colour250
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour243,fg=colour232
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Green - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour190,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour100,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour100
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour100
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour100,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour100,fg=colour235
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Magenta - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour125,bold] #S #[fg=colour125,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour129,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour125,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour125
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour125
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour125,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour125,fg=colour231
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Orange - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour130,bold] #S #[fg=colour130,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour166,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour130,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour130
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour130
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour130,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour130,fg=colour232
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Red - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour238,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour16,bg=colour88,bold] #S #[fg=colour88,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour160,bold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour88,fg=colour16
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour88
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour88
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour88,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour88,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour124,fg=colour231
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Yellow - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour227,bold] #S #[fg=colour227,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour245,bg=colour240]#[fg=colour232,bg=colour245,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour227,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour227,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour227
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour227
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour227,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour227,fg=colour235
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Double Blue - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour238,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour24,bold] #S #[fg=colour24,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour24,bg=colour240]#[fg=colour232,bg=colour24,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour33,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour24,fg=colour233
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour24
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour24
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour24,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour24,fg=colour231
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Double Cyan - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour233,bg=colour39,bold] #S #[fg=colour39,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour39,bg=colour240]#[fg=colour233,bg=colour39,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour81,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour39,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour39
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour39
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour39,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour39,fg=colour232
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Double Green - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour233,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour100,bg=colour240]#[fg=colour233,bg=colour100,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour190,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour100,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour100
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour100
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour100,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour100,fg=colour235
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Double Magenta - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour233,bg=colour125,bold] #S #[fg=colour125,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour125,bg=colour240]#[fg=colour233,bg=colour125,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour129,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour125,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour125
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour125
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour125,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour125,fg=colour231
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Double Orange - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour233,bg=colour130,bold] #S #[fg=colour130,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour130,bg=colour240]#[fg=colour233,bg=colour130,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour166,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour130,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour130
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour130
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour130,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour130,fg=colour232
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Double Red - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour238,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour232,bg=colour88,bold] #S #[fg=colour88,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour88,bg=colour240]#[fg=colour232,bg=colour88,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour160,bold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour88,fg=colour16
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour88
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour88
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour88,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour88,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour124,fg=colour231
|
|
@ -1,64 +0,0 @@
|
|||
#
|
||||
# Powerline Double Yellow - Tmux Theme
|
||||
# Created by Jim Myhrberg <contact@jimeh.me>.
|
||||
#
|
||||
# Inspired by vim-powerline: https://github.com/Lokaltog/powerline
|
||||
#
|
||||
# Requires terminal to be using a powerline compatible font, find one here:
|
||||
# https://github.com/Lokaltog/powerline-fonts
|
||||
#
|
||||
|
||||
# Status update interval
|
||||
set -g status-interval 1
|
||||
|
||||
# Basic status bar colors
|
||||
set -g status-style fg=colour240,bg=colour233
|
||||
|
||||
# Left side of status bar
|
||||
set -g status-left-style bg=colour233,fg=colour243
|
||||
set -g status-left-length 40
|
||||
set -g status-left "#[fg=colour233,bg=colour227,bold] #S #[fg=colour227,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #I:#P #[fg=colour235,bg=colour233,nobold]"
|
||||
|
||||
# Right side of status bar
|
||||
set -g status-right-style bg=colour233,fg=colour243
|
||||
set -g status-right-length 150
|
||||
set -g status-right "#[fg=colour235,bg=colour233]#[fg=colour240,bg=colour235] %H:%M:%S #[fg=colour240,bg=colour235]#[fg=colour233,bg=colour240] %d-%b-%y #[fg=colour227,bg=colour240]#[fg=colour233,bg=colour227,bold] #H "
|
||||
|
||||
# Window status
|
||||
set -g window-status-format " #I:#W#F "
|
||||
set -g window-status-current-format "#[fg=colour233,bg=black]#[fg=colour227,nobold] #I:#W#F #[fg=colour233,bg=black,nobold]"
|
||||
|
||||
# Current window status
|
||||
set -g window-status-current-style bg=colour227,fg=colour235
|
||||
|
||||
# Window with activity status
|
||||
set -g window-status-activity-style bg=colour233,fg=colour245
|
||||
|
||||
# Window separator
|
||||
set -g window-status-separator ""
|
||||
|
||||
# Window status alignment
|
||||
set -g status-justify centre
|
||||
|
||||
# Pane border
|
||||
set -g pane-border-style bg=default,fg=colour238
|
||||
|
||||
# Active pane border
|
||||
set -g pane-active-border-style bg=default,fg=colour227
|
||||
|
||||
# Pane number indicator
|
||||
set -g display-panes-colour colour233
|
||||
set -g display-panes-active-colour colour245
|
||||
|
||||
# Clock mode
|
||||
set -g clock-mode-colour colour227
|
||||
set -g clock-mode-style 24
|
||||
|
||||
# Message
|
||||
set -g message-style bg=colour227,fg=black
|
||||
|
||||
# Command message
|
||||
set -g message-command-style bg=colour233,fg=black
|
||||
|
||||
# Mode
|
||||
set -g mode-style bg=colour227,fg=colour235
|
|
@ -1,29 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
theme_option="@themepack"
|
||||
default_theme='basic'
|
||||
|
||||
get_tmux_option() {
|
||||
local option="$1"
|
||||
local default_value="$2"
|
||||
local option_value="$(tmux show-option -gqv "$option")"
|
||||
|
||||
if [ -n "$option_value" ]; then
|
||||
echo "$option_value"
|
||||
else
|
||||
echo "$default_value"
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
local theme="$(get_tmux_option "$theme_option" "$default_theme")"
|
||||
if [ -f "$CURRENT_DIR/${theme}.tmuxtheme" ]; then
|
||||
tmux source-file "$CURRENT_DIR/${theme}.tmuxtheme"
|
||||
else
|
||||
tmux source-file "$CURRENT_DIR/powerline/${theme}.tmuxtheme"
|
||||
fi
|
||||
}
|
||||
|
||||
main
|
9
tmux/plugins/tpm/.gitattributes
vendored
9
tmux/plugins/tpm/.gitattributes
vendored
|
@ -1,9 +0,0 @@
|
|||
# Force text files to have unix eols, so Windows/Cygwin does not break them
|
||||
*.* eol=lf
|
||||
|
||||
# These files are unfortunately not recognized as text files so
|
||||
# explicitly listing them here
|
||||
tpm eol=lf
|
||||
bin/* eol=lf
|
||||
bindings/* eol=lf
|
||||
tests/* eol=lf
|
4
tmux/plugins/tpm/.gitignore
vendored
4
tmux/plugins/tpm/.gitignore
vendored
|
@ -1,4 +0,0 @@
|
|||
**/.vagrant/
|
||||
run_tests
|
||||
tests/run_tests_in_isolation
|
||||
tests/helpers/helpers.sh
|
3
tmux/plugins/tpm/.gitmodules
vendored
3
tmux/plugins/tpm/.gitmodules
vendored
|
@ -1,3 +0,0 @@
|
|||
[submodule "lib/tmux-test"]
|
||||
path = lib/tmux-test
|
||||
url = https://github.com/tmux-plugins/tmux-test.git
|
|
@ -1,19 +0,0 @@
|
|||
# generic packages and tmux
|
||||
before_install:
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install -y git-core expect
|
||||
- sudo apt-get install -y python-software-properties software-properties-common
|
||||
- sudo apt-get install -y libevent-dev libncurses-dev
|
||||
- git clone https://github.com/tmux/tmux.git
|
||||
- cd tmux
|
||||
- git checkout 2.0
|
||||
- sh autogen.sh
|
||||
- ./configure && make && sudo make install
|
||||
|
||||
install:
|
||||
- git fetch --unshallow --recurse-submodules || git fetch --recurse-submodules
|
||||
# manual `git clone` required for testing `tmux-test` plugin itself
|
||||
- git clone https://github.com/tmux-plugins/tmux-test lib/tmux-test; true
|
||||
- lib/tmux-test/setup
|
||||
|
||||
script: ./tests/run_tests_in_isolation
|
|
@ -1,83 +0,0 @@
|
|||
# Changelog
|
||||
|
||||
### master
|
||||
- upgrade to new version of `tmux-test`
|
||||
- bug: when using `emacs` copy mode, Enter does not quit screen after tpm
|
||||
installation/update. Fix by making `Escape` the key for emacs mode.
|
||||
- add a doc with troubleshooting instructions
|
||||
- add `.gitattributes` file that forces linefeed characters (classic `\n`) as
|
||||
line endings - helps with misconfigured git on windows/cygwin
|
||||
- readme update: announce Cygwin support
|
||||
- un-deprecate old plugin definition syntax: `set -g @tpm_plugins`
|
||||
|
||||
### v3.0.0, 2015-08-03
|
||||
- refactor `shared_set_tpm_path_constant` function
|
||||
- move all instructions to `docs/` dir
|
||||
- add `bin/install_plugins` cli executable script
|
||||
- improved test runner function
|
||||
- switch to using [tmux-test](https://github.com/tmux-plugins/tmux-test)
|
||||
framework
|
||||
- add `bin/update_plugins` cli executable script
|
||||
- refactor test `expect` scripts, make them simpler and ensure they properly
|
||||
assert expectations
|
||||
- refactor code that sets 'TMUX_PLUGIN_MANAGER_PATH' global env var
|
||||
- stop using global variable for 'tpm path'
|
||||
- support defining plugins via `set -g @plugin` in sourced files as well
|
||||
|
||||
### v2.0.0, 2015-07-07
|
||||
- enable overriding default key bindings
|
||||
- start using `C-c` to clear screen
|
||||
- add uninstall/clean procedure and keybinding (prefix+alt+u) (@chilicuil)
|
||||
- add new `set @plugin 'repo'` plugin definition syntax (@chilicuil)
|
||||
- revert back to using `-g` flag in new plugin definition syntax
|
||||
- permit leading whitespace with new plugin definition syntax (thanks @chilicuil)
|
||||
- make sure `TMUX_PLUGIN_MANAGER_PATH` always has trailng slash
|
||||
- ensure old/deprecated plugin syntax `set -g @tpm_plugins` works alongside new
|
||||
`set -g @plugin` syntax
|
||||
|
||||
### v1.2.2, 2015-02-08
|
||||
- set GIT_TERMINAL_PROMPT=0 when doing `git clone`, `pull` or `submodule update`
|
||||
to ensure git does not prompt for username/password in any case
|
||||
|
||||
### v1.2.1, 2014-11-21
|
||||
- change the way plugin name is expanded. It now uses the http username
|
||||
and password by default, like this: `https://git::@github.com/`. This prevents
|
||||
username and password prompt (and subsequently tmux install hanging) with old
|
||||
git versions. Fixes #7.
|
||||
|
||||
### v1.2.0, 2014-11-20
|
||||
- refactor tests so they can be used on travis
|
||||
- add travis.yml, add travis badge to the readme
|
||||
|
||||
### v1.1.0, 2014-11-19
|
||||
- if the plugin is not downloaded do not source it
|
||||
- remove `PLUGINS.md`, an obsolete list of plugins
|
||||
- update readme with instructions about uninstalling plugins
|
||||
- tilde char and `$HOME` in `TMUX_SHARED_MANAGER_PATH` couldn't be used because
|
||||
they are just plain strings. Fixing the problem by manually expanding them.
|
||||
- bugfix: fragile `*.tmux` file globbing (@majutsushi)
|
||||
|
||||
### v1.0.0, 2014-08-05
|
||||
- update readme because of github organization change to
|
||||
[tmux-plugins](https://github.com/tmux-plugins)
|
||||
- update tests to pass
|
||||
- update README to suggest different first plugin
|
||||
- update list of plugins in the README
|
||||
- remove README 'about' section
|
||||
- move key binding to the main file. Delete `key_binding.sh`.
|
||||
- rename `display_message` -> `echo_message`
|
||||
- installing plugins installs just new plugins. Already installed plugins aren't
|
||||
updated.
|
||||
- add 'update plugin' binding and functionality
|
||||
- add test for updating a plugin
|
||||
|
||||
### v0.0.2, 2014-07-17
|
||||
- run all *.tmux plugin files as executables
|
||||
- fix all redirects to /dev/null
|
||||
- fix bug: TPM shared path is created before sync (cloning plugins from github
|
||||
is done)
|
||||
- add test suite running in Vagrant
|
||||
- add Tmux version check. `TPM` won't run if Tmux version is less than 1.9.
|
||||
|
||||
### v0.0.1, 2014-05-21
|
||||
- get TPM up and running
|
|
@ -1,2 +0,0 @@
|
|||
Instructions moved to
|
||||
[docs/how_to_create_plugin.md](docs/how_to_create_plugin.md).
|
|
@ -1,20 +0,0 @@
|
|||
MIT license
|
||||
Copyright (C) 2014 Bruno Sutic
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -1,113 +0,0 @@
|
|||
# Tmux Plugin Manager
|
||||
|
||||
[![Build Status](https://travis-ci.org/tmux-plugins/tpm.svg?branch=master)](https://travis-ci.org/tmux-plugins/tpm)
|
||||
|
||||
Installs and loads `tmux` plugins.
|
||||
|
||||
Tested and working on Linux, OSX, and Cygwin.
|
||||
|
||||
### Installation
|
||||
|
||||
Requirements: `tmux` version 1.9 (or higher), `git`, `bash`.
|
||||
|
||||
Clone TPM:
|
||||
|
||||
```bash
|
||||
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
```
|
||||
|
||||
Put this at the bottom of `~/.tmux.conf` (`$XDG_CONFIG_HOME/tmux/tmux.conf`
|
||||
works too):
|
||||
|
||||
```bash
|
||||
# List of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
|
||||
# Other examples:
|
||||
# set -g @plugin 'github_username/plugin_name'
|
||||
# set -g @plugin 'git@github.com/user/plugin'
|
||||
# set -g @plugin 'git@bitbucket.com/user/plugin'
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run -b '~/.tmux/plugins/tpm/tpm'
|
||||
```
|
||||
|
||||
Reload TMUX environment so TPM is sourced:
|
||||
|
||||
```bash
|
||||
# type this in terminal if tmux is already running
|
||||
$ tmux source ~/.tmux.conf
|
||||
```
|
||||
|
||||
That's it!
|
||||
|
||||
### Installing plugins
|
||||
|
||||
1. Add new plugin to `~/.tmux.conf` with `set -g @plugin '...'`
|
||||
2. Press `prefix` + <kbd>I</kbd> (capital i, as in **I**nstall) to fetch the plugin.
|
||||
|
||||
You're good to go! The plugin was cloned to `~/.tmux/plugins/` dir and sourced.
|
||||
|
||||
### Uninstalling plugins
|
||||
|
||||
1. Remove (or comment out) plugin from the list.
|
||||
2. Press `prefix` + <kbd>alt</kbd> + <kbd>u</kbd> (lowercase u as in **u**ninstall) to remove the plugin.
|
||||
|
||||
All the plugins are installed to `~/.tmux/plugins/` so alternatively you can
|
||||
find plugin directory there and remove it.
|
||||
|
||||
### Key bindings
|
||||
|
||||
`prefix` + <kbd>I</kbd>
|
||||
- Installs new plugins from GitHub or any other git repository
|
||||
- Refreshes TMUX environment
|
||||
|
||||
`prefix` + <kbd>U</kbd>
|
||||
- updates plugin(s)
|
||||
|
||||
`prefix` + <kbd>alt</kbd> + <kbd>u</kbd>
|
||||
- remove/uninstall plugins not on the plugin list
|
||||
|
||||
### More plugins
|
||||
|
||||
For more plugins, check [here](https://github.com/tmux-plugins).
|
||||
|
||||
### Docs
|
||||
|
||||
- [Help, tpm not working](docs/tpm_not_working.md) - problem solutions
|
||||
|
||||
More advanced features and instructions, regular users probably do not need
|
||||
this:
|
||||
|
||||
- [How to create a plugin](docs/how_to_create_plugin.md). It's easy.
|
||||
- [Managing plugins via the command line](docs/managing_plugins_via_cmd_line.md)
|
||||
- [Changing plugins install dir](docs/changing_plugins_install_dir.md)
|
||||
- [Automatic TPM installation on a new machine](docs/automatic_tpm_installation.md)
|
||||
|
||||
### Tests
|
||||
|
||||
Tests for this project run on [Travis CI](https://travis-ci.org/tmux-plugins/tpm).
|
||||
|
||||
When run locally, [vagrant](https://www.vagrantup.com/) is required.
|
||||
Run tests with:
|
||||
|
||||
```bash
|
||||
# within project directory
|
||||
$ ./run_tests
|
||||
```
|
||||
|
||||
### Other goodies
|
||||
|
||||
- [tmux-copycat](https://github.com/tmux-plugins/tmux-copycat) - a plugin for
|
||||
regex searches in tmux and fast match selection
|
||||
- [tmux-yank](https://github.com/tmux-plugins/tmux-yank) - enables copying
|
||||
highlighted text to system clipboard
|
||||
- [tmux-open](https://github.com/tmux-plugins/tmux-open) - a plugin for quickly
|
||||
opening highlighted file or a url
|
||||
- [tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) - automatic
|
||||
restoring and continuous saving of tmux env
|
||||
|
||||
### License
|
||||
|
||||
[MIT](LICENSE.md)
|
|
@ -1,14 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Script intended for use via the command line.
|
||||
#
|
||||
# `.tmux.conf` needs to be set for TPM. Tmux has to be installed on the system,
|
||||
# but does not need to be started in order to run this script.
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
SCRIPTS_DIR="$CURRENT_DIR/../scripts"
|
||||
|
||||
main() {
|
||||
"$SCRIPTS_DIR/clean_plugins.sh" # has correct exit code
|
||||
}
|
||||
main
|
|
@ -1,14 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Script intended for use via the command line.
|
||||
#
|
||||
# `.tmux.conf` needs to be set for TPM. Tmux has to be installed on the system,
|
||||
# but does not need to be started in order to run this script.
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
SCRIPTS_DIR="$CURRENT_DIR/../scripts"
|
||||
|
||||
main() {
|
||||
"$SCRIPTS_DIR/install_plugins.sh" # has correct exit code
|
||||
}
|
||||
main
|
|
@ -1,24 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Script intended for use via the command line.
|
||||
#
|
||||
# `.tmux.conf` needs to be set for TPM. Tmux has to be installed on the system,
|
||||
# but does not need to be started in order to run this script.
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
SCRIPTS_DIR="$CURRENT_DIR/../scripts"
|
||||
PROGRAM_NAME="$0"
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "usage:"
|
||||
echo " $PROGRAM_NAME all update all plugins"
|
||||
echo " $PROGRAM_NAME tmux-foo update plugin 'tmux-foo'"
|
||||
echo " $PROGRAM_NAME tmux-bar tmux-baz update multiple plugins"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
main() {
|
||||
"$SCRIPTS_DIR/update_plugin.sh" --shell-echo "$*" # has correct exit code
|
||||
}
|
||||
main "$*"
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Tmux key-binding script.
|
||||
# Scripts intended to be used via the command line are in `bin/` directory.
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
SCRIPTS_DIR="$CURRENT_DIR/../scripts"
|
||||
HELPERS_DIR="$SCRIPTS_DIR/helpers"
|
||||
|
||||
source "$HELPERS_DIR/tmux_echo_functions.sh"
|
||||
source "$HELPERS_DIR/tmux_utils.sh"
|
||||
|
||||
main() {
|
||||
reload_tmux_environment
|
||||
"$SCRIPTS_DIR/clean_plugins.sh" --tmux-echo >/dev/null 2>&1
|
||||
reload_tmux_environment
|
||||
end_message
|
||||
}
|
||||
main
|
|
@ -1,19 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Tmux key-binding script.
|
||||
# Scripts intended to be used via the command line are in `bin/` directory.
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
SCRIPTS_DIR="$CURRENT_DIR/../scripts"
|
||||
HELPERS_DIR="$SCRIPTS_DIR/helpers"
|
||||
|
||||
source "$HELPERS_DIR/tmux_echo_functions.sh"
|
||||
source "$HELPERS_DIR/tmux_utils.sh"
|
||||
|
||||
main() {
|
||||
reload_tmux_environment
|
||||
"$SCRIPTS_DIR/install_plugins.sh" --tmux-echo >/dev/null 2>&1
|
||||
reload_tmux_environment
|
||||
end_message
|
||||
}
|
||||
main
|
|
@ -1,49 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Tmux key-binding script.
|
||||
# Scripts intended to be used via the command line are in `bin/` directory.
|
||||
|
||||
# This script:
|
||||
# - shows a list of installed plugins
|
||||
# - starts a prompt to enter the name of the plugin that will be updated
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
SCRIPTS_DIR="$CURRENT_DIR/../scripts"
|
||||
HELPERS_DIR="$SCRIPTS_DIR/helpers"
|
||||
|
||||
source "$HELPERS_DIR/plugin_functions.sh"
|
||||
source "$HELPERS_DIR/tmux_echo_functions.sh"
|
||||
source "$HELPERS_DIR/tmux_utils.sh"
|
||||
|
||||
display_plugin_update_list() {
|
||||
local plugins="$(tpm_plugins_list_helper)"
|
||||
tmux_echo "Installed plugins:"
|
||||
tmux_echo ""
|
||||
|
||||
for plugin in $plugins; do
|
||||
# displaying only installed plugins
|
||||
if plugin_already_installed "$plugin"; then
|
||||
local plugin_name="$(plugin_name_helper "$plugin")"
|
||||
tmux_echo " $plugin_name"
|
||||
fi
|
||||
done
|
||||
|
||||
tmux_echo ""
|
||||
tmux_echo "Type plugin name to update it."
|
||||
tmux_echo ""
|
||||
tmux_echo "- \"all\" - updates all plugins"
|
||||
tmux_echo "- ENTER - cancels"
|
||||
}
|
||||
|
||||
update_plugin_prompt() {
|
||||
tmux command-prompt -p 'plugin update:' " \
|
||||
send-keys C-c; \
|
||||
run-shell '$SCRIPTS_DIR/update_plugin_prompt_handler.sh %1'"
|
||||
}
|
||||
|
||||
main() {
|
||||
reload_tmux_environment
|
||||
display_plugin_update_list
|
||||
update_plugin_prompt
|
||||
}
|
||||
main
|
|
@ -1,12 +0,0 @@
|
|||
# Automatic tpm installation
|
||||
|
||||
One of the first things we do on a new machine is cloning our dotfiles. Not everything comes with them though, so for example `tpm` most likely won't be installed.
|
||||
|
||||
If you want to install `tpm` and plugins automatically when tmux is started, put the following snippet in `.tmux.conf` before the final `run '~/.tmux/plugins/tpm/tpm'`:
|
||||
|
||||
```
|
||||
if "test ! -d ~/.tmux/plugins/tpm" \
|
||||
"run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'"
|
||||
```
|
||||
|
||||
This useful tip was submitted by @acr4 and narfman0.
|
|
@ -1,14 +0,0 @@
|
|||
# Changing plugins install dir
|
||||
|
||||
By default, TPM installs plugins to `~/.tmux/plugins/`.
|
||||
|
||||
You can change the install path by putting this in `.tmux.conf`:
|
||||
|
||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH '/some/other/path/'
|
||||
|
||||
Tmux plugin manager initialization in `.tmux.conf` should also be updated:
|
||||
|
||||
# initializes TMUX plugin manager in a new path
|
||||
run /some/other/path/tpm/tpm
|
||||
|
||||
Please make sure that the `run` line is at the very bottom of `.tmux.conf`.
|
|
@ -1,108 +0,0 @@
|
|||
# How to create Tmux plugins
|
||||
|
||||
Creating a new plugin is easy.
|
||||
|
||||
For demonstration purposes we'll create a simple plugin that lists all
|
||||
installed TPM plugins. Yes, a plugin that lists plugins :) We'll bind that to
|
||||
`prefix + T`.
|
||||
|
||||
The source code for this example plugin can be found
|
||||
[here](https://github.com/tmux-plugins/tmux-example-plugin).
|
||||
|
||||
### 1. create a new git project
|
||||
|
||||
TPM depends on git for downloading and updating plugins.
|
||||
|
||||
To create a new git project:
|
||||
|
||||
$ mkdir tmux_my_plugin
|
||||
$ cd tmux_my_plugin
|
||||
$ git init
|
||||
|
||||
### 2. create a `*.tmux` plugin run file
|
||||
|
||||
When it sources a plugin, TPM executes all `*.tmux` files in your plugins'
|
||||
directory. That's how plugins are run.
|
||||
|
||||
Create a plugin run file in plugin directory:
|
||||
|
||||
$ touch my_plugin.tmux
|
||||
$ chmod u+x my_plugin.tmux
|
||||
|
||||
You can have more than one `*.tmux` file, and all will get executed. However, usually
|
||||
you'll need just one.
|
||||
|
||||
### 3. create a plugin key binding
|
||||
|
||||
We want the behavior of the plugin to trigger when a user hits `prefix + T`.
|
||||
|
||||
Key `T` is chosen because:
|
||||
- it's "kind of" a mnemonic for `TPM`
|
||||
- the key is not used by Tmux natively. Tmux man page, KEY BINDINGS section
|
||||
contains a list of all the bindings Tmux uses. There's plenty of unused keys
|
||||
and we don't want to override any of Tmux default key bindings.
|
||||
|
||||
Open the plugin run file in your favorite text editor:
|
||||
|
||||
$ vim my_plugin.tmux
|
||||
# or
|
||||
$ subl my_plugin.tmux
|
||||
|
||||
Put the following content in the file:
|
||||
|
||||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
tmux bind-key T run-shell "$CURRENT_DIR/scripts/tmux_list_plugins.sh"
|
||||
|
||||
As you can see, plugin run file is a simple bash script that sets up the binding.
|
||||
|
||||
When pressed, `prefix + T` will execute another shell script:
|
||||
`tmux_list_plugins.sh`. That script should be in `scripts/` directory -
|
||||
relative to the plugin run file.
|
||||
|
||||
|
||||
### 4. listing plugins
|
||||
|
||||
Now that we have the binding, let's create a script that's invoked with
|
||||
`prefix + T`.
|
||||
|
||||
$ mkdir scripts
|
||||
$ touch scripts/tmux_list_plugins.sh
|
||||
$ chmod u+x scripts/tmux_list_plugins.sh
|
||||
|
||||
And here's the script content:
|
||||
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# fetching the directory where plugins are installed
|
||||
plugin_path="$(tmux show-env -g TMUX_PLUGIN_MANAGER_PATH | cut -f2 -d=)"
|
||||
|
||||
# listing installed plugins
|
||||
ls -1 "$plugin_path"
|
||||
|
||||
### 5. try it out
|
||||
|
||||
To see if this works, execute the plugin run file:
|
||||
|
||||
$ ./my_plugin.tmux
|
||||
|
||||
That should set up the key binding. Now hit `prefix + T` and see if it works.
|
||||
|
||||
### 6. publish the plugin
|
||||
|
||||
When everything is ready, push the plugin to an online git repository,
|
||||
preferably Github.
|
||||
|
||||
Other users can install your plugin by just adding plugin git URL to the
|
||||
`@plugin` list in their `.tmux.conf`.
|
||||
|
||||
If the plugin is on Github, your users will be able to use the shorthand of
|
||||
`github_username/repository`.
|
||||
|
||||
### Conclusion
|
||||
|
||||
Hopefully, that was easy. As you can see, it's mostly shell scripting.
|
||||
|
||||
You can use other scripting languages (ruby, python etc) but plain old shell
|
||||
is preferred because of portability.
|
|
@ -1,36 +0,0 @@
|
|||
# Managing plugins via the command line
|
||||
|
||||
Aside from tmux key bindings, TPM provides shell interface for managing plugins
|
||||
via scripts located in [bin/](../bin/) directory.
|
||||
|
||||
Tmux does not need to be started in order to run scripts (but it's okay if it
|
||||
is). If you [changed tpm install dir](../docs/changing_plugins_install_dir.md)
|
||||
in `.tmux.conf` that should work fine too.
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- tmux installed on the system (doh)
|
||||
- `.tmux.conf` set up for TPM
|
||||
|
||||
### Installing plugins
|
||||
|
||||
As usual, plugins need to be specified in `.tmux.conf`. Run the following
|
||||
command to install plugins:
|
||||
|
||||
~/.tmux/plugins/tpm/bin/install_plugins
|
||||
|
||||
### Updating plugins
|
||||
|
||||
To update all installed plugins:
|
||||
|
||||
~/.tmux/plugins/tpm/bin/update_plugins all
|
||||
|
||||
or update a single plugin:
|
||||
|
||||
~/.tmux/plugins/tpm/bin/update_plugins tmux-sensible
|
||||
|
||||
### Removing plugins
|
||||
|
||||
To remove plugins not on the plugin list:
|
||||
|
||||
~/.tmux/plugins/tpm/bin/clean_plugins
|
|
@ -1,96 +0,0 @@
|
|||
# Help, tpm not working!
|
||||
|
||||
Here's the list of issues users had with `tpm`:
|
||||
|
||||
<hr />
|
||||
|
||||
> Nothing works. `tpm` key bindings `prefix + I`, `prefix + U` not even
|
||||
defined.
|
||||
|
||||
Related [issue #22](https://github.com/tmux-plugins/tpm/issues/22)
|
||||
|
||||
- Do you have required `tmux` version to run `tpm`?<br/>
|
||||
Check `tmux` version with `$ tmux -V` command and make sure it's higher or
|
||||
equal to the required version for `tpm` as stated in the readme.
|
||||
|
||||
- ZSH tmux plugin might be causing issues.<br/>
|
||||
If you have it installed, try disabling it and see if `tpm` works then.
|
||||
|
||||
<hr />
|
||||
|
||||
> Help, I'm using custom config file with `tmux -f /path/to/my_tmux.conf`
|
||||
to start Tmux and for some reason plugins aren't loaded!?
|
||||
|
||||
Related [issue #57](https://github.com/tmux-plugins/tpm/issues/57)
|
||||
|
||||
`tpm` has a known issue when using custom config file with `-f` option.
|
||||
The solution is to use alternative plugin definition syntax. Here are the steps
|
||||
to make it work:
|
||||
|
||||
1. remove all `set -g @plugin` lines from tmux config file
|
||||
2. in the config file define the plugins in the following way:
|
||||
|
||||
# List of plugins
|
||||
set -g @tpm_plugins ' \
|
||||
tmux-plugins/tpm \
|
||||
tmux-plugins/tmux-sensible \
|
||||
tmux-plugins/tmux-resurrect \
|
||||
'
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
||||
|
||||
3. Reload TMUX environment so TPM is sourced: `$ tmux source /path/to/my_tmux.conf`
|
||||
|
||||
The plugins should now be working.
|
||||
|
||||
<hr />
|
||||
|
||||
> Weird sequence of characters show up when installing or updating plugins
|
||||
|
||||
Related: [issue #25](https://github.com/tmux-plugins/tpm/issues/25)
|
||||
|
||||
- This could be caused by [tmuxline.vim](https://github.com/edkolev/tmuxline.vim)
|
||||
plugin. Uninstall it and see if things work.
|
||||
|
||||
<hr />
|
||||
|
||||
> "failed to connect to server" error when sourcing .tmux.conf
|
||||
|
||||
Related: [issue #48](https://github.com/tmux-plugins/tpm/issues/48)
|
||||
|
||||
- Make sure `tmux source ~/.tmux.conf` command is ran from inside `tmux`.
|
||||
|
||||
<hr />
|
||||
|
||||
> tpm not working: '~/.tmux/plugins/tpm/tpm' returned 2 (Windows / Cygwin)
|
||||
|
||||
Related: [issue #81](https://github.com/tmux-plugins/tpm/issues/81)
|
||||
|
||||
This issue is most likely caused by Windows line endings. For example, if you
|
||||
have git's `core.autocrlf` option set to `true`, git will automatically convert
|
||||
all the files to Windows line endings which might cause a problem.
|
||||
|
||||
The solution is to convert all line ending to Unix newline characters. This
|
||||
command handles that for all files under `.tmux/` dir (skips `.git`
|
||||
subdirectories):
|
||||
|
||||
```bash
|
||||
find ~/.tmux -type d -name '.git*' -prune -o -type f -print0 | xargs -0 dos2unix
|
||||
```
|
||||
|
||||
<hr />
|
||||
|
||||
> '~/.tmux/plugins/tpm/tpm' returned 127 (on macOS, w/ tmux installed using brew)
|
||||
|
||||
Related: [issue #67](https://github.com/tmux-plugins/tpm/issues/67)
|
||||
|
||||
This problem is because tmux's `run-shell` command runs a shell which doesn't read from user configs, thus tmux installed in `/usr/local/bin` will not be found.
|
||||
|
||||
The solution is to insert the following line:
|
||||
|
||||
```
|
||||
set-environment -g PATH "/usr/local/bin:/bin:/usr/bin"
|
||||
```
|
||||
|
||||
before any `run-shell`/`run` commands in `~/.tmux.conf`.
|
2
tmux/plugins/tpm/lib/tmux-test/.gitignore
vendored
2
tmux/plugins/tpm/lib/tmux-test/.gitignore
vendored
|
@ -1,2 +0,0 @@
|
|||
.vagrant/
|
||||
lib/
|
|
@ -1,19 +0,0 @@
|
|||
# generic packages and tmux
|
||||
before_install:
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install -y git-core expect
|
||||
- sudo apt-get install -y python-software-properties software-properties-common
|
||||
- sudo apt-get install -y libevent-dev libncurses-dev
|
||||
- git clone https://github.com/tmux/tmux.git
|
||||
- cd tmux
|
||||
- git checkout 2.5
|
||||
- sh autogen.sh
|
||||
- ./configure && make && sudo make install
|
||||
|
||||
install:
|
||||
- git fetch --unshallow --recurse-submodules || git fetch --recurse-submodules
|
||||
# manual `git clone` required for testing `tmux-test` plugin itself
|
||||
- git clone https://github.com/tmux-plugins/tmux-test lib/tmux-test; true
|
||||
- lib/tmux-test/setup
|
||||
|
||||
script: ./tests/run_tests_in_isolation
|
|
@ -1,46 +0,0 @@
|
|||
# Changelog
|
||||
|
||||
### master
|
||||
- move `setup` task to `.travis.yml` for travis tests
|
||||
- "merge" travis.yml and travis_for_plugins.yml files (no need to keep em
|
||||
separate)
|
||||
- add more useful helper functions
|
||||
- remove tmux-test repo as a submodule from self, this causes issues with
|
||||
`$ git submodule update --recursive --init` command that some users use for
|
||||
managing other plugins
|
||||
- add new helper `teardown_helper`
|
||||
- add `run_tests` helper
|
||||
- change CLI syntax for choosing vagrant machine to run the tests on
|
||||
- enable running just a single test via `run_tests` cli interface
|
||||
- add `--keep-running` cli option to continue running vagrant after the tests
|
||||
are done executing
|
||||
- start using tmux 2.0 for tests
|
||||
- use tmux 2.5 for tests
|
||||
|
||||
### v0.2.0, 2015-02-22
|
||||
- `setup` script gitignores `tests/helpers.sh`
|
||||
- move `tests/helpers.sh` to `tests/helpers/helpers.sh`
|
||||
- `setup` undo removes added lines from gitignore file
|
||||
|
||||
### v0.1.0, 2015-02-22
|
||||
- changes so that 'tmux-test' can be included with tmux plugins
|
||||
- do not gitignore submodules directory
|
||||
- add installation and usage instructions
|
||||
- copy `.travis.yml` to the project root when running `setup` script
|
||||
- add a brief mention of travis CI to the readme
|
||||
- add test helpers
|
||||
- `setup` script symlinks helpers file to `tests/` directory
|
||||
- `setup` script can undo most of its actions
|
||||
- add a tmux scripting test
|
||||
- `tmux-test` uses `tmux-test` to test itself
|
||||
- update `tmux-test` submodule
|
||||
- a different `travis.yml` for `tmux-test` and for plugins
|
||||
|
||||
### v0.0.1, 2015-02-21
|
||||
- git init
|
||||
- add vagrant provisioning scripts for ubuntu and debian
|
||||
- add a ".travis.yml" file
|
||||
- generic "run_tests" script
|
||||
- "run_tests_in_isolation" script
|
||||
- add "Vagrantfile"
|
||||
- enable passing VM names as arguments to "run_tests" script
|
|
@ -1,19 +0,0 @@
|
|||
Copyright (C) Bruno Sutic
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -1,131 +0,0 @@
|
|||
# tmux-test
|
||||
|
||||
[![Build Status](https://travis-ci.org/tmux-plugins/tmux-test.png?branch=master)](https://travis-ci.org/tmux-plugins/tmux-test)
|
||||
|
||||
A small framework for isolated testing of tmux plugins. Isolation is achieved by
|
||||
running the tests in `Vagrant`. Works on [travis](travis-ci.org) too.
|
||||
|
||||
Extracted from [tmux plugin manager](https://github.com/tmux-plugins/tpm) and
|
||||
[tmux-copycat](https://github.com/tmux-plugins/tmux-copycat).
|
||||
|
||||
Dependencies: `Vagrant` (not required when running on travis).
|
||||
|
||||
### Setup
|
||||
|
||||
Let's say you made tmux plugin with the following file hierarchy:
|
||||
|
||||
```text
|
||||
/tmux-plugin
|
||||
|-- plugin.tmux
|
||||
`-- scripts
|
||||
`-- plugin_script.sh
|
||||
```
|
||||
|
||||
From your project root directory (tmux-plugin/) execute the following shell
|
||||
command to fetch `tmux-test` and add it as a submodule:
|
||||
|
||||
$ git submodule add https://github.com/tmux-plugins/tmux-test.git lib/tmux-test
|
||||
|
||||
Run the `setup` script:
|
||||
|
||||
$ lib/tmux-test/setup
|
||||
|
||||
The project directory will now look like this (additions have comments):
|
||||
|
||||
```text
|
||||
/tmux-plugin
|
||||
|-- plugin.tmux
|
||||
|-- run_tests # symlink, gitignored
|
||||
|-- .gitignore # 2 lines appended to gitignore
|
||||
|-- .travis.yml # added
|
||||
|-- lib/tmux-test/ # git submodule
|
||||
|-- scripts
|
||||
| `-- plugin_script.sh
|
||||
`-- tests # dir to put the tests in
|
||||
`-- run_tests_in_isolation.sh # symlink, gitignored
|
||||
`-- helpers
|
||||
`-- helpers.sh # symlinked bash helpers, gitignored
|
||||
```
|
||||
|
||||
`tmux-test` is now set up. You are ok to commit the additions to the repo.
|
||||
|
||||
### Writing and running tests
|
||||
|
||||
A test is any executable with a name starting with `test_` in `tests/`
|
||||
directory.
|
||||
|
||||
Now that you installed `tmux-test` let's create an example test.
|
||||
|
||||
- create a `tests/test_example.sh` file with the following content (it's a
|
||||
`bash` script but it can be any executable):
|
||||
|
||||
#/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# bash helpers provided by 'tmux-test'
|
||||
source $CURRENT_DIR/helpers/helpers.sh
|
||||
|
||||
# installs plugin from current repo in Vagrant (or on Travis)
|
||||
install_tmux_plugin_under_test_helper
|
||||
|
||||
# start tmux in background (plugin under test is sourced)
|
||||
tmux new -d
|
||||
|
||||
# get first session name
|
||||
session_name="$(tmux list-sessions -F "#{session_name}")"
|
||||
|
||||
# fail the test if first session name is not "0"
|
||||
if [ "$session_name" == "0" ]; then
|
||||
# fail_helper is also provided by 'tmux-test'
|
||||
fail_helper "First session name is not '0' by default"
|
||||
fi
|
||||
|
||||
# sets the right script exit code ('tmux-test' helper)
|
||||
exit_helper
|
||||
|
||||
- make the test file executable with `$ chmod +x tests/test_example.sh`
|
||||
- run the test by executing `./run_tests` from the project root directory
|
||||
- the first invocation might take some time because Vagrant's ubuntu virtual
|
||||
machine is downloading. You should see `Success, tests pass!` message when it's
|
||||
done.
|
||||
|
||||
Check out more example test scripts in this project's [tests/ directory](tests/).
|
||||
|
||||
### Continuous integration
|
||||
|
||||
The setup script (`lib/tmux-test/setup`) added a `.travis.yml` file to the
|
||||
project root. To setup continuous integration, just add/enable the project on
|
||||
[travis](travis-ci.org).
|
||||
|
||||
### Notes
|
||||
|
||||
- The `tests/` directory for tests and `lib/tmux-test/` for cloning `tmux-test`
|
||||
into cannot be changed currently
|
||||
- Don't run `tests/run_tests_in_isolation` script on your local development
|
||||
environment. That's an internal test runner meant to be executed in an
|
||||
isolated environment like `vagrant` or `travis`.<br/>
|
||||
Use `./run_tests` script.
|
||||
- You can use `KEEP_RUNNING=true ./run_tests` for faster test running cycle.
|
||||
If this case `Vagrant` will keep running even after the tests are done.
|
||||
- You can use `VAGRANT_CWD=lib/tmux-test/ vagrant ssh ubuntu` for ssh login to
|
||||
`Vagrant`.
|
||||
|
||||
### Running `tmux-test` framework tests
|
||||
|
||||
`tmux-test` uses itself to test itself. To run framework tests:
|
||||
|
||||
- clone this project `$ git clone git@github.com:tmux-plugins/tmux-test.git`
|
||||
- `$ cd tmux-test`
|
||||
- run `$ ./run_framework_tests`
|
||||
|
||||
### Other goodies
|
||||
|
||||
- [tmux-copycat](https://github.com/tmux-plugins/tmux-copycat) - a plugin for
|
||||
regex searches in tmux and fast match selection
|
||||
- [tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) - automatic
|
||||
restoring and continuous saving of tmux env
|
||||
|
||||
### License
|
||||
|
||||
[MIT](LICENSE.md)
|
17
tmux/plugins/tpm/lib/tmux-test/Vagrantfile
vendored
17
tmux/plugins/tpm/lib/tmux-test/Vagrantfile
vendored
|
@ -1,17 +0,0 @@
|
|||
VAGRANTFILE_API_VERSION = "2"
|
||||
|
||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||
|
||||
config.vm.synced_folder "../../", "/vagrant"
|
||||
|
||||
config.vm.define :ubuntu do |ubuntu|
|
||||
ubuntu.vm.box = "hashicorp/precise64"
|
||||
ubuntu.vm.provision "shell", path: "vagrant_ubuntu_provisioning.sh"
|
||||
end
|
||||
|
||||
config.vm.define :centos do |centos|
|
||||
centos.vm.box = "chef/centos-6.5"
|
||||
centos.vm.provision "shell", path: "vagrant_centos_provisioning.sh"
|
||||
end
|
||||
|
||||
end
|
|
@ -1,17 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# This file is used to run "tmux-test" framework tests.
|
||||
|
||||
# "setup" script is needed to run the tests, but it overrides some working dir
|
||||
# files. To address that, "setup" is run before the tests and its actions are
|
||||
# undone after.
|
||||
|
||||
main() {
|
||||
git clone https://github.com/tmux-plugins/tmux-test lib/tmux-test
|
||||
lib/tmux-test/setup
|
||||
./run_tests
|
||||
local exit_value=$?
|
||||
lib/tmux-test/setup "undo"
|
||||
exit "$exit_value"
|
||||
}
|
||||
main
|
|
@ -1,93 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# invoke this script from your projects root directory
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# pass "undo" as a script arg to undo most of the setup actions
|
||||
UNDO_SETUP="$1"
|
||||
undo() {
|
||||
[ "$UNDO_SETUP" == "undo" ]
|
||||
}
|
||||
|
||||
restore() {
|
||||
local file="$1"
|
||||
rm -f "$file"
|
||||
git checkout -- "$file" 2>/dev/null
|
||||
}
|
||||
|
||||
gitignore() {
|
||||
local file="$1"
|
||||
grep -q "^${file}$" .gitignore 2>/dev/null || echo "$file" >> .gitignore
|
||||
}
|
||||
|
||||
remove_from_gitignore() {
|
||||
local file="$1"
|
||||
local escaped_filename="$(echo "$file" | sed "s,/,\\\/,g")"
|
||||
sed -i"" "/^${escaped_filename}$/d" .gitignore
|
||||
}
|
||||
|
||||
add_files_to_gitignore() {
|
||||
if ! undo; then
|
||||
gitignore "run_tests"
|
||||
gitignore "tests/run_tests_in_isolation"
|
||||
gitignore "tests/helpers/helpers.sh"
|
||||
else
|
||||
remove_from_gitignore "run_tests"
|
||||
remove_from_gitignore "tests/run_tests_in_isolation"
|
||||
remove_from_gitignore "tests/helpers/helpers.sh"
|
||||
fi
|
||||
}
|
||||
|
||||
symlink_user_test_runner() {
|
||||
local file="run_tests"
|
||||
if ! undo; then
|
||||
ln -sf "lib/tmux-test/${file}" "$file"
|
||||
else
|
||||
restore "$file"
|
||||
fi
|
||||
}
|
||||
|
||||
create_directory_for_tests() {
|
||||
if ! undo; then
|
||||
mkdir -p tests/helpers/
|
||||
fi
|
||||
}
|
||||
|
||||
symlink_internal_test_runner() {
|
||||
local file="tests/run_tests_in_isolation"
|
||||
if ! undo; then
|
||||
ln -sf "../lib/tmux-test/${file}" "$file"
|
||||
else
|
||||
restore "$file"
|
||||
fi
|
||||
}
|
||||
|
||||
symlink_test_helpers() {
|
||||
local file="tests/helpers/helpers.sh"
|
||||
if ! undo; then
|
||||
ln -sf "../../lib/tmux-test/${file}" "$file"
|
||||
else
|
||||
restore "$file"
|
||||
fi
|
||||
}
|
||||
|
||||
copy_travis_yml() {
|
||||
local file=".travis.yml"
|
||||
if ! undo; then
|
||||
cp "lib/tmux-test/${file}" "$file"
|
||||
else
|
||||
restore "$file"
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
add_files_to_gitignore
|
||||
symlink_user_test_runner
|
||||
create_directory_for_tests
|
||||
symlink_internal_test_runner
|
||||
symlink_test_helpers
|
||||
copy_travis_yml
|
||||
}
|
||||
main
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
# This file is a symlink from 'tmux-test' plugin.
|
||||
# You probably don't want to edit it.
|
||||
|
||||
|
||||
# Global variable that keeps the value of test status (success/fail).
|
||||
# Suggested usage is via `fail_helper` and `exit_helper` functions.
|
||||
TEST_STATUS="success"
|
||||
|
||||
# PRIVATE FUNCTIONS
|
||||
|
||||
_clone_the_plugin() {
|
||||
local plugin_path="${HOME}/.tmux/plugins/tmux-plugin-under-test/"
|
||||
rm -rf "$plugin_path"
|
||||
git clone --recursive "${CURRENT_DIR}/../" "$plugin_path" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
_add_plugin_to_tmux_conf() {
|
||||
set_tmux_conf_helper<<-HERE
|
||||
run-shell '~/.tmux/plugins/tmux-plugin-under-test/*.tmux'
|
||||
HERE
|
||||
}
|
||||
|
||||
# PUBLIC HELPER FUNCTIONS
|
||||
|
||||
teardown_helper() {
|
||||
rm -f ~/.tmux.conf
|
||||
rm -rf ~/.tmux/
|
||||
tmux kill-server >/dev/null 2>&1
|
||||
}
|
||||
|
||||
set_tmux_conf_helper() {
|
||||
> ~/.tmux.conf # empty tmux.conf file
|
||||
while read line; do
|
||||
echo "$line" >> ~/.tmux.conf
|
||||
done
|
||||
}
|
||||
|
||||
fail_helper() {
|
||||
local message="$1"
|
||||
echo "$message" >&2
|
||||
TEST_STATUS="fail"
|
||||
}
|
||||
|
||||
exit_helper() {
|
||||
teardown_helper
|
||||
if [ "$TEST_STATUS" == "fail" ]; then
|
||||
echo "FAIL!"
|
||||
echo
|
||||
exit 1
|
||||
else
|
||||
echo "SUCCESS"
|
||||
echo
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
install_tmux_plugin_under_test_helper() {
|
||||
_clone_the_plugin
|
||||
_add_plugin_to_tmux_conf
|
||||
}
|
||||
|
||||
run_tests() {
|
||||
# get all the functions starting with 'test_' and invoke them
|
||||
for test in $(compgen -A function | grep "^test_"); do
|
||||
"$test"
|
||||
done
|
||||
exit_helper
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# This file is a symlink from 'tmux-test' plugin.
|
||||
# You probably don't want to edit it.
|
||||
|
||||
# This script should be run within an isolated enviroment (Vagrant, travis).
|
||||
# Depending on what the tests do, it might NOT be safe to run this script
|
||||
# directly on the development machine.
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
EXIT_VALUE=0 # running a test suite is successful by default
|
||||
|
||||
all_test_files() {
|
||||
ls -1 "$CURRENT_DIR" | # test files are in the current dir
|
||||
\grep -i "^test" | # test file names start with "test"
|
||||
xargs # file names in a single line
|
||||
}
|
||||
|
||||
set_exit_val_to_false() {
|
||||
EXIT_VALUE=1
|
||||
}
|
||||
|
||||
run_tests() {
|
||||
local test_file tests_files
|
||||
if [ "$#" -gt 0 ]; then
|
||||
test_files="${@//tests\//}" # remove 'tests/' directory prefix
|
||||
else
|
||||
test_files="$(all_test_files)"
|
||||
fi
|
||||
for test_file in $test_files; do
|
||||
echo "Running test: $test_file"
|
||||
"${CURRENT_DIR}/${test_file}"
|
||||
|
||||
# handling exit value
|
||||
local test_exit_value="$?"
|
||||
if [ "$test_exit_value" -ne 0 ]; then
|
||||
set_exit_val_to_false
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
main() {
|
||||
run_tests "$@"
|
||||
exit "$EXIT_VALUE"
|
||||
}
|
||||
main "$@"
|
|
@ -1,3 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
exit 0
|
|
@ -1,24 +0,0 @@
|
|||
#/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
# bash helpers provided by 'tmux-test'
|
||||
source $CURRENT_DIR/helpers/helpers.sh
|
||||
|
||||
# installs plugin from current repo in Vagrant (or on Travis)
|
||||
install_tmux_plugin_under_test_helper
|
||||
|
||||
# start tmux in background (plugin under test is sourced)
|
||||
tmux new -d
|
||||
|
||||
# get first session name
|
||||
session_name="$(tmux list-sessions -F "#{session_name}")"
|
||||
|
||||
# fail the test if first session name is not "0"
|
||||
if ! [ "$session_name" == "0" ]; then
|
||||
# fail_helper is also provided by 'tmux-test'
|
||||
fail_helper "First session name is not '0' by default"
|
||||
fi
|
||||
|
||||
# sets the right script exit code ('tmux-test' helper)
|
||||
exit_helper
|
|
@ -1,24 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
source $CURRENT_DIR/helpers/helpers.sh
|
||||
|
||||
number_of_windows() {
|
||||
tmux list-windows |
|
||||
wc -l |
|
||||
sed "s/ //g"
|
||||
}
|
||||
|
||||
main() {
|
||||
# start tmux in the background
|
||||
tmux new -d
|
||||
tmux new-window
|
||||
|
||||
local number_of_windows="$(number_of_windows)"
|
||||
if ! [ "$number_of_windows" -eq 2 ]; then
|
||||
fail_helper "Incorrect number of windows. Expected 2, got $number_of_windows"
|
||||
fi
|
||||
exit_helper
|
||||
}
|
||||
main
|
|
@ -1,26 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# libevent2 installation instructions from here
|
||||
# https://gist.github.com/rschuman/6168833
|
||||
|
||||
sudo su -
|
||||
|
||||
yum -y install gcc kernel-devel make automake autoconf ncurses-devel
|
||||
yum -y install git-core expect vim ruby ruby-devel ruby-irb
|
||||
|
||||
# install libevent2 from source
|
||||
curl http://sourceforge.net/projects/levent/files/latest/download?source=files -L -o libevent2.tar.gz -w 'Last URL was: %{url_effective}'
|
||||
cd ~/downloads
|
||||
tar zxvf libevent2.tar.gz
|
||||
cd ./libevent-*
|
||||
./configure --prefix=/usr/local
|
||||
make
|
||||
make install
|
||||
|
||||
# compile tmux
|
||||
git clone https://github.com/tmux/tmux.git ~/tmux_source
|
||||
cd ~/tmux_source
|
||||
git checkout 2.5
|
||||
sh autogen.sh
|
||||
LDFLAGS="-L/usr/local/lib -Wl,-rpath=/usr/local/lib" ./configure --prefix=/usr/local
|
||||
make && sudo make install
|
|
@ -1,15 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git-core expect vim
|
||||
sudo apt-get install -y python-software-properties software-properties-common
|
||||
sudo apt-get install -y build-essential libtool autotools-dev autoconf
|
||||
sudo apt-get install -y pkg-config libevent-dev libncurses-dev
|
||||
sudo apt-get install -y man-db
|
||||
|
||||
# install tmux 2.5
|
||||
git clone https://github.com/tmux/tmux.git ~/tmux_source
|
||||
cd ~/tmux_source
|
||||
git checkout 2.5
|
||||
sh autogen.sh
|
||||
./configure && make && sudo make install
|
|
@ -1,78 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
VERSION="$1"
|
||||
UNSUPPORTED_MSG="$2"
|
||||
|
||||
get_tmux_option() {
|
||||
local option=$1
|
||||
local default_value=$2
|
||||
local option_value=$(tmux show-option -gqv "$option")
|
||||
if [ -z "$option_value" ]; then
|
||||
echo "$default_value"
|
||||
else
|
||||
echo "$option_value"
|
||||
fi
|
||||
}
|
||||
|
||||
# Ensures a message is displayed for 5 seconds in tmux prompt.
|
||||
# Does not override the 'display-time' tmux option.
|
||||
display_message() {
|
||||
local message="$1"
|
||||
|
||||
# display_duration defaults to 5 seconds, if not passed as an argument
|
||||
if [ "$#" -eq 2 ]; then
|
||||
local display_duration="$2"
|
||||
else
|
||||
local display_duration="5000"
|
||||
fi
|
||||
|
||||
# saves user-set 'display-time' option
|
||||
local saved_display_time=$(get_tmux_option "display-time" "750")
|
||||
|
||||
# sets message display time to 5 seconds
|
||||
tmux set-option -gq display-time "$display_duration"
|
||||
|
||||
# displays message
|
||||
tmux display-message "$message"
|
||||
|
||||
# restores original 'display-time' value
|
||||
tmux set-option -gq display-time "$saved_display_time"
|
||||
}
|
||||
|
||||
# this is used to get "clean" integer version number. Examples:
|
||||
# `tmux 1.9` => `19`
|
||||
# `1.9a` => `19`
|
||||
get_digits_from_string() {
|
||||
local string="$1"
|
||||
local only_digits="$(echo "$string" | tr -dC '[:digit:]')"
|
||||
echo "$only_digits"
|
||||
}
|
||||
|
||||
tmux_version_int() {
|
||||
local tmux_version_string=$(tmux -V)
|
||||
echo "$(get_digits_from_string "$tmux_version_string")"
|
||||
}
|
||||
|
||||
unsupported_version_message() {
|
||||
if [ -n "$UNSUPPORTED_MSG" ]; then
|
||||
echo "$UNSUPPORTED_MSG"
|
||||
else
|
||||
echo "Error, Tmux version unsupported! Please install Tmux version $VERSION or greater!"
|
||||
fi
|
||||
}
|
||||
|
||||
exit_if_unsupported_version() {
|
||||
local current_version="$1"
|
||||
local supported_version="$2"
|
||||
if [ "$current_version" -lt "$supported_version" ]; then
|
||||
display_message "$(unsupported_version_message)"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
local supported_version_int="$(get_digits_from_string "$VERSION")"
|
||||
local current_version_int="$(tmux_version_int)"
|
||||
exit_if_unsupported_version "$current_version_int" "$supported_version_int"
|
||||
}
|
||||
main
|
|
@ -1,41 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
HELPERS_DIR="$CURRENT_DIR/helpers"
|
||||
|
||||
source "$HELPERS_DIR/plugin_functions.sh"
|
||||
source "$HELPERS_DIR/utility.sh"
|
||||
|
||||
if [ "$1" == "--tmux-echo" ]; then # tmux-specific echo functions
|
||||
source "$HELPERS_DIR/tmux_echo_functions.sh"
|
||||
else # shell output functions
|
||||
source "$HELPERS_DIR/shell_echo_functions.sh"
|
||||
fi
|
||||
|
||||
clean_plugins() {
|
||||
local plugins plugin plugin_directory
|
||||
plugins="$(tpm_plugins_list_helper)"
|
||||
|
||||
for plugin_directory in "$(tpm_path)"/*; do
|
||||
[ -d "${plugin_directory}" ] || continue
|
||||
plugin="$(plugin_name_helper "${plugin_directory}")"
|
||||
case "${plugins}" in
|
||||
*"${plugin}"*) : ;;
|
||||
*)
|
||||
[ "${plugin}" = "tpm" ] && continue
|
||||
echo_ok "Removing \"$plugin\""
|
||||
rm -rf "${plugin_directory}" >/dev/null 2>&1
|
||||
[ -d "${plugin_directory}" ] &&
|
||||
echo_err " \"$plugin\" clean fail" ||
|
||||
echo_ok " \"$plugin\" clean success"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main() {
|
||||
ensure_tpm_path_exists
|
||||
clean_plugins
|
||||
exit_value_helper
|
||||
}
|
||||
main
|
|
@ -1,104 +0,0 @@
|
|||
# using @tpm_plugins is now deprecated in favor of using @plugin syntax
|
||||
tpm_plugins_variable_name="@tpm_plugins"
|
||||
|
||||
# manually expanding tilde char or `$HOME` variable.
|
||||
_manual_expansion() {
|
||||
local path="$1"
|
||||
local expanded_tilde="${path/#\~/$HOME}"
|
||||
echo "${expanded_tilde/#\$HOME/$HOME}"
|
||||
}
|
||||
|
||||
_tpm_path() {
|
||||
local string_path="$(tmux start-server\; show-environment -g TMUX_PLUGIN_MANAGER_PATH | cut -f2 -d=)/"
|
||||
_manual_expansion "$string_path"
|
||||
}
|
||||
|
||||
_CACHED_TPM_PATH="$(_tpm_path)"
|
||||
|
||||
# Get the absolute path to the users configuration file of TMux.
|
||||
# This includes a prioritized search on different locations.
|
||||
#
|
||||
_get_user_tmux_conf() {
|
||||
# Define the different possible locations.
|
||||
xdg_location="$XDG_CONFIG_HOME/tmux/tmux.conf"
|
||||
default_location="$HOME/.tmux.conf"
|
||||
|
||||
# Search for the correct configuration file by priority.
|
||||
if [ -f "$xdg_location" ]; then
|
||||
echo "$xdg_location"
|
||||
|
||||
else
|
||||
echo "$default_location"
|
||||
fi
|
||||
}
|
||||
|
||||
_tmux_conf_contents() {
|
||||
user_config=$(_get_user_tmux_conf)
|
||||
cat /etc/tmux.conf "$user_config" 2>/dev/null
|
||||
if [ "$1" == "full" ]; then # also output content from sourced files
|
||||
local file
|
||||
for file in $(_sourced_files); do
|
||||
cat $(_manual_expansion "$file") 2>/dev/null
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# return files sourced from tmux config files
|
||||
_sourced_files() {
|
||||
_tmux_conf_contents |
|
||||
awk '/^[ \t]*source(-file)? +/ { gsub(/'\''/,""); gsub(/'\"'/,""); print $2 }'
|
||||
}
|
||||
|
||||
# Want to be able to abort in certain cases
|
||||
trap "exit 1" TERM
|
||||
export TOP_PID=$$
|
||||
|
||||
_fatal_error_abort() {
|
||||
echo >&2 "Aborting."
|
||||
kill -s TERM $TOP_PID
|
||||
}
|
||||
|
||||
# PUBLIC FUNCTIONS BELOW
|
||||
|
||||
tpm_path() {
|
||||
if [ "$_CACHED_TPM_PATH" == "/" ]; then
|
||||
echo >&2 "FATAL: Tmux Plugin Manager not configured in tmux.conf"
|
||||
_fatal_error_abort
|
||||
fi
|
||||
echo "$_CACHED_TPM_PATH"
|
||||
}
|
||||
|
||||
tpm_plugins_list_helper() {
|
||||
# lists plugins from @tpm_plugins option
|
||||
echo "$(tmux start-server\; show-option -gqv "$tpm_plugins_variable_name")"
|
||||
|
||||
# read set -g @plugin "tmux-plugins/tmux-example-plugin" entries
|
||||
_tmux_conf_contents "full" |
|
||||
awk '/^[ \t]*set(-option)? +-g +@plugin/ { gsub(/'\''/,""); gsub(/'\"'/,""); print $4 }'
|
||||
}
|
||||
|
||||
# Allowed plugin name formats:
|
||||
# 1. "git://github.com/user/plugin_name.git"
|
||||
# 2. "user/plugin_name"
|
||||
plugin_name_helper() {
|
||||
local plugin="$1"
|
||||
# get only the part after the last slash, e.g. "plugin_name.git"
|
||||
local plugin_basename="$(basename "$plugin")"
|
||||
# remove ".git" extension (if it exists) to get only "plugin_name"
|
||||
local plugin_name="${plugin_basename%.git}"
|
||||
echo "$plugin_name"
|
||||
}
|
||||
|
||||
plugin_path_helper() {
|
||||
local plugin="$1"
|
||||
local plugin_name="$(plugin_name_helper "$plugin")"
|
||||
echo "$(tpm_path)${plugin_name}/"
|
||||
}
|
||||
|
||||
plugin_already_installed() {
|
||||
local plugin="$1"
|
||||
local plugin_path="$(plugin_path_helper "$plugin")"
|
||||
[ -d "$plugin_path" ] &&
|
||||
cd "$plugin_path" &&
|
||||
git remote >/dev/null 2>&1
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
echo_ok() {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
echo_err() {
|
||||
fail_helper "$*"
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
_has_emacs_mode_keys() {
|
||||
$(tmux show -gw mode-keys | grep -q emacs)
|
||||
}
|
||||
|
||||
tmux_echo() {
|
||||
local message="$1"
|
||||
tmux run-shell "echo '$message'"
|
||||
}
|
||||
|
||||
echo_ok() {
|
||||
tmux_echo "$*"
|
||||
}
|
||||
|
||||
echo_err() {
|
||||
tmux_echo "$*"
|
||||
}
|
||||
|
||||
end_message() {
|
||||
if _has_emacs_mode_keys; then
|
||||
local continue_key="ESCAPE"
|
||||
else
|
||||
local continue_key="ENTER"
|
||||
fi
|
||||
tmux_echo ""
|
||||
tmux_echo "TMUX environment reloaded."
|
||||
tmux_echo ""
|
||||
tmux_echo "Done, press $continue_key to continue."
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
reload_tmux_environment() {
|
||||
tmux source-file ~/.tmux.conf >/dev/null 2>&1
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
ensure_tpm_path_exists() {
|
||||
mkdir -p "$(tpm_path)"
|
||||
}
|
||||
|
||||
fail_helper() {
|
||||
local message="$1"
|
||||
echo "$message" >&2
|
||||
FAIL="true"
|
||||
}
|
||||
|
||||
exit_value_helper() {
|
||||
if [ "$FAIL" == "true" ]; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
}
|
|
@ -1,66 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
HELPERS_DIR="$CURRENT_DIR/helpers"
|
||||
|
||||
source "$HELPERS_DIR/plugin_functions.sh"
|
||||
source "$HELPERS_DIR/utility.sh"
|
||||
|
||||
if [ "$1" == "--tmux-echo" ]; then # tmux-specific echo functions
|
||||
source "$HELPERS_DIR/tmux_echo_functions.sh"
|
||||
else # shell output functions
|
||||
source "$HELPERS_DIR/shell_echo_functions.sh"
|
||||
fi
|
||||
|
||||
clone() {
|
||||
local plugin="$1"
|
||||
cd "$(tpm_path)" &&
|
||||
GIT_TERMINAL_PROMPT=0 git clone --recursive "$plugin" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# tries cloning:
|
||||
# 1. plugin name directly - works if it's a valid git url
|
||||
# 2. expands the plugin name to point to a github repo and tries cloning again
|
||||
clone_plugin() {
|
||||
local plugin="$1"
|
||||
clone "$plugin" ||
|
||||
clone "https://git::@github.com/$plugin"
|
||||
}
|
||||
|
||||
# clone plugin and produce output
|
||||
install_plugin() {
|
||||
local plugin="$1"
|
||||
local plugin_name="$(plugin_name_helper "$plugin")"
|
||||
|
||||
if plugin_already_installed "$plugin"; then
|
||||
echo_ok "Already installed \"$plugin_name\""
|
||||
else
|
||||
echo_ok "Installing \"$plugin_name\""
|
||||
clone_plugin "$plugin" &&
|
||||
echo_ok " \"$plugin_name\" download success" ||
|
||||
echo_err " \"$plugin_name\" download fail"
|
||||
fi
|
||||
}
|
||||
|
||||
install_plugins() {
|
||||
local plugins="$(tpm_plugins_list_helper)"
|
||||
for plugin in $plugins; do
|
||||
install_plugin "$plugin"
|
||||
done
|
||||
}
|
||||
|
||||
verify_tpm_path_permissions() {
|
||||
local path="$(tpm_path)"
|
||||
# check the write permission flag for all users to ensure
|
||||
# that we have proper access
|
||||
[ -w "$path" ] ||
|
||||
echo_err "$path is not writable!"
|
||||
}
|
||||
|
||||
main() {
|
||||
ensure_tpm_path_exists
|
||||
verify_tpm_path_permissions
|
||||
install_plugins
|
||||
exit_value_helper
|
||||
}
|
||||
main
|
|
@ -1,41 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
HELPERS_DIR="$CURRENT_DIR/helpers"
|
||||
|
||||
source "$HELPERS_DIR/plugin_functions.sh"
|
||||
|
||||
plugin_dir_exists() {
|
||||
[ -d "$1" ]
|
||||
}
|
||||
|
||||
# Runs all *.tmux files from the plugin directory.
|
||||
# Files are ran as executables.
|
||||
# No errors if the plugin dir does not exist.
|
||||
silently_source_all_tmux_files() {
|
||||
local plugin_path="$1"
|
||||
local plugin_tmux_files="$plugin_path*.tmux"
|
||||
if plugin_dir_exists "$plugin_path"; then
|
||||
for tmux_file in $plugin_tmux_files; do
|
||||
# if the glob didn't find any files this will be the
|
||||
# unexpanded glob which obviously doesn't exist
|
||||
[ -f "$tmux_file" ] || continue
|
||||
# runs *.tmux file as an executable
|
||||
$tmux_file >/dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
source_plugins() {
|
||||
local plugin plugin_path
|
||||
local plugins="$(tpm_plugins_list_helper)"
|
||||
for plugin in $plugins; do
|
||||
plugin_path="$(plugin_path_helper "$plugin")"
|
||||
silently_source_all_tmux_files "$plugin_path"
|
||||
done
|
||||
}
|
||||
|
||||
main() {
|
||||
source_plugins
|
||||
}
|
||||
main
|
|
@ -1,71 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# this script handles core logic of updating plugins
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
HELPERS_DIR="$CURRENT_DIR/helpers"
|
||||
|
||||
source "$HELPERS_DIR/plugin_functions.sh"
|
||||
source "$HELPERS_DIR/utility.sh"
|
||||
|
||||
if [ "$1" == "--tmux-echo" ]; then # tmux-specific echo functions
|
||||
source "$HELPERS_DIR/tmux_echo_functions.sh"
|
||||
else # shell output functions
|
||||
source "$HELPERS_DIR/shell_echo_functions.sh"
|
||||
fi
|
||||
|
||||
# from now on ignore first script argument
|
||||
shift
|
||||
|
||||
pull_changes() {
|
||||
local plugin="$1"
|
||||
local plugin_path="$(plugin_path_helper "$plugin")"
|
||||
cd "$plugin_path" &&
|
||||
GIT_TERMINAL_PROMPT=0 git pull &&
|
||||
GIT_TERMINAL_PROMPT=0 git submodule update --init --recursive
|
||||
}
|
||||
|
||||
update() {
|
||||
local plugin="$1"
|
||||
$(pull_changes "$plugin" > /dev/null 2>&1) &&
|
||||
echo_ok " \"$plugin\" update success" ||
|
||||
echo_err " \"$plugin\" update fail"
|
||||
}
|
||||
|
||||
update_all() {
|
||||
echo_ok "Updating all plugins!"
|
||||
echo_ok ""
|
||||
local plugins="$(tpm_plugins_list_helper)"
|
||||
for plugin in $plugins; do
|
||||
local plugin_name="$(plugin_name_helper "$plugin")"
|
||||
# updating only installed plugins
|
||||
if plugin_already_installed "$plugin_name"; then
|
||||
update "$plugin_name" &
|
||||
fi
|
||||
done
|
||||
wait
|
||||
}
|
||||
|
||||
update_plugins() {
|
||||
local plugins="$*"
|
||||
for plugin in $plugins; do
|
||||
local plugin_name="$(plugin_name_helper "$plugin")"
|
||||
if plugin_already_installed "$plugin_name"; then
|
||||
update "$plugin_name" &
|
||||
else
|
||||
echo_err "$plugin_name not installed!" &
|
||||
fi
|
||||
done
|
||||
wait
|
||||
}
|
||||
|
||||
main() {
|
||||
ensure_tpm_path_exists
|
||||
if [ "$1" == "all" ]; then
|
||||
update_all
|
||||
else
|
||||
update_plugins "$*"
|
||||
fi
|
||||
exit_value_helper
|
||||
}
|
||||
main "$*"
|
|
@ -1,18 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
HELPERS_DIR="$CURRENT_DIR/helpers"
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
source "$HELPERS_DIR/tmux_echo_functions.sh"
|
||||
source "$HELPERS_DIR/tmux_utils.sh"
|
||||
|
||||
main() {
|
||||
"$CURRENT_DIR/update_plugin.sh" --tmux-echo "$*"
|
||||
reload_tmux_environment
|
||||
end_message
|
||||
}
|
||||
main "$*"
|
|
@ -1,13 +0,0 @@
|
|||
install_key_option="@tpm-install"
|
||||
default_install_key="I"
|
||||
|
||||
update_key_option="@tpm-update"
|
||||
default_update_key="U"
|
||||
|
||||
clean_key_option="@tpm-clean"
|
||||
default_clean_key="M-u"
|
||||
|
||||
SUPPORTED_TMUX_VERSION="1.9"
|
||||
|
||||
DEFAULT_TPM_ENV_VAR_NAME="TMUX_PLUGIN_MANAGER_PATH"
|
||||
DEFAULT_TPM_PATH="$HOME/.tmux/plugins/"
|
|
@ -1,36 +0,0 @@
|
|||
#!/usr/bin/env expect
|
||||
|
||||
# disables script output
|
||||
log_user 0
|
||||
|
||||
spawn tmux
|
||||
|
||||
# Waiting for tmux to attach. If this is not done, next command, `send` will
|
||||
# not work properly.
|
||||
sleep 1
|
||||
|
||||
# this is tmux prefix + I
|
||||
send "I"
|
||||
|
||||
# cloning might take a while
|
||||
set timeout 20
|
||||
|
||||
expect_after {
|
||||
timeout { exit 1 }
|
||||
}
|
||||
|
||||
expect {
|
||||
"Installing \"non-existing-plugin\""
|
||||
}
|
||||
|
||||
expect {
|
||||
"\"non-existing-plugin\" download fail"
|
||||
}
|
||||
|
||||
expect {
|
||||
"Done, press ENTER to continue" {
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
exit 1
|
|
@ -1,35 +0,0 @@
|
|||
#!/usr/bin/env expect
|
||||
|
||||
# disables script output
|
||||
log_user 0
|
||||
|
||||
spawn tmux
|
||||
|
||||
# Waiting for tmux to attach. If this is not done, next command, `send` will
|
||||
# not work properly.
|
||||
sleep 1
|
||||
|
||||
# this is tmux prefix + alt + u
|
||||
send "u"
|
||||
|
||||
set timeout 5
|
||||
|
||||
expect_after {
|
||||
timeout { exit 1 }
|
||||
}
|
||||
|
||||
expect {
|
||||
"Removing \"tmux-example-plugin\""
|
||||
}
|
||||
|
||||
expect {
|
||||
"\"tmux-example-plugin\" clean success"
|
||||
}
|
||||
|
||||
expect {
|
||||
"Done, press ENTER to continue." {
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
exit 1
|
|
@ -1,44 +0,0 @@
|
|||
#!/usr/bin/env expect
|
||||
|
||||
# disables script output
|
||||
log_user 0
|
||||
|
||||
spawn tmux
|
||||
|
||||
# Waiting for tmux to attach. If this is not done, next command, `send` will
|
||||
# not work properly.
|
||||
sleep 1
|
||||
|
||||
# this is tmux prefix + I
|
||||
send "I"
|
||||
|
||||
# cloning might take a while
|
||||
set timeout 15
|
||||
|
||||
expect_after {
|
||||
timeout { exit 1 }
|
||||
}
|
||||
|
||||
expect {
|
||||
"Installing \"tmux-example-plugin\""
|
||||
}
|
||||
|
||||
expect {
|
||||
"\"tmux-example-plugin\" download success"
|
||||
}
|
||||
|
||||
expect {
|
||||
"Installing \"tmux-copycat\""
|
||||
}
|
||||
|
||||
expect {
|
||||
"\"tmux-copycat\" download success"
|
||||
}
|
||||
|
||||
expect {
|
||||
"Done, press ENTER to continue." {
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
exit 1
|
|
@ -1,50 +0,0 @@
|
|||
#!/usr/bin/env expect
|
||||
|
||||
# disables script output
|
||||
log_user 0
|
||||
|
||||
spawn tmux
|
||||
|
||||
# Waiting for tmux to attach. If this is not done, next command, `send` will
|
||||
# not work properly.
|
||||
sleep 1
|
||||
|
||||
# this is tmux prefix + I
|
||||
send "I"
|
||||
|
||||
# cloning might take a while
|
||||
set timeout 15
|
||||
|
||||
expect_after {
|
||||
timeout { exit 1 }
|
||||
}
|
||||
|
||||
expect {
|
||||
"Installing \"tmux-example-plugin\""
|
||||
}
|
||||
|
||||
expect {
|
||||
"\"tmux-example-plugin\" download success"
|
||||
}
|
||||
|
||||
expect {
|
||||
"Done, press ENTER to continue" {
|
||||
send "
"
|
||||
}
|
||||
}
|
||||
|
||||
sleep 1
|
||||
# this is tmux prefix + I
|
||||
send "I"
|
||||
|
||||
expect {
|
||||
"Already installed \"tmux-example-plugin\""
|
||||
}
|
||||
|
||||
expect {
|
||||
"Done, press ENTER to continue" {
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
exit 1
|
|
@ -1,55 +0,0 @@
|
|||
#!/usr/bin/env expect
|
||||
|
||||
# disables script output
|
||||
log_user 0
|
||||
|
||||
spawn tmux
|
||||
|
||||
# Waiting for tmux to attach. If this is not done, next command, `send` will
|
||||
# not work properly.
|
||||
sleep 1
|
||||
|
||||
# this is tmux prefix + U
|
||||
send "U"
|
||||
|
||||
set timeout 15
|
||||
|
||||
expect_after {
|
||||
timeout { exit 1 }
|
||||
}
|
||||
|
||||
expect {
|
||||
"Installed plugins"
|
||||
}
|
||||
|
||||
expect {
|
||||
"tmux-example-plugin"
|
||||
}
|
||||
|
||||
expect {
|
||||
"\"all\" - updates all plugins"
|
||||
}
|
||||
|
||||
expect {
|
||||
"ENTER - cancels"
|
||||
}
|
||||
|
||||
# wait for tmux to display prompt before sending characters
|
||||
sleep 1
|
||||
send "tmux-example-plugin\r"
|
||||
|
||||
expect {
|
||||
"Updating \"tmux-example-plugin\""
|
||||
}
|
||||
|
||||
expect {
|
||||
"\"tmux-example-plugin\" update success"
|
||||
}
|
||||
|
||||
expect {
|
||||
"Done, press ENTER to continue." {
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
exit 1
|
|
@ -1,59 +0,0 @@
|
|||
#!/usr/bin/env expect
|
||||
|
||||
# disables script output
|
||||
log_user 0
|
||||
|
||||
spawn tmux
|
||||
|
||||
# Waiting for tmux to attach. If this is not done, next command, `send` will
|
||||
# not work properly.
|
||||
sleep 1
|
||||
|
||||
# this is tmux prefix + U
|
||||
send "U"
|
||||
|
||||
set timeout 5
|
||||
|
||||
expect_after {
|
||||
timeout { exit 1 }
|
||||
}
|
||||
|
||||
expect {
|
||||
"Installed plugins"
|
||||
}
|
||||
|
||||
expect {
|
||||
"tmux-example-plugin"
|
||||
}
|
||||
|
||||
expect {
|
||||
"\"all\" - updates all plugins"
|
||||
}
|
||||
|
||||
expect {
|
||||
"ENTER - cancels"
|
||||
}
|
||||
|
||||
# wait for tmux to display prompt before sending characters
|
||||
sleep 1
|
||||
send "all\r"
|
||||
|
||||
expect {
|
||||
"Updating all plugins!"
|
||||
}
|
||||
|
||||
expect {
|
||||
"Updating \"tmux-example-plugin\""
|
||||
}
|
||||
|
||||
expect {
|
||||
"\"tmux-example-plugin\" update success"
|
||||
}
|
||||
|
||||
expect {
|
||||
"Done, press ENTER to continue." {
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
exit 1
|
|
@ -1,13 +0,0 @@
|
|||
check_dir_exists_helper() {
|
||||
[ -d "$1" ]
|
||||
}
|
||||
|
||||
# runs the scripts and asserts it has the correct output and exit code
|
||||
script_run_helper() {
|
||||
local script="$1"
|
||||
local expected_output="$2"
|
||||
local expected_exit_code="${3:-0}"
|
||||
$script 2>&1 |
|
||||
grep "$expected_output" >/dev/null 2>&1 && # grep -q flag quits the script early
|
||||
[ "${PIPESTATUS[0]}" -eq "$expected_exit_code" ]
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
TPM_DIR="$PWD"
|
||||
PLUGINS_DIR="$HOME/.tmux/plugins"
|
||||
|
||||
source "$CURRENT_DIR/helpers/helpers.sh"
|
||||
source "$CURRENT_DIR/helpers/tpm.sh"
|
||||
|
||||
manually_install_the_plugin() {
|
||||
rm -rf "$PLUGINS_DIR"
|
||||
mkdir -p "$PLUGINS_DIR"
|
||||
cd "$PLUGINS_DIR"
|
||||
git clone --quiet https://github.com/tmux-plugins/tmux-example-plugin
|
||||
}
|
||||
|
||||
# TMUX KEY-BINDING TESTS
|
||||
|
||||
test_plugin_uninstallation_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
manually_install_the_plugin
|
||||
|
||||
"$CURRENT_DIR/expect_successful_clean_plugins" ||
|
||||
fail_helper "[key-binding] clean fails"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
# SCRIPT TESTS
|
||||
|
||||
test_plugin_uninstallation_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
manually_install_the_plugin
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/clean_plugins" '"tmux-example-plugin" clean success' ||
|
||||
fail_helper "[script] plugin cleaning fails"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_unsuccessful_plugin_uninstallation_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
manually_install_the_plugin
|
||||
chmod 000 "$PLUGINS_DIR/tmux-example-plugin" # disable directory deletion
|
||||
|
||||
local expected_exit_code=1
|
||||
script_run_helper "$TPM_DIR/bin/clean_plugins" '"tmux-example-plugin" clean fail' "$expected_exit_code" ||
|
||||
fail_helper "[script] unsuccessful plugin cleaning doesn't fail"
|
||||
|
||||
chmod 755 "$PLUGINS_DIR/tmux-example-plugin" # enable directory deletion
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
run_tests
|
|
@ -1,284 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
PLUGINS_DIR="$HOME/.tmux/plugins"
|
||||
TPM_DIR="$PWD"
|
||||
|
||||
CUSTOM_PLUGINS_DIR="$HOME/foo/plugins"
|
||||
ADDITIONAL_CONFIG_FILE_1="$HOME/.tmux/additional_config_file_1"
|
||||
ADDITIONAL_CONFIG_FILE_2="$HOME/.tmux/additional_config_file_2"
|
||||
|
||||
source "$CURRENT_DIR/helpers/helpers.sh"
|
||||
source "$CURRENT_DIR/helpers/tpm.sh"
|
||||
|
||||
# TMUX KEY-BINDING TESTS
|
||||
|
||||
test_plugin_installation_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @plugin "tmux-plugins/tmux-example-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
"$CURRENT_DIR/expect_successful_plugin_download" ||
|
||||
fail_helper "[key-binding] plugin installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[key-binding] plugin download fails"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_plugin_installation_via_tmux_key_binding_set_option() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set-option -g @plugin "tmux-plugins/tmux-example-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
"$CURRENT_DIR/expect_successful_plugin_download" ||
|
||||
fail_helper "[key-binding][set-option] plugin installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[key-binding][set-option] plugin download fails"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_plugin_installation_custom_dir_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH '$CUSTOM_PLUGINS_DIR'
|
||||
|
||||
set -g @plugin "tmux-plugins/tmux-example-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
"$CURRENT_DIR/expect_successful_plugin_download" ||
|
||||
fail_helper "[key-binding][custom dir] plugin installation fails"
|
||||
|
||||
check_dir_exists_helper "$CUSTOM_PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[key-binding][custom dir] plugin download fails"
|
||||
|
||||
teardown_helper
|
||||
rm -rf "$CUSTOM_PLUGINS_DIR"
|
||||
}
|
||||
|
||||
test_non_existing_plugin_installation_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @plugin "tmux-plugins/non-existing-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
"$CURRENT_DIR/expect_failed_plugin_download" ||
|
||||
fail_helper "[key-binding] non existing plugin installation doesn't fail"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_multiple_plugins_installation_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @plugin "tmux-plugins/tmux-example-plugin"
|
||||
\ \ set -g @plugin 'tmux-plugins/tmux-copycat'
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
"$CURRENT_DIR/expect_successful_multiple_plugins_download" ||
|
||||
fail_helper "[key-binding] multiple plugins installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[key-binding] plugin download fails (tmux-example-plugin)"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" ||
|
||||
fail_helper "[key-binding] plugin download fails (tmux-copycat)"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_plugins_installation_from_sourced_file_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
source '$ADDITIONAL_CONFIG_FILE_1'
|
||||
set -g @plugin 'tmux-plugins/tmux-example-plugin'
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
mkdir ~/.tmux
|
||||
echo "set -g @plugin 'tmux-plugins/tmux-copycat'" > "$ADDITIONAL_CONFIG_FILE_1"
|
||||
|
||||
"$CURRENT_DIR/expect_successful_multiple_plugins_download" ||
|
||||
fail_helper "[key-binding][sourced file] plugins installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[key-binding][sourced file] plugin download fails (tmux-example-plugin)"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" ||
|
||||
fail_helper "[key-binding][sourced file] plugin download fails (tmux-copycat)"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_plugins_installation_from_multiple_sourced_files_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
\ \ source '$ADDITIONAL_CONFIG_FILE_1'
|
||||
source-file '$ADDITIONAL_CONFIG_FILE_2'
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
mkdir ~/.tmux
|
||||
echo "set -g @plugin 'tmux-plugins/tmux-example-plugin'" > "$ADDITIONAL_CONFIG_FILE_1"
|
||||
echo " set -g @plugin 'tmux-plugins/tmux-copycat'" > "$ADDITIONAL_CONFIG_FILE_2"
|
||||
|
||||
"$CURRENT_DIR/expect_successful_multiple_plugins_download" ||
|
||||
fail_helper "[key-binding][multiple sourced files] plugins installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[key-binding][multiple sourced files] plugin download fails (tmux-example-plugin)"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" ||
|
||||
fail_helper "[key-binding][multiple sourced files] plugin download fails (tmux-copycat)"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
# SCRIPT TESTS
|
||||
|
||||
test_plugin_installation_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @plugin "tmux-plugins/tmux-example-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' ||
|
||||
fail_helper "[script] plugin installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[script] plugin download fails"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-example-plugin"' ||
|
||||
fail_helper "[script] plugin already installed message fail"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_plugin_installation_custom_dir_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH '$CUSTOM_PLUGINS_DIR'
|
||||
|
||||
set -g @plugin "tmux-plugins/tmux-example-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' ||
|
||||
fail_helper "[script][custom dir] plugin installation fails"
|
||||
|
||||
check_dir_exists_helper "$CUSTOM_PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[script][custom dir] plugin download fails"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-example-plugin"' ||
|
||||
fail_helper "[script][custom dir] plugin already installed message fail"
|
||||
|
||||
teardown_helper
|
||||
rm -rf "$CUSTOM_PLUGINS_DIR"
|
||||
}
|
||||
|
||||
test_non_existing_plugin_installation_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @plugin "tmux-plugins/non-existing-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
local expected_exit_code=1
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" '"non-existing-plugin" download fail' "$expected_exit_code" ||
|
||||
fail_helper "[script] non existing plugin installation doesn't fail"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_multiple_plugins_installation_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @plugin "tmux-plugins/tmux-example-plugin"
|
||||
\ \ set -g @plugin 'tmux-plugins/tmux-copycat'
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' ||
|
||||
fail_helper "[script] multiple plugins installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[script] plugin download fails (tmux-example-plugin)"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" ||
|
||||
fail_helper "[script] plugin download fails (tmux-copycat)"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-copycat"' ||
|
||||
fail_helper "[script] multiple plugins already installed message fail"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_plugins_installation_from_sourced_file_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
source '$ADDITIONAL_CONFIG_FILE_1'
|
||||
set -g @plugin 'tmux-plugins/tmux-example-plugin'
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
mkdir ~/.tmux
|
||||
echo "set -g @plugin 'tmux-plugins/tmux-copycat'" > "$ADDITIONAL_CONFIG_FILE_1"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-copycat" download success' ||
|
||||
fail_helper "[script][sourced file] plugins installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[script][sourced file] plugin download fails (tmux-example-plugin)"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" ||
|
||||
fail_helper "[script][sourced file] plugin download fails (tmux-copycat)"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-copycat"' ||
|
||||
fail_helper "[script][sourced file] plugins already installed message fail"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_plugins_installation_from_multiple_sourced_files_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
\ \ source '$ADDITIONAL_CONFIG_FILE_1'
|
||||
source-file '$ADDITIONAL_CONFIG_FILE_2'
|
||||
set -g @plugin 'tmux-plugins/tmux-example-plugin'
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
mkdir ~/.tmux
|
||||
echo " set -g @plugin 'tmux-plugins/tmux-copycat'" > "$ADDITIONAL_CONFIG_FILE_1"
|
||||
echo "set -g @plugin 'tmux-plugins/tmux-sensible'" > "$ADDITIONAL_CONFIG_FILE_2"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-sensible" download success' ||
|
||||
fail_helper "[script][multiple sourced files] plugins installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[script][multiple sourced files] plugin download fails (tmux-example-plugin)"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" ||
|
||||
fail_helper "[script][multiple sourced files] plugin download fails (tmux-copycat)"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-sensible/" ||
|
||||
fail_helper "[script][multiple sourced files] plugin download fails (tmux-sensible)"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-sensible"' ||
|
||||
fail_helper "[script][multiple sourced files] plugins already installed message fail"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
run_tests
|
|
@ -1,100 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
PLUGINS_DIR="$HOME/.tmux/plugins"
|
||||
TPM_DIR="$PWD"
|
||||
|
||||
source "$CURRENT_DIR/helpers/helpers.sh"
|
||||
source "$CURRENT_DIR/helpers/tpm.sh"
|
||||
|
||||
# TMUX KEY-BINDING TESTS
|
||||
|
||||
test_plugin_installation_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @tpm_plugins "tmux-plugins/tmux-example-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
# opens tmux and test it with `expect`
|
||||
$CURRENT_DIR/expect_successful_plugin_download ||
|
||||
fail_helper "[key-binding] plugin installation fails"
|
||||
|
||||
# check plugin dir exists after download
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[key-binding] plugin download fails"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_legacy_and_new_syntax_for_plugin_installation_work_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @tpm_plugins " \
|
||||
tmux-plugins/tmux-example-plugin \
|
||||
"
|
||||
set -g @plugin 'tmux-plugins/tmux-copycat'
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
# opens tmux and test it with `expect`
|
||||
"$CURRENT_DIR"/expect_successful_multiple_plugins_download ||
|
||||
fail_helper "[key-binding] multiple plugins installation fails"
|
||||
|
||||
# check plugin dir exists after download
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[key-binding] plugin download fails (tmux-example-plugin)"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" ||
|
||||
fail_helper "[key-binding] plugin download fails (tmux-copycat)"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
# SCRIPT TESTS
|
||||
|
||||
test_plugin_installation_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @tpm_plugins "tmux-plugins/tmux-example-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' ||
|
||||
fail_helper "[script] plugin installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[script] plugin download fails"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-example-plugin"' ||
|
||||
fail_helper "[script] plugin already installed message fail"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_legacy_and_new_syntax_for_plugin_installation_work_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @tpm_plugins " \
|
||||
tmux-plugins/tmux-example-plugin \
|
||||
"
|
||||
set -g @plugin 'tmux-plugins/tmux-copycat'
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' ||
|
||||
fail_helper "[script] multiple plugin installation fails"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" ||
|
||||
fail_helper "[script] plugin download fails (tmux-example-plugin)"
|
||||
|
||||
check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" ||
|
||||
fail_helper "[script] plugin download fails (tmux-copycat)"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-copycat"' ||
|
||||
fail_helper "[script] multiple plugins already installed message fail"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
run_tests
|
|
@ -1,78 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
TPM_DIR="$PWD"
|
||||
PLUGINS_DIR="$HOME/.tmux/plugins"
|
||||
|
||||
CUSTOM_PLUGINS_DIR="$HOME/foo/plugins"
|
||||
|
||||
source "$CURRENT_DIR/helpers/helpers.sh"
|
||||
source "$CURRENT_DIR/helpers/tpm.sh"
|
||||
|
||||
check_binding_defined() {
|
||||
local binding="$1"
|
||||
tmux list-keys | grep -q "$binding"
|
||||
}
|
||||
|
||||
create_test_plugin_helper() {
|
||||
local plugin_path="$PLUGINS_DIR/tmux_test_plugin/"
|
||||
rm -rf "$plugin_path"
|
||||
mkdir -p "$plugin_path"
|
||||
|
||||
while read line; do
|
||||
echo "$line" >> "$plugin_path/test_plugin.tmux"
|
||||
done
|
||||
chmod +x "$plugin_path/test_plugin.tmux"
|
||||
}
|
||||
|
||||
check_tpm_path() {
|
||||
local correct_tpm_path="$1"
|
||||
local tpm_path="$(tmux start-server\; show-environment -g TMUX_PLUGIN_MANAGER_PATH | cut -f2 -d=)"
|
||||
[ "$correct_tpm_path" == "$tpm_path" ]
|
||||
}
|
||||
|
||||
test_plugin_sourcing() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @plugin "doesnt_matter/tmux_test_plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
# manually creates a local tmux plugin
|
||||
create_test_plugin_helper <<- HERE
|
||||
tmux bind-key R run-shell foo_command
|
||||
HERE
|
||||
|
||||
tmux new-session -d # tmux starts detached
|
||||
check_binding_defined "R run-shell foo_command" ||
|
||||
fail_helper "Plugin sourcing fails"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_default_tpm_path() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
check_tpm_path "${PLUGINS_DIR}/" ||
|
||||
fail_helper "Default TPM path not correct"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
test_custom_tpm_path() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH '$CUSTOM_PLUGINS_DIR'
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
check_tpm_path "$CUSTOM_PLUGINS_DIR" ||
|
||||
fail_helper "Custom TPM path not correct"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
run_tests
|
|
@ -1,60 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
TPM_DIR="$PWD"
|
||||
PLUGINS_DIR="$HOME/.tmux/plugins"
|
||||
|
||||
source "$CURRENT_DIR/helpers/helpers.sh"
|
||||
source "$CURRENT_DIR/helpers/tpm.sh"
|
||||
|
||||
manually_install_the_plugin() {
|
||||
mkdir -p "$PLUGINS_DIR"
|
||||
cd "$PLUGINS_DIR"
|
||||
git clone --quiet https://github.com/tmux-plugins/tmux-example-plugin
|
||||
}
|
||||
|
||||
# TMUX KEY-BINDING TESTS
|
||||
|
||||
test_plugin_update_via_tmux_key_binding() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @plugin "tmux-plugins/tmux-example-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
manually_install_the_plugin
|
||||
|
||||
"$CURRENT_DIR/expect_successful_update_of_all_plugins" ||
|
||||
fail_helper "[key-binding] 'update all plugins' fails"
|
||||
|
||||
"$CURRENT_DIR/expect_successful_update_of_a_single_plugin" ||
|
||||
fail_helper "[key-binding] 'update single plugin' fails"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
# SCRIPT TESTS
|
||||
|
||||
test_plugin_update_via_script() {
|
||||
set_tmux_conf_helper <<- HERE
|
||||
set -g mode-keys vi
|
||||
set -g @plugin "tmux-plugins/tmux-example-plugin"
|
||||
run-shell "$TPM_DIR/tpm"
|
||||
HERE
|
||||
|
||||
manually_install_the_plugin
|
||||
|
||||
local expected_exit_code=1
|
||||
script_run_helper "$TPM_DIR/bin/update_plugins" 'usage' "$expected_exit_code" ||
|
||||
fail_helper "[script] running update plugins without args should fail"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/update_plugins tmux-example-plugin" '"tmux-example-plugin" update success' ||
|
||||
fail_helper "[script] plugin update fails"
|
||||
|
||||
script_run_helper "$TPM_DIR/bin/update_plugins all" '"tmux-example-plugin" update success' ||
|
||||
fail_helper "[script] update all plugins fails"
|
||||
|
||||
teardown_helper
|
||||
}
|
||||
|
||||
run_tests
|
|
@ -1,72 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
BINDINGS_DIR="$CURRENT_DIR/bindings"
|
||||
SCRIPTS_DIR="$CURRENT_DIR/scripts"
|
||||
|
||||
source "$SCRIPTS_DIR/variables.sh"
|
||||
|
||||
get_tmux_option() {
|
||||
local option="$1"
|
||||
local default_value="$2"
|
||||
local option_value="$(tmux show-option -gqv "$option")"
|
||||
if [ -z "$option_value" ]; then
|
||||
echo "$default_value"
|
||||
else
|
||||
echo "$option_value"
|
||||
fi
|
||||
}
|
||||
|
||||
tpm_path_set() {
|
||||
tmux show-environment -g "$DEFAULT_TPM_ENV_VAR_NAME" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
set_default_tpm_path() {
|
||||
tmux set-environment -g "$DEFAULT_TPM_ENV_VAR_NAME" "$DEFAULT_TPM_PATH"
|
||||
}
|
||||
|
||||
# Ensures TMUX_PLUGIN_MANAGER_PATH global env variable is set.
|
||||
#
|
||||
# Put this in `.tmux.conf` to override the default:
|
||||
# `set-environment -g TMUX_PLUGIN_MANAGER_PATH "/some/other/path/"`
|
||||
set_tpm_path() {
|
||||
if ! tpm_path_set; then
|
||||
set_default_tpm_path
|
||||
fi
|
||||
}
|
||||
|
||||
# 1. Fetches plugin names from `@plugin` variables
|
||||
# 2. Creates full plugin path
|
||||
# 3. Sources all *.tmux files from each of the plugin directories
|
||||
# - no errors raised if directory does not exist
|
||||
# Files are sourced as tmux config files, not as shell scripts!
|
||||
source_plugins() {
|
||||
"$SCRIPTS_DIR/source_plugins.sh" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# prefix + I - downloads TPM plugins and reloads TMUX environment
|
||||
# prefix + U - updates a plugin (or all of them) and reloads TMUX environment
|
||||
# prefix + alt + u - remove unused TPM plugins and reloads TMUX environment
|
||||
set_tpm_key_bindings() {
|
||||
local install_key="$(get_tmux_option "$install_key_option" "$default_install_key")"
|
||||
tmux bind-key "$install_key" run-shell "$BINDINGS_DIR/install_plugins"
|
||||
|
||||
local update_key="$(get_tmux_option "$update_key_option" "$default_update_key")"
|
||||
tmux bind-key "$update_key" run-shell "$BINDINGS_DIR/update_plugins"
|
||||
|
||||
local clean_key="$(get_tmux_option "$clean_key_option" "$default_clean_key")"
|
||||
tmux bind-key "$clean_key" run-shell "$BINDINGS_DIR/clean_plugins"
|
||||
}
|
||||
|
||||
supported_tmux_version_ok() {
|
||||
"$SCRIPTS_DIR/check_tmux_version.sh" "$SUPPORTED_TMUX_VERSION"
|
||||
}
|
||||
|
||||
main() {
|
||||
if supported_tmux_version_ok; then
|
||||
set_tpm_path
|
||||
set_tpm_key_bindings
|
||||
source_plugins
|
||||
fi
|
||||
}
|
||||
main
|
Loading…
Reference in a new issue