Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
f33691fb
Commit
f33691fb
authored
Sep 28, 2015
by
Andrew Janke
Committed by
Marc Cornellà
Aug 03, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
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.
parent
106f8260
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
70 additions
and
77 deletions
+70
-77
tmux.plugin.zsh
plugins/tmux/tmux.plugin.zsh
+70
-77
No files found.
plugins/tmux/tmux.plugin.zsh
View file @
f33691fb
...
...
@@ -10,89 +10,82 @@ alias tksv='tmux kill-server'
alias
tkss
=
'tmux kill-session -t'
# Only run if tmux is actually installed
if
which tmux &> /dev/null
then
# Configuration variables
#
# Automatically start tmux
[[
-n
"
$ZSH_TMUX_AUTOSTART
"
]]
||
ZSH_TMUX_AUTOSTART
=
false
# Only autostart once. If set to false, tmux will attempt to
# autostart every time your zsh configs are reloaded.
[[
-n
"
$ZSH_TMUX_AUTOSTART_ONCE
"
]]
||
ZSH_TMUX_AUTOSTART_ONCE
=
true
# Automatically connect to a previous session if it exists
[[
-n
"
$ZSH_TMUX_AUTOCONNECT
"
]]
||
ZSH_TMUX_AUTOCONNECT
=
true
# Automatically close the terminal when tmux exits
[[
-n
"
$ZSH_TMUX_AUTOQUIT
"
]]
||
ZSH_TMUX_AUTOQUIT
=
$ZSH_TMUX_AUTOSTART
# Set term to screen or screen-256color based on current terminal support
[[
-n
"
$ZSH_TMUX_FIXTERM
"
]]
||
ZSH_TMUX_FIXTERM
=
true
# Set '-CC' option for iTerm2 tmux integration
[[
-n
"
$ZSH_TMUX_ITERM2
"
]]
||
ZSH_TMUX_ITERM2
=
false
# The TERM to use for non-256 color terminals.
# Tmux states this should be screen, but you may need to change it on
# systems without the proper terminfo
[[
-n
"
$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
"
]]
||
ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
=
"screen"
# 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"
if
!
which tmux &> /dev/null
;
then
print
"zsh tmux plugin: tmux not found. Please install tmux before using this plugin."
return
1
fi
# Configuration variables
#
# Automatically start tmux
[[
-n
"
$ZSH_TMUX_AUTOSTART
"
]]
||
ZSH_TMUX_AUTOSTART
=
false
# Only autostart once. If set to false, tmux will attempt to
# autostart every time your zsh configs are reloaded.
[[
-n
"
$ZSH_TMUX_AUTOSTART_ONCE
"
]]
||
ZSH_TMUX_AUTOSTART_ONCE
=
true
# Automatically connect to a previous session if it exists
[[
-n
"
$ZSH_TMUX_AUTOCONNECT
"
]]
||
ZSH_TMUX_AUTOCONNECT
=
true
# Automatically close the terminal when tmux exits
[[
-n
"
$ZSH_TMUX_AUTOQUIT
"
]]
||
ZSH_TMUX_AUTOQUIT
=
$ZSH_TMUX_AUTOSTART
# Set term to screen or screen-256color based on current terminal support
[[
-n
"
$ZSH_TMUX_FIXTERM
"
]]
||
ZSH_TMUX_FIXTERM
=
true
# Set '-CC' option for iTerm2 tmux integration
[[
-n
"
$ZSH_TMUX_ITERM2
"
]]
||
ZSH_TMUX_ITERM2
=
false
# The TERM to use for non-256 color terminals.
# Tmux states this should be screen, but you may need to change it on
# systems without the proper terminfo
[[
-n
"
$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
"
]]
||
ZSH_TMUX_FIXTERM_WITHOUT_256COLOR
=
"screen"
# 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
)
"
# Get the absolute path to the current directory
local
zsh_tmux_plugin_path
=
"
$(
cd
"
$(
dirname
"
$0
"
)
"
&&
pwd
)
"
# Determine if the terminal supports 256 colors
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
# Determine if the terminal supports 256 colors
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.
if
[[
"
$ZSH_TMUX_ITERM2
"
==
"false"
]]
&&
[[
-f
$HOME
/.tmux.conf
||
-h
$HOME
/.tmux.conf
]]
then
#use this when they have a ~/.tmux.conf
export
_ZSH_TMUX_FIXED_CONFIG
=
"
$zsh_tmux_plugin_path
/tmux.extra.conf"
else
#use this when they don't have a ~/.tmux.conf
export
_ZSH_TMUX_FIXED_CONFIG
=
"
$zsh_tmux_plugin_path
/tmux.only.conf"
fi
# Set the correct local config file to use.
if
[[
"
$ZSH_TMUX_ITERM2
"
==
"false"
]]
&&
[[
-f
$HOME
/.tmux.conf
||
-h
$HOME
/.tmux.conf
]]
;
then
#use this when they have a ~/.tmux.conf
export
_ZSH_TMUX_FIXED_CONFIG
=
"
$zsh_tmux_plugin_path
/tmux.extra.conf"
else
#use this when they don't have a ~/.tmux.conf
export
_ZSH_TMUX_FIXED_CONFIG
=
"
$zsh_tmux_plugin_path
/tmux.only.conf"
fi
# Wrapper function for tmux.
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
`
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
echo
'-CC '
`
attach
||
\t
mux
`
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
echo
'-CC '
`
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$_ZSH_TMUX_FIXED_CONFIG
`
new-session
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
# Just run tmux, fixing the TERM variable if requested.
else
\t
mux
`
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
echo
'-CC '
`
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$_ZSH_TMUX_FIXED_CONFIG
`
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
fi
}
# Wrapper function for tmux.
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
`
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
echo
'-CC '
`
attach
||
\t
mux
`
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
echo
'-CC '
`
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$_ZSH_TMUX_FIXED_CONFIG
`
new-session
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
# Just run tmux, fixing the TERM variable if requested.
else
\t
mux
`
[[
"
$ZSH_TMUX_ITERM2
"
==
"true"
]]
&&
echo
'-CC '
`
`
[[
"
$ZSH_TMUX_FIXTERM
"
==
"true"
]]
&&
echo
'-f '
$_ZSH_TMUX_FIXED_CONFIG
`
[[
"
$ZSH_TMUX_AUTOQUIT
"
==
"true"
]]
&&
exit
fi
}
# Use the completions for tmux for our function
compdef _tmux _zsh_tmux_plugin_run
# Use the completions for tmux for our function
compdef _tmux _zsh_tmux_plugin_run
# Alias tmux to our wrapper function.
alias
tmux
=
_zsh_tmux_plugin_run
# Alias tmux to our wrapper function.
alias
tmux
=
_zsh_tmux_plugin_run
# Autostart if not already in tmux and enabled.
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
export
ZSH_TMUX_AUTOSTARTED
=
true
_zsh_tmux_plugin_run
fi
fi
else
print
"zsh tmux plugin: tmux not found. Please install tmux before using this plugin."
# Autostart if not already in tmux and enabled.
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
export
ZSH_TMUX_AUTOSTARTED
=
true
_zsh_tmux_plugin_run
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