|
|
|
@ -5,29 +5,35 @@ |
|
|
|
# VERSION: 1.1.0 |
|
|
|
# VERSION: 1.1.0 |
|
|
|
# ------------------------------------------------------------------------------ |
|
|
|
# ------------------------------------------------------------------------------ |
|
|
|
|
|
|
|
|
|
|
|
function tab() { |
|
|
|
function _omz_osx_get_frontmost_app() { |
|
|
|
local command="cd \\\"$PWD\\\"; clear" |
|
|
|
local the_app=$( |
|
|
|
(( $# > 0 )) && command="${command}; $*" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
the_app=$( |
|
|
|
|
|
|
|
osascript 2>/dev/null <<EOF |
|
|
|
osascript 2>/dev/null <<EOF |
|
|
|
tell application "System Events" |
|
|
|
tell application "System Events" |
|
|
|
name of first item of (every process whose frontmost is true) |
|
|
|
name of first item of (every process whose frontmost is true) |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
EOF |
|
|
|
EOF |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
echo "$the_app" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[[ "$the_app" == 'Terminal' ]] && { |
|
|
|
function tab() { |
|
|
|
osascript 2>/dev/null <<EOF |
|
|
|
# Must not have trailing semicolon, for iTerm compatibility |
|
|
|
|
|
|
|
local command="cd \\\"$PWD\\\"; clear" |
|
|
|
|
|
|
|
(( $# > 0 )) && command="${command}; $*" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local the_app=$(_omz_osx_get_frontmost_app) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [[ "$the_app" == 'Terminal' ]]; then |
|
|
|
|
|
|
|
# Discarding stdout to quash "tab N of window id XXX" output |
|
|
|
|
|
|
|
osascript >/dev/null <<EOF |
|
|
|
tell application "System Events" |
|
|
|
tell application "System Events" |
|
|
|
tell process "Terminal" to keystroke "t" using command down |
|
|
|
tell process "Terminal" to keystroke "t" using command down |
|
|
|
tell application "Terminal" to do script "${command}" in front window |
|
|
|
|
|
|
|
end tell |
|
|
|
end tell |
|
|
|
|
|
|
|
tell application "Terminal" to do script "${command}" in front window |
|
|
|
EOF |
|
|
|
EOF |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[[ "$the_app" == 'iTerm' ]] && { |
|
|
|
elif [[ "$the_app" == 'iTerm' ]]; then |
|
|
|
osascript 2>/dev/null <<EOF |
|
|
|
osascript <<EOF |
|
|
|
tell application "iTerm" |
|
|
|
tell application "iTerm" |
|
|
|
set current_terminal to current terminal |
|
|
|
set current_terminal to current terminal |
|
|
|
tell current_terminal |
|
|
|
tell current_terminal |
|
|
|
@ -35,29 +41,27 @@ EOF |
|
|
|
set current_session to current session |
|
|
|
set current_session to current session |
|
|
|
tell current_session |
|
|
|
tell current_session |
|
|
|
write text "${command}" |
|
|
|
write text "${command}" |
|
|
|
keystroke return |
|
|
|
|
|
|
|
end tell |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
EOF |
|
|
|
EOF |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
echo "tab: unsupported terminal app: $the_app" |
|
|
|
|
|
|
|
false |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fi |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function vsplit_tab() { |
|
|
|
function vsplit_tab() { |
|
|
|
local command="cd \\\"$PWD\\\"" |
|
|
|
local command="cd \\\"$PWD\\\"; clear" |
|
|
|
(( $# > 0 )) && command="${command}; $*" |
|
|
|
(( $# > 0 )) && command="${command}; $*" |
|
|
|
|
|
|
|
|
|
|
|
the_app=$( |
|
|
|
local the_app=$(_omz_osx_get_frontmost_app) |
|
|
|
osascript 2>/dev/null <<EOF |
|
|
|
|
|
|
|
tell application "System Events" |
|
|
|
|
|
|
|
name of first item of (every process whose frontmost is true) |
|
|
|
|
|
|
|
end tell |
|
|
|
|
|
|
|
EOF |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[[ "$the_app" == 'iTerm' ]] && { |
|
|
|
if [[ "$the_app" == 'iTerm' ]]; then |
|
|
|
osascript 2>/dev/null <<EOF |
|
|
|
osascript <<EOF |
|
|
|
tell application "iTerm" to activate |
|
|
|
-- tell application "iTerm" to activate |
|
|
|
|
|
|
|
|
|
|
|
tell application "System Events" |
|
|
|
tell application "System Events" |
|
|
|
tell process "iTerm" |
|
|
|
tell process "iTerm" |
|
|
|
@ -65,26 +69,24 @@ EOF |
|
|
|
click |
|
|
|
click |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
keystroke "${command}; clear;" |
|
|
|
keystroke "${command} \n" |
|
|
|
keystroke return |
|
|
|
|
|
|
|
end tell |
|
|
|
end tell |
|
|
|
EOF |
|
|
|
EOF |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
echo "$0: unsupported terminal app: $the_app" >&2 |
|
|
|
|
|
|
|
false |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fi |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function split_tab() { |
|
|
|
function split_tab() { |
|
|
|
local command="cd \\\"$PWD\\\"" |
|
|
|
local command="cd \\\"$PWD\\\"; clear" |
|
|
|
(( $# > 0 )) && command="${command}; $*" |
|
|
|
(( $# > 0 )) && command="${command}; $*" |
|
|
|
|
|
|
|
|
|
|
|
the_app=$( |
|
|
|
local the_app=$(_omz_osx_get_frontmost_app) |
|
|
|
osascript 2>/dev/null <<EOF |
|
|
|
|
|
|
|
tell application "System Events" |
|
|
|
|
|
|
|
name of first item of (every process whose frontmost is true) |
|
|
|
|
|
|
|
end tell |
|
|
|
|
|
|
|
EOF |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[[ "$the_app" == 'iTerm' ]] && { |
|
|
|
if [[ "$the_app" == 'iTerm' ]]; then |
|
|
|
osascript 2>/dev/null <<EOF |
|
|
|
osascript 2>/dev/null <<EOF |
|
|
|
tell application "iTerm" to activate |
|
|
|
tell application "iTerm" to activate |
|
|
|
|
|
|
|
|
|
|
|
@ -94,11 +96,15 @@ EOF |
|
|
|
click |
|
|
|
click |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
end tell |
|
|
|
keystroke "${command}; clear;" |
|
|
|
keystroke "${command} \n" |
|
|
|
keystroke return |
|
|
|
|
|
|
|
end tell |
|
|
|
end tell |
|
|
|
EOF |
|
|
|
EOF |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
echo "$0: unsupported terminal app: $the_app" >&2 |
|
|
|
|
|
|
|
false |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fi |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function pfd() { |
|
|
|
function pfd() { |
|
|
|
|