123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- # Open the current directory in a Finder window
- alias ofd='open_command $PWD'
- # Show/hide hidden files in the Finder
- alias showfiles="defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder"
- alias hidefiles="defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder"
- # Bluetooth restart
- function btrestart() {
- sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
- sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
- }
- function _omz_osx_get_frontmost_app() {
- osascript 2>/dev/null <<EOF
- tell application "System Events"
- name of first item of (every process whose frontmost is true)
- end tell
- EOF
- }
- function tab() {
- # Must not have trailing semicolon, for iTerm compatibility
- local command="cd \\\"$PWD\\\"; clear"
- (( $# > 0 )) && command="${command}; $*"
- local the_app=$(_omz_osx_get_frontmost_app)
- if [[ "$the_app" == 'Terminal' ]]; then
- # Discarding stdout to quash "tab N of window id XXX" output
- osascript >/dev/null <<EOF
- tell application "System Events"
- tell process "Terminal" to keystroke "t" using command down
- end tell
- tell application "Terminal" to do script "${command}" in front window
- EOF
- elif [[ "$the_app" == 'iTerm' ]]; then
- osascript <<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
- elif [[ "$the_app" == 'iTerm2' ]]; then
- osascript <<EOF
- tell application "iTerm2"
- tell current window
- create tab with default profile
- tell current session to write text "${command}"
- end tell
- end tell
- EOF
- elif [[ "$the_app" == 'Hyper' ]]; then
- osascript >/dev/null <<EOF
- tell application "System Events"
- tell process "Hyper" to keystroke "t" using command down
- end tell
- delay 1
- tell application "System Events"
- keystroke "${command}"
- key code 36 #(presses enter)
- end tell
- EOF
- else
- echo "$0: unsupported terminal app: $the_app" >&2
- return 1
- fi
- }
- function vsplit_tab() {
- local command="cd \\\"$PWD\\\"; clear"
- (( $# > 0 )) && command="${command}; $*"
- local the_app=$(_omz_osx_get_frontmost_app)
- if [[ "$the_app" == 'iTerm' ]]; then
- osascript <<EOF
- -- tell application "iTerm" to activate
- tell application "System Events"
- tell process "iTerm"
- tell menu item "Split Vertically With Current Profile" of menu "Shell" of menu bar item "Shell" of menu bar 1
- click
- end tell
- end tell
- keystroke "${command} \n"
- end tell
- EOF
- elif [[ "$the_app" == 'iTerm2' ]]; then
- osascript <<EOF
- tell application "iTerm2"
- tell current session of first window
- set newSession to (split vertically with same profile)
- tell newSession
- write text "${command}"
- select
- end tell
- end tell
- end tell
- EOF
- elif [[ "$the_app" == 'Hyper' ]]; then
- osascript >/dev/null <<EOF
- tell application "System Events"
- tell process "Hyper"
- tell menu item "Split Vertically" of menu "Shell" of menu bar 1
- click
- end tell
- end tell
- delay 1
- keystroke "${command} \n"
- end tell
- EOF
- else
- echo "$0: unsupported terminal app: $the_app" >&2
- return 1
- fi
- }
- function split_tab() {
- local command="cd \\\"$PWD\\\"; clear"
- (( $# > 0 )) && command="${command}; $*"
- local the_app=$(_omz_osx_get_frontmost_app)
- if [[ "$the_app" == 'iTerm' ]]; then
- osascript 2>/dev/null <<EOF
- tell application "iTerm" to activate
- tell application "System Events"
- tell process "iTerm"
- tell menu item "Split Horizontally With Current Profile" of menu "Shell" of menu bar item "Shell" of menu bar 1
- click
- end tell
- end tell
- keystroke "${command} \n"
- end tell
- EOF
- elif [[ "$the_app" == 'iTerm2' ]]; then
- osascript <<EOF
- tell application "iTerm2"
- tell current session of first window
- set newSession to (split horizontally with same profile)
- tell newSession
- write text "${command}"
- select
- end tell
- end tell
- end tell
- EOF
- elif [[ "$the_app" == 'Hyper' ]]; then
- osascript >/dev/null <<EOF
- tell application "System Events"
- tell process "Hyper"
- tell menu item "Split Horizontally" of menu "Shell" of menu bar 1
- click
- end tell
- end tell
- delay 1
- keystroke "${command} \n"
- end tell
- EOF
- else
- echo "$0: unsupported terminal app: $the_app" >&2
- return 1
- fi
- }
- function pfd() {
- osascript 2>/dev/null <<EOF
- tell application "Finder"
- return POSIX path of (insertion location 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 pxd() {
- dirname $(osascript 2>/dev/null <<EOF
- if application "Xcode" is running then
- tell application "Xcode"
- return path of active workspace document
- end tell
- end if
- EOF
- )
- }
- function cdx() {
- cd "$(pxd)"
- }
- function quick-look() {
- (( $# > 0 )) && qlmanage -p $* &>/dev/null &
- }
- function man-preview() {
- man -t "$@" | open -f -a Preview
- }
- compdef _man man-preview
- function vncviewer() {
- open vnc://$@
- }
- # Remove .DS_Store files recursively in a directory, default .
- function rmdsstore() {
- find "${@:-.}" -type f -name .DS_Store -delete
- }
- # Music / iTunes control function
- source "${0:h:A}/music"
- # Spotify control function
- source "${0:h:A}/spotify"
|