diff options
Diffstat (limited to 'plugins/osx/osx.plugin.zsh')
-rw-r--r-- | plugins/osx/osx.plugin.zsh | 102 |
1 files changed, 95 insertions, 7 deletions
diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index fce88c796..682bb2667 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -1,11 +1,99 @@ +# ------------------------------------------------------------------------------ +# FILE: osx.plugin.zsh +# DESCRIPTION: oh-my-zsh plugin file. +# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) +# VERSION: 1.0.1 +# ------------------------------------------------------------------------------ + + function tab() { + local command="cd \\\"$PWD\\\"" + (( $# > 0 )) && command="${command}; $*" + + the_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" == 'Terminal' ]] && { + osascript 2>/dev/null <<EOF + tell application "System Events" + tell process "Terminal" to keystroke "t" using command down + tell application "Terminal" to do script "${command}" in front window + end tell +EOF + } + + [[ "$the_app" == 'iTerm' ]] && { + osascript 2>/dev/null <<EOF + tell application "iTerm" + set current_terminal to current terminal + tell current_terminal + launch session "Default Session" + set current_session to current session + tell current_session + write text "${command}" + end tell + end tell + end tell +EOF + } +} + +function pfd() { osascript 2>/dev/null <<EOF - tell application "System Events" - tell process "Terminal" to keystroke "t" using command down - end - tell application "Terminal" - activate - do script with command "cd \"$PWD\"; $*" in window 1 + tell application "Finder" + return POSIX path of (target of window 1 as alias) end tell EOF -}
\ No newline at end of file +} + +function pfs() { + osascript 2>/dev/null <<EOF + set output to "" + tell application "Finder" to set the_selection to selection + set item_count to count the_selection + repeat with item_index from 1 to count the_selection + if item_index is less than item_count then set the_delimiter to "\n" + if item_index is item_count then set the_delimiter to "" + set output to output & ((item item_index of the_selection as alias)'s POSIX path) & the_delimiter + end repeat +EOF +} + +function cdf() { + cd "$(pfd)" +} + +function pushdf() { + pushd "$(pfd)" +} + +function quick-look() { + (( $# > 0 )) && qlmanage -p $* &>/dev/null & +} + +function man-preview() { + man -t "$@" | open -f -a Preview +} + +function trash() { + local trash_dir="${HOME}/.Trash" + local temp_ifs=$IFS + IFS=$'\n' + for item in "$@"; do + if [[ -e "$item" ]]; then + item_name="$(basename $item)" + if [[ -e "${trash_dir}/${item_name}" ]]; then + mv -f "$item" "${trash_dir}/${item_name} $(date "+%H-%M-%S")" + else + mv -f "$item" "${trash_dir}/" + fi + fi + done + IFS=$temp_ifs +} + |