Created
April 3, 2011 23:58
-
-
Save frnz/900949 to your computer and use it in GitHub Desktop.
frnz_osx.plugin.zsh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # ------------------------------------------------------------------------------ | |
| # FILE: osx.plugin.zsh | |
| # DESCRIPTION: oh-my-zsh plugin file. | |
| # AUTHOR: Sorin Ionescu ([email protected]) | |
| # VERSION: 1.0.1 | |
| # ------------------------------------------------------------------------------ | |
| function tab() { | |
| local command="cd \\\"$PWD\\\" && clear" | |
| (( $# > 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 "Finder" | |
| return POSIX path of (target of window 1 as alias) | |
| end tell | |
| EOF | |
| } | |
| 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 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment