summaryrefslogtreecommitdiff
path: root/plugins/osx/osx.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/osx/osx.plugin.zsh')
-rw-r--r--plugins/osx/osx.plugin.zsh102
1 files changed, 95 insertions, 7 deletions
diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh
index fce88c796..682bb2667 100644
--- a/plugins/osx/osx.plugin.zsh
+++ b/plugins/osx/osx.plugin.zsh
@@ -1,11 +1,99 @@
+# ------------------------------------------------------------------------------
+# FILE: osx.plugin.zsh
+# DESCRIPTION: oh-my-zsh plugin file.
+# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com)
+# VERSION: 1.0.1
+# ------------------------------------------------------------------------------
+
+
function tab() {
+ 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
+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 "System Events"
- tell process "Terminal" to keystroke "t" using command down
- end
- tell application "Terminal"
- activate
- do script with command "cd \"$PWD\"; $*" in window 1
+ tell application "Finder"
+ return POSIX path of (target of window 1 as alias)
end tell
EOF
-} \ No newline at end of file
+}
+
+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
+}
+