| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  | # ------------------------------------------------------------------------------ | 
					
						
							|  |  |  | #          FILE:  osx.plugin.zsh | 
					
						
							|  |  |  | #   DESCRIPTION:  oh-my-zsh plugin file. | 
					
						
							|  |  |  | #        AUTHOR:  Sorin Ionescu (sorin.ionescu@gmail.com) | 
					
						
							|  |  |  | #       VERSION:  1.0.1 | 
					
						
							|  |  |  | # ------------------------------------------------------------------------------ | 
					
						
							| 
									
										
										
										
											2011-05-28 11:27:50 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-18 12:17:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-03 12:55:07 -07:00
										 |  |  | function tab() { | 
					
						
							| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  |   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) | 
					
						
							| 
									
										
										
										
											2011-02-18 12:17:00 +00:00
										 |  |  |       end tell | 
					
						
							| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  | EOF | 
					
						
							|  |  |  |   ) | 
					
						
							| 
									
										
										
										
											2011-02-18 12:17:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  |   [[ "$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 | 
					
						
							| 
									
										
										
										
											2010-06-03 12:55:07 -07:00
										 |  |  | EOF | 
					
						
							| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-02-18 12:48:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  |   [[ "$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}" | 
					
						
							| 
									
										
										
										
											2011-02-18 12:48:27 +00:00
										 |  |  |           end tell | 
					
						
							|  |  |  |         end tell | 
					
						
							|  |  |  |       end tell | 
					
						
							| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  | EOF | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function pfd() { | 
					
						
							|  |  |  |   osascript 2>/dev/null <<EOF | 
					
						
							|  |  |  |     tell application "Finder" | 
					
						
							|  |  |  |       return POSIX path of (target of window 1 as alias) | 
					
						
							| 
									
										
										
										
											2011-02-18 12:48:27 +00:00
										 |  |  |     end tell | 
					
						
							| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  | EOF | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2011-02-18 12:48:27 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2011-02-18 12:48:27 +00:00
										 |  |  | EOF | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2011-02-22 23:32:50 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 |