149 lines
3.8 KiB
Bash
149 lines
3.8 KiB
Bash
# Handle $0 according to the standard:
|
|
# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
|
|
0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
|
|
0="${${(M)0:#/*}:-$PWD/$0}"
|
|
|
|
function open_command() {
|
|
local open_cmd
|
|
|
|
# define the open command
|
|
case "$OSTYPE" in
|
|
darwin*) open_cmd='open' ;;
|
|
cygwin*) open_cmd='cygstart' ;;
|
|
linux*) [[ "$(uname -r)" != *icrosoft* ]] && open_cmd='nohup xdg-open' || {
|
|
open_cmd='cmd.exe /c start ""'
|
|
[[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 }
|
|
} ;;
|
|
msys*) open_cmd='start ""' ;;
|
|
*) echo "Platform $OSTYPE not supported"
|
|
return 1
|
|
;;
|
|
esac
|
|
|
|
# If a URL is passed, $BROWSER might be set to a local browser within SSH.
|
|
# See https://github.com/ohmyzsh/ohmyzsh/issues/11098
|
|
if [[ -n "$BROWSER" && "$1" = (http|https)://* ]]; then
|
|
"$BROWSER" "$@"
|
|
return
|
|
fi
|
|
|
|
${=open_cmd} "$@" &>/dev/null
|
|
}
|
|
|
|
# Open in Finder the directories passed as arguments, or the current directory if
|
|
# no directories are passed
|
|
function ofd {
|
|
if (( ! $# )); then
|
|
open_command $PWD
|
|
else
|
|
open_command $@
|
|
fi
|
|
}
|
|
|
|
# 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_macos_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 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() {
|
|
[[ $# -eq 0 ]] && >&2 echo "Usage: $0 command1 [command2 ...]" && return 1
|
|
|
|
local page
|
|
for page in "${(@f)"$(man -w $@)"}"; do
|
|
command mandoc -Tpdf $page | open -f -a Preview
|
|
done
|
|
}
|
|
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
|
|
}
|
|
|
|
# Erases purgeable disk space with 0s on the selected disk
|
|
function freespace(){
|
|
if [[ -z "$1" ]]; then
|
|
echo "Usage: $0 <disk>"
|
|
echo "Example: $0 /dev/disk1s1"
|
|
echo
|
|
echo "Possible disks:"
|
|
df -h | awk 'NR == 1 || /^\/dev\/disk/'
|
|
return 1
|
|
fi
|
|
|
|
echo "Cleaning purgeable files from disk: $1 ...."
|
|
diskutil secureErase freespace 0 $1
|
|
}
|
|
|
|
_freespace() {
|
|
local -a disks
|
|
disks=("${(@f)"$(df | awk '/^\/dev\/disk/{ printf $1 ":"; for (i=9; i<=NF; i++) printf $i FS; print "" }')"}")
|
|
_describe disks disks
|
|
}
|
|
|
|
compdef _freespace freespace
|