aboutsummaryrefslogtreecommitdiffstats
path: root/.config/init/funcs
diff options
context:
space:
mode:
Diffstat (limited to '.config/init/funcs')
-rwxr-xr-x.config/init/funcs/mpd-cover-convert12
-rwxr-xr-x.config/init/funcs/mpd-sleep10
-rwxr-xr-x.config/init/funcs/send48
3 files changed, 70 insertions, 0 deletions
diff --git a/.config/init/funcs/mpd-cover-convert b/.config/init/funcs/mpd-cover-convert
new file mode 100755
index 0000000..cd3569a
--- /dev/null
+++ b/.config/init/funcs/mpd-cover-convert
@@ -0,0 +1,12 @@
+#!/bin/zsh
+# make small cover versions for mpc-notify.sh
+# leaks memory for some reason, so don't run on a clean library
+# or it'll crash everything
+
+local d
+find ~/music -type f -regextype posix-extended -regex ".*cover\.(png|jpg)"\
+ | while read file; do
+ if [[ ! -f "${file:h}/cover-small.png" ]]; then
+ convert "$file" -resize 250x "${file:h}/cover-small.png"
+ fi
+done
diff --git a/.config/init/funcs/mpd-sleep b/.config/init/funcs/mpd-sleep
new file mode 100755
index 0000000..c01d734
--- /dev/null
+++ b/.config/init/funcs/mpd-sleep
@@ -0,0 +1,10 @@
+#!/bin/zsh
+
+# power off after finishing mpd playlist
+mpc play > /dev/null
+while true; do
+ mpc idle player > /dev/null || return 1
+ if [[ -z "$(mpc status | grep playing)" ]]; then
+ poweroff
+ fi
+done
diff --git a/.config/init/funcs/send b/.config/init/funcs/send
new file mode 100755
index 0000000..88b3dbb
--- /dev/null
+++ b/.config/init/funcs/send
@@ -0,0 +1,48 @@
+#!/bin/zsh
+# quickly send a file to hosted tmp dir
+
+local name
+local basename
+local escapes
+typeset -A escapes
+escapes=(' ' '%20' '"' '%22' '#' '%23' '$' '%24'
+ '%' '%25' '&' '%26' "'" '%27' '+' '%2b'
+ ',' '%2c' '/' '%2f' ':' '%3a' ';' '%3b'
+ '<' '%3c' '=' '%3d' '>' '%3e' '?' '%3f'
+ '@' '%40' '[' '%5b' '\' '%5c' ']' '%5d'
+ '^' '%5e' '`' '%60' '{' '%7b' '|' '%7c'
+ '}' '%7d' '~' '%7e')
+if [[ "$1" ]]; then
+ for i in "$@"; do
+ [[ -f "$i" ]] \
+ || { echo "file '$i' not found"; return 1 }
+ done
+ scp "$@" shmibbles.me:http/tmp/ >/dev/null 2>&1 \
+ || { echo "sending files failed"; return 1 }
+ if [[ $? -eq 0 ]]; then
+ for name in "$@"
+ do
+ basename=${name:t}
+ ssh shmibbles.me "cd http/tmp; chmod o+r \"${basename//\"/\\\"}\""
+ if [[ $? -eq 0 ]]; then
+ {
+ printf "%s" 'https://shmibbles.me/tmp/'
+ for c in "${(s::)basename}"; do
+ if [[ "${escapes[$c]}" == "" ]]; then
+ printf "%s" "$c"
+ else
+ printf "%s" "${escapes[$c]}"
+ fi
+ done
+ } | tee >(xclip -i -selection clipboard) \
+ | xclip -i -selection primary
+ else
+ echo "making '$name' readable failed"
+ return 1
+ fi
+ done
+ fi
+else
+ echo "specify at least one file to send"
+ return 1
+fi