mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-29 09:10:07 +00:00
tmux: detabify source code
Also changes the tmux detection test to do an early exit if tmux is absent, to reduce the indentation level of the main body of code.
This commit is contained in:
parent
106f826075
commit
f33691fbb6
1 changed files with 78 additions and 85 deletions
|
@ -10,64 +10,62 @@ alias tksv='tmux kill-server'
|
||||||
alias tkss='tmux kill-session -t'
|
alias tkss='tmux kill-session -t'
|
||||||
|
|
||||||
# Only run if tmux is actually installed
|
# Only run if tmux is actually installed
|
||||||
if which tmux &> /dev/null
|
if ! which tmux &> /dev/null; then
|
||||||
then
|
print "zsh tmux plugin: tmux not found. Please install tmux before using this plugin."
|
||||||
# Configuration variables
|
return 1
|
||||||
#
|
fi
|
||||||
# Automatically start tmux
|
|
||||||
[[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART=false
|
# Configuration variables
|
||||||
# Only autostart once. If set to false, tmux will attempt to
|
#
|
||||||
# autostart every time your zsh configs are reloaded.
|
# Automatically start tmux
|
||||||
[[ -n "$ZSH_TMUX_AUTOSTART_ONCE" ]] || ZSH_TMUX_AUTOSTART_ONCE=true
|
[[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART=false
|
||||||
# Automatically connect to a previous session if it exists
|
# Only autostart once. If set to false, tmux will attempt to
|
||||||
[[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT=true
|
# autostart every time your zsh configs are reloaded.
|
||||||
# Automatically close the terminal when tmux exits
|
[[ -n "$ZSH_TMUX_AUTOSTART_ONCE" ]] || ZSH_TMUX_AUTOSTART_ONCE=true
|
||||||
[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART
|
# Automatically connect to a previous session if it exists
|
||||||
# Set term to screen or screen-256color based on current terminal support
|
[[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT=true
|
||||||
[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true
|
# Automatically close the terminal when tmux exits
|
||||||
# Set '-CC' option for iTerm2 tmux integration
|
[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART
|
||||||
[[ -n "$ZSH_TMUX_ITERM2" ]] || ZSH_TMUX_ITERM2=false
|
# Set term to screen or screen-256color based on current terminal support
|
||||||
# The TERM to use for non-256 color terminals.
|
[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true
|
||||||
# Tmux states this should be screen, but you may need to change it on
|
# Set '-CC' option for iTerm2 tmux integration
|
||||||
# systems without the proper terminfo
|
[[ -n "$ZSH_TMUX_ITERM2" ]] || ZSH_TMUX_ITERM2=false
|
||||||
[[ -n "$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITHOUT_256COLOR="screen"
|
# The TERM to use for non-256 color terminals.
|
||||||
# The TERM to use for 256 color terminals.
|
# Tmux states this should be screen, but you may need to change it on
|
||||||
# Tmux states this should be screen-256color, but you may need to change it on
|
# systems without the proper terminfo
|
||||||
# systems without the proper terminfo
|
[[ -n "$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITHOUT_256COLOR="screen"
|
||||||
[[ -n "$ZSH_TMUX_FIXTERM_WITH_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITH_256COLOR="screen-256color"
|
# The TERM to use for 256 color terminals.
|
||||||
|
# Tmux states this should be screen-256color, but you may need to change it on
|
||||||
|
# systems without the proper terminfo
|
||||||
|
[[ -n "$ZSH_TMUX_FIXTERM_WITH_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITH_256COLOR="screen-256color"
|
||||||
|
|
||||||
|
|
||||||
# Get the absolute path to the current directory
|
# Get the absolute path to the current directory
|
||||||
local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)"
|
local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
||||||
# Determine if the terminal supports 256 colors
|
# Determine if the terminal supports 256 colors
|
||||||
if [[ `tput colors` == "256" ]]
|
if [[ `tput colors` == "256" ]]; then
|
||||||
then
|
|
||||||
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR
|
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR
|
||||||
else
|
else
|
||||||
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
|
export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set the correct local config file to use.
|
# Set the correct local config file to use.
|
||||||
if [[ "$ZSH_TMUX_ITERM2" == "false" ]] && [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]]
|
if [[ "$ZSH_TMUX_ITERM2" == "false" ]] && [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]]; then
|
||||||
then
|
|
||||||
#use this when they have a ~/.tmux.conf
|
#use this when they have a ~/.tmux.conf
|
||||||
export _ZSH_TMUX_FIXED_CONFIG="$zsh_tmux_plugin_path/tmux.extra.conf"
|
export _ZSH_TMUX_FIXED_CONFIG="$zsh_tmux_plugin_path/tmux.extra.conf"
|
||||||
else
|
else
|
||||||
#use this when they don't have a ~/.tmux.conf
|
#use this when they don't have a ~/.tmux.conf
|
||||||
export _ZSH_TMUX_FIXED_CONFIG="$zsh_tmux_plugin_path/tmux.only.conf"
|
export _ZSH_TMUX_FIXED_CONFIG="$zsh_tmux_plugin_path/tmux.only.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Wrapper function for tmux.
|
# Wrapper function for tmux.
|
||||||
function _zsh_tmux_plugin_run()
|
function _zsh_tmux_plugin_run() {
|
||||||
{
|
|
||||||
# We have other arguments, just run them
|
# We have other arguments, just run them
|
||||||
if [[ -n "$@" ]]
|
if [[ -n "$@" ]]; then
|
||||||
then
|
|
||||||
\tmux $@
|
\tmux $@
|
||||||
# Try to connect to an existing session.
|
# Try to connect to an existing session.
|
||||||
elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]]
|
elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]]; then
|
||||||
then
|
|
||||||
\tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` attach || \tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG` new-session
|
\tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` attach || \tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG` new-session
|
||||||
[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
|
[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
|
||||||
# Just run tmux, fixing the TERM variable if requested.
|
# Just run tmux, fixing the TERM variable if requested.
|
||||||
|
@ -75,24 +73,19 @@ if which tmux &> /dev/null
|
||||||
\tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG`
|
\tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG`
|
||||||
[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
|
[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Use the completions for tmux for our function
|
# Use the completions for tmux for our function
|
||||||
compdef _tmux _zsh_tmux_plugin_run
|
compdef _tmux _zsh_tmux_plugin_run
|
||||||
|
|
||||||
# Alias tmux to our wrapper function.
|
# Alias tmux to our wrapper function.
|
||||||
alias tmux=_zsh_tmux_plugin_run
|
alias tmux=_zsh_tmux_plugin_run
|
||||||
|
|
||||||
# Autostart if not already in tmux and enabled.
|
# Autostart if not already in tmux and enabled.
|
||||||
if [[ ! -n "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" ]]
|
if [[ ! -n "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" ]]; then
|
||||||
then
|
|
||||||
# Actually don't autostart if we already did and multiple autostarts are disabled.
|
# Actually don't autostart if we already did and multiple autostarts are disabled.
|
||||||
if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]]
|
if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]]; then
|
||||||
then
|
|
||||||
export ZSH_TMUX_AUTOSTARTED=true
|
export ZSH_TMUX_AUTOSTARTED=true
|
||||||
_zsh_tmux_plugin_run
|
_zsh_tmux_plugin_run
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
else
|
|
||||||
print "zsh tmux plugin: tmux not found. Please install tmux before using this plugin."
|
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue