diff options
Diffstat (limited to '.zshrc-linux-desktop')
-rw-r--r-- | .zshrc-linux-desktop | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/.zshrc-linux-desktop b/.zshrc-linux-desktop new file mode 100644 index 0000000..c34c60e --- /dev/null +++ b/.zshrc-linux-desktop @@ -0,0 +1,168 @@ +################## FUNCTIONS ################## + +# capture webm +scap() { + archey3 + sleep .1 + if [[ -f '/tmp/out.webm' ]]; then + rm /tmp/out.webm + fi + echo 'recording...' + ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 \ + -c:v libvpx -b:v 4M -threads 4 /tmp/out.webm > /dev/null 2>&1 +} + +# quickly send a file to hosted tmp dir +send() { + if [[ "$1" ]]; then + scp $@ shmibbles.me:http/tmp/ + if [[ $? -eq 0 ]]; then + for name in "$@" + do + basename=$(basename $name) + ssh shmibbles.me "cd http/tmp; chmod o+r '$basename'" + name=$(echo "http://shmibbles.me/tmp/$basename"\ + | sed 's/ /%20/g') + echo $name | tr -d '\n' | xclip -i -selection clipboard + echo $name | tr -d '\n' | xclip -i -selection primary + done + fi + else + echo "specify at least one file to send" + fi +} + +# take a screenshot, upload to /img/scrot, and update current symlink +ssh-scrot() { + archey3 + + if [[ "$1" != "" ]]; then + name=$1 + else + echo -n "name: " + read name + fi + + date=$(date +'%Y-%m-%d') + + folder="http/img/scrot" + ssh shmibbles.me "mkdir -p $folder/$date" + + if [[ "${?#0}" != "" ]]; then + return 1 + fi + + ssh shmibbles.me "rm $folder/current 2>/dev/null; ln -s $folder/$date $folder/current" + + for i in {3..1}; do + echo -n "$i " + sleep 1 + done + + echo 'cheese!' + sleep .1 + + scrot /tmp/$name.png + convert -scale 250x /tmp/$name.png /tmp/${name}_small.png + + scp /tmp/$name.png /tmp/${name}_small.png shmibbles.me:http/img/scrot/$date + + echo "http://shmibbles.me/img/scrot/$date/$name.png" | tr -d '\n' | xclip -i -selection clipboard + echo "http://shmibbles.me/img/scrot/$date/$name.png" | tr -d '\n' | xclip -i -selection primary + echo "http://shmibbles.me/img/scrot/$date/${name}_small.png" | tr -d '\n' | xclip -i -selection clipboard + echo "http://shmibbles.me/img/scrot/$date/${name}_small.png" | tr -d '\n' | xclip -i -selection primary + + echo 'sent!' + + rm /tmp/$name.png /tmp/${name}_small.png + +} + +# export a section of a video to gif +make-gif() { + + if [[ -z "$1" ]]; then + break + fi + + rm -f make-gif-palette.png + rm -f make-gif-palette.png + rm -f make-gif-in + + rm -f make-gif-in + + ln -s "$1" make-gif-in + + echo -n "start [00:00:00]: " + read start + if [[ -z "$start" ]]; then + start="00:00:00" + fi + + echo -n "length [full]: " + read length + if [[ -z "$length" ]]; then + t="" + length="" + else + t="-t" + fi + + echo -n "fps [10]: " + read fps + if [[ -z "$fps" ]]; then + fps="10" + fi + + echo -n "width [480]: " + read width + if [[ -z "$width" ]]; then + width="480" + fi + + echo -n "use subtitles? [y/N]: " + read subs + if [[ "$subs" == "y" || "$subs" == "Y" ]]; then + subs="true" + else + subs="" + fi + + if [[ $subs ]]; then + ffmpeg -y -ss "$start" $t "$length" -i "$1" \ + -copyts -vf "subtitles=make-gif-in,fps=$fps,scale=$width:-1:flags=lanczos,palettegen" make-gif-palette.png + ffmpeg -ss "$start" $t "$length" -i "$1" -i make-gif-palette.png \ + -copyts -filter_complex \ + "subtitles=make-gif-in,fps=$fps,scale=$width:-1:flags=lanczos[x];[x][1:v]paletteuse" \ + out.gif + else + ffmpeg -y -ss "$start" $t "$length" -i "$1" \ + -vf "fps=$fps,scale=$width:-1:flags=lanczos,palettegen" make-gif-palette.png + ffmpeg -ss "$start" $t "$length" -i "$1" -i make-gif-palette.png -filter_complex \ + "fps=$fps,scale=$width:-1:flags=lanczos[x];[x][1:v]paletteuse" \ + out.gif + fi + + rm -f make-gif-palette.png + rm -f make-gif-in +} + +# um... +fuck() { + fuck="fuck" + while true; do + echo -en "\e[$((RANDOM%2));$((RANDOM%8+30))m" + + for i in {1..4}; do + if [[ $((RANDOM%2)) -eq 1 ]]; then + echo -n $fuck[$i] | tr '[:lower:]' '[:upper:]' + else + echo -n $fuck[$i] + fi + done + + for i in {1..$((RANDOM%20))}; do + echo -n " " + done + done +} |