Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
f0a920df
Commit
f0a920df
authored
Feb 27, 2013
by
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
Changes
1
Hide whitespace changes
Inline
Side-by-side
plugins/tmux/tmux.plugin.zsh
View file @
f0a920df
# 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
local
zsh_tmux_plugin_path
=
"
$(
cd
"
$(
dirname
"
$0
"
)
"
&&
pwd
)
"
# Determine if the terminal supports 256 colors
# Get the absolute path to the current directory
if
[[
`
tput colors
`
==
"256"
]]
local
zsh_tmux_plugin_path
=
"
$(
cd
"
$(
dirname
"
$0
"
)
"
&&
pwd
)
"
then
export
ZSH_TMUX_TERM
=
$ZSH_TMUX_FIXTERM_WITH_256COLOR
else
export
ZSH_TMUX_TERM
=
$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
fi
# Local variable to store the local config file to use, if any.
# Determine if the terminal supports 256 colors
local
fixed_config
=
""
if
[[
`
tput colors
`
==
"256"
]]
then
export
ZSH_TMUX_TERM
=
$ZSH_TMUX_FIXTERM_WITH_256COLOR
else
export
ZSH_TMUX_TERM
=
$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
fi
# Set the correct local config file to use.
# Local variable to store the local config file to use, if any.
if
[[
-f
$HOME
/.tmux.conf
||
-h
$HOME
/.tmux.conf
]]
local
fixed_config
=
""
then
#use this when they have a ~/.tmux.conf
fixed_config
=
"
$zsh_tmux_plugin_path
/tmux.extra.conf"
else
#use this when they don't have a ~/.tmux.conf
fixed_config
=
"
$zsh_tmux_plugin_path
/tmux.only.conf"
fi
# Wrapper function for tmux.
# Set the correct local config file to use.
function
zsh_tmux_plugin_run
()
if
[[
-f
$HOME
/.tmux.conf
||
-h
$HOME
/.tmux.conf
]]
{
# We have other arguments, just run them
if
[[
-n
"
$@
"
]]
then
then
\t
mux
$@
#use this when they have a ~/.tmux.conf
# Try to connect to an existing session.
fixed_config
=
"
$zsh_tmux_plugin_path
/tmux.extra.conf"
elif
[[
"
$ZSH_TMUX_AUTOCONNECT
"
==
"true"
]]
then
\t
mux attach
||
\t
mux
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$fixed_config
`
new-session
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
# Just run tmux, fixing the TERM variable if requested.
else
else
\t
mux
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$fixed_
conf
ig
`
#use this when they don't have a ~/.tmux.
conf
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
fixed_config
=
"
$zsh_tmux_plugin_path
/tmux.only.conf"
fi
fi
}
# Use the completions for tmux for our function
# Wrapper function for tmux.
compdef _tmux zsh_tmux_plugin_run
function
zsh_tmux_plugin_run
()
{
# We have other arguments, just run them
if
[[
-n
"
$@
"
]]
then
\t
mux
$@
# Try to connect to an existing session.
elif
[[
"
$ZSH_TMUX_AUTOCONNECT
"
==
"true"
]]
then
\t
mux attach
||
\t
mux
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$fixed_config
`
new-session
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
# Just run tmux, fixing the TERM variable if requested.
else
\t
mux
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$fixed_config
`
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
fi
}
# Use the completions for tmux for our function
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
# Actually don't autostart if we already did and multiple autostarts are disabled.
if
[[
"
$ZSH_TMUX_AUTOSTART_ONCE
"
==
"false"
||
"
$ZSH_TMUX_AUTOSTARTED
"
!=
"true"
]]
then
then
export
ZSH_TMUX_AUTOSTARTED
=
true
# Actually don't autostart if we already did and multiple autostarts are disabled.
zsh_tmux_plugin_run
if
[[
"
$ZSH_TMUX_AUTOSTART_ONCE
"
==
"false"
||
"
$ZSH_TMUX_AUTOSTARTED
"
!=
"true"
]]
then
export
ZSH_TMUX_AUTOSTARTED
=
true
zsh_tmux_plugin_run
fi
fi
fi
else
print
"zsh tmux plugin: tmux not found. Please install tmux before using this plugin."
fi
fi
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment