|
@@ -1,63 +1,99 @@
|
|
-alias showfiles='defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder'
|
|
|
|
-alias hidefiles='defaults write com.apple.finder AppleShowAllFiles FALSE; killall Finder'
|
|
|
|
|
|
+# ------------------------------------------------------------------------------
|
|
|
|
+# FILE: osx.plugin.zsh
|
|
|
|
+# DESCRIPTION: oh-my-zsh plugin file.
|
|
|
|
+# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com)
|
|
|
|
+# VERSION: 1.0.1
|
|
|
|
+# ------------------------------------------------------------------------------
|
|
|
|
|
|
-# Recursively delete .DS_Store files
|
|
|
|
-alias rm-dsstore="find . -name '*.DS_Store' -type f -delete"
|
|
|
|
-
|
|
|
|
-function savepath() {
|
|
|
|
- pwd > ~/.current_path~
|
|
|
|
-}
|
|
|
|
|
|
|
|
function tab() {
|
|
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 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
|
|
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
|
|
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 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
|
|
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
|
|
|
|
+}
|
|
|
|
+
|