You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.6 KiB
104 lines
2.6 KiB
14 years ago
|
# ------------------------------------------------------------------------------
|
||
|
# FILE: osx.plugin.zsh
|
||
|
# DESCRIPTION: oh-my-zsh plugin file.
|
||
14 years ago
|
# AUTHOR: Sorin Ionescu <sorin.ionescu@gmail.com>
|
||
|
# VERSION: 1.0.2
|
||
14 years ago
|
# ------------------------------------------------------------------------------
|
||
14 years ago
|
|
||
14 years ago
|
|
||
15 years ago
|
function tab() {
|
||
14 years ago
|
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)
|
||
14 years ago
|
end tell
|
||
14 years ago
|
EOF
|
||
|
)
|
||
14 years ago
|
|
||
14 years ago
|
[[ "$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
|
||
15 years ago
|
EOF
|
||
14 years ago
|
}
|
||
14 years ago
|
|
||
14 years ago
|
[[ "$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}"
|
||
14 years ago
|
end tell
|
||
|
end tell
|
||
|
end tell
|
||
14 years ago
|
EOF
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function pfd() {
|
||
|
osascript 2>/dev/null <<EOF
|
||
|
tell application "Finder"
|
||
|
return POSIX path of (target of window 1 as alias)
|
||
14 years ago
|
end tell
|
||
14 years ago
|
EOF
|
||
|
}
|
||
14 years ago
|
|
||
14 years ago
|
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
|
||
14 years ago
|
EOF
|
||
|
}
|
||
14 years ago
|
|
||
|
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
|
||
|
}
|
||
14 years ago
|
|
||
|
function rm-osx-cruft() {
|
||
|
find ${@:-$PWD} \( -type f -name ".DS_Store" \) -o \( -type d -name '__MACOSX' \) -delete
|
||
|
}
|
||
|
|