Commit f0a920df authored by Josh Matthews's avatar Josh Matthews
Browse files

Checking to make sure tmux is actually installed before running plugin.

If it is not found an error message is printed.
parent 4e8681c6
# Configuration variables # Only run if tmux is actually installed
# if which tmux &> /dev/null
# Automatically start tmux then
[[ -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
# The TERM to use for non-256 color terminals. [[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART
# Tmux states this should be screen, but you may need to change it on # Set term to screen or screen-256color based on current terminal support
# systems without the proper terminfo [[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true
[[ -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
# Local variable to store the local config file to use, if any. # Local variable to store the local config file to use, if any.
local fixed_config="" local fixed_config=""
# Set the correct local config file to use. # Set the correct local config file to use.
if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] if [[ -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
fixed_config="$zsh_tmux_plugin_path/tmux.extra.conf" 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
fixed_config="$zsh_tmux_plugin_path/tmux.only.conf" 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
...@@ -62,21 +65,24 @@ function zsh_tmux_plugin_run() ...@@ -62,21 +65,24 @@ function zsh_tmux_plugin_run()
\tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$fixed_config` \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment