diff options
Diffstat (limited to 'plugins/osx/osx.plugin.zsh')
-rw-r--r-- | plugins/osx/osx.plugin.zsh | 130 |
1 files changed, 86 insertions, 44 deletions
diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index 81eed5e92..682bb2667 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -1,57 +1,99 @@ -function savepath() { - pwd > ~/.current_path~ -} +# ------------------------------------------------------------------------------ +# FILE: osx.plugin.zsh +# DESCRIPTION: oh-my-zsh plugin file. +# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) +# VERSION: 1.0.1 +# ------------------------------------------------------------------------------ + function tab() { -savepath -osascript >/dev/null <<EOF -on do_submenu(app_name, menu_name, menu_item, submenu_item) - -- bring the target application to the front - tell application app_name - activate - end tell - tell application "System Events" - tell process app_name - tell menu bar 1 - tell menu bar item menu_name - tell menu menu_name - tell menu item menu_item - tell menu menu_item - click menu item submenu_item - end tell - end tell - end tell - end tell - end tell + 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 - end tell -end do_submenu +EOF + ) -do_submenu("Terminal", "Shell", "New Tab", 1) + [[ "$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 -} + } -function itab() { -savepath -osascript >/dev/null <<EOF -on do_submenu(app_name, menu_name, menu_item) - -- bring the target application to the front - tell application app_name - activate - end tell - tell application "System Events" - tell process app_name - tell menu bar 1 - tell menu bar item menu_name - tell menu menu_name - click menu item menu_item - end tell + [[ "$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 "Finder" + return POSIX path of (target of window 1 as alias) end tell -end do_submenu +EOF +} -do_submenu("iTerm", "Shell", "New Tab") +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 +} + |