aboutsummaryrefslogtreecommitdiffstats
path: root/.zshrc-linux
diff options
context:
space:
mode:
Diffstat (limited to '.zshrc-linux')
-rw-r--r--.zshrc-linux212
1 files changed, 212 insertions, 0 deletions
diff --git a/.zshrc-linux b/.zshrc-linux
new file mode 100644
index 0000000..6e295a4
--- /dev/null
+++ b/.zshrc-linux
@@ -0,0 +1,212 @@
+################### ALIASES ##################
+alias ag='ag --color-match "1;34"'
+alias diff='colordiff'
+alias grep='grep --color=auto'
+alias latex='latex -output-format=pdf'
+alias less='less -R'
+alias ls='ls --color=auto'
+alias ll='ls -l --color=auto'
+
+alias def='sdcv'
+alias dvd='mpv --deinterlace=yes dvd://'
+alias ssh-socks='ssh -C2qTnN -D 9853 shmibbles.me'
+alias svim='sudo -E vim'
+alias thesaurus='aiksaurus'
+alias vmount='udevil mount'
+alias vumount='udevil umount'
+alias :q='exit'
+
+export EDITOR="vim"
+export PAGER="less -R"
+
+################## FUNCTIONS ##################
+
+# bits to human readable value
+b2h() {
+ suffixes=( 'B' 'K' 'M' 'G' 'T' 'P' 'E' 'Z' 'Y' )
+ sindex=1
+ val=$1
+ [[ -z $(echo $1 | grep "^[0-9]*$") ]] && read val
+
+ while [[ $(echo $val / 1024 | bc) -ne 0 ]]; do
+ val=$(echo "scale=2; $val / 1024" | bc)
+ let sindex=sindex+1
+ done
+
+ echo "${val}${suffixes[$sindex]}"
+}
+
+# ignore non-tracked files
+git() {
+ if [[ $# -gt 0 ]] && [[ "$1" == "status" ]]; then
+ shift
+ $(which -p git) status -uno "$@"
+ else
+ $(which -p git) "$@"
+ fi
+}
+
+# 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
+ name=$(echo "http://shmibbles.me/tmp/$(basename $name)"\
+ | 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
+}