You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							452 lines
						
					
					
						
							11 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							452 lines
						
					
					
						
							11 KiB
						
					
					
				
								#  system {{{ # 
							 | 
						|
								setopt extendedglob
							 | 
						|
								
							 | 
						|
								# vim mode {{{ # 
							 | 
						|
								bindkey -v
							 | 
						|
								function zle-line-init zle-keymap-select {
							 | 
						|
								    VIM_PROMPT="%{$fg_bold[yellow]%} [% NORMAL]%  %{$reset_color%}"
							 | 
						|
								    RPS1="${${KEYMAP/vicmd/$VIM_PROMPT}/(main|viins)/} $EPS1"
							 | 
						|
								    zle reset-prompt
							 | 
						|
								}
							 | 
						|
								zle -N zle-line-init
							 | 
						|
								zle -N zle-keymap-select
							 | 
						|
								export KEYTIMEOUT=1
							 | 
						|
								#  }}} vim mode # 
							 | 
						|
								
							 | 
						|
								#  command line related {{{ # 
							 | 
						|
								# search history
							 | 
						|
								bindkey '\e[A' history-beginning-search-backward
							 | 
						|
								bindkey '\e[B' history-beginning-search-forward
							 | 
						|
								
							 | 
						|
								alias cs='printf "\033c"'
							 | 
						|
								alias hst="history"
							 | 
						|
								alias nf="neofetch"
							 | 
						|
								alias rur="xrdb ~/.Xresources"
							 | 
						|
								function gvx() { urxvt --help 2>&1 | grep $1 ; } 
							 | 
						|
								# list file sizes in megabytes with depth 1
							 | 
						|
								alias dum="du -d 1 -B M"
							 | 
						|
								
							 | 
						|
								# pacman
							 | 
						|
								function pcs() { sudo pacman -S $1 ; } 
							 | 
						|
								function pcr() { sudo pacman -R $1 ; } 
							 | 
						|
								function mpk() { makepkg -si ; } 
							 | 
						|
								
							 | 
						|
								# install deb files
							 | 
						|
								function ideb() { sudo dpkg -i $1 ; } 
							 | 
						|
								
							 | 
						|
								function cld() { colordiff -y --suppress-common-lines $1 $2 ; } 
							 | 
						|
								alias grep='grep --color=auto'
							 | 
						|
								# for finding files by name
							 | 
						|
								function rfnd() { find . -name "$1" ; } 
							 | 
						|
								# find text inside files
							 | 
						|
								function rgrp() { grep -r $1 * ; } 
							 | 
						|
								function cpd() { cp -avr $1 $2 ; } 
							 | 
						|
								
							 | 
						|
								# extract tar archive
							 | 
						|
								function untar() { tar -xzvf $1 && rm $1; } 
							 | 
						|
								function runzip() { unzip $1 && rm $1; } 
							 | 
						|
								#  }}} command line related # 
							 | 
						|
								
							 | 
						|
								#  directory-related {{{ # 
							 | 
						|
								alias l='ls -a'
							 | 
						|
								alias ll='ls -alF'
							 | 
						|
								function f() { cd $1 && pwd > ~/.last_dir && ls -a ; }
							 | 
						|
								# restore last dir
							 | 
						|
								if [ -f ~/.last_dir ]
							 | 
						|
								    then cd `cat ~/.last_dir`
							 | 
						|
								fi
							 | 
						|
								function rmr() { rm -rf $1 ; } 
							 | 
						|
								
							 | 
						|
								# todo: fix
							 | 
						|
								# function f.() { f $(printf "%0.s../" $(seq 1 $1 )) ; }
							 | 
						|
								alias "f."="f .."
							 | 
						|
								alias "f.2"="f ..."
							 | 
						|
								
							 | 
						|
								alias fd="f ~/Downloads"
							 | 
						|
								alias fds="f ~/Downloads/sch"
							 | 
						|
								alias doc="f ~/Documents"
							 | 
						|
								alias cfg="f ~/.config"
							 | 
						|
								
							 | 
						|
								#  }}}  directory-related # 
							 | 
						|
								
							 | 
						|
								#  power options {{{ # 
							 | 
						|
								alias s="systemctl suspend"
							 | 
						|
								alias sd="sudo shutdown 0"
							 | 
						|
								alias reb="sudo shutdown -r 0"
							 | 
						|
								alias lo="i3-msg exit"
							 | 
						|
								#  }}} power options # 
							 | 
						|
								
							 | 
						|
								function 	apti() { sudo apt install $1 ; } 
							 | 
						|
								function 	aptr() { sudo apt remove $1 ; } 
							 | 
						|
								#  }}} system # 
							 | 
						|
								
							 | 
						|
								# config files {{{ #
							 | 
						|
								alias lc="f ~/linux-config/"
							 | 
						|
								alias lca="f ~/linux-config/aliases"
							 | 
						|
								
							 | 
						|
								alias vv="ni ~/.vimrc"
							 | 
						|
								alias vu="ni ~/.Xresources"
							 | 
						|
								alias vzb="ni ~/.zshrc"
							 | 
						|
								alias vz="ni ~/linux-config/aliases/zsh_aliases"
							 | 
						|
								alias vr="ni ~/.config/ranger/rc.conf"
							 | 
						|
									
							 | 
						|
								#  i3 {{{ # 
							 | 
						|
								alias v3="ni ~/.config/i3/config"
							 | 
						|
								alias v3b="ni ~/.config/i3blocks/i3blocks.conf"
							 | 
						|
								alias i3b="f ~/i3blocks"
							 | 
						|
								
							 | 
						|
								alias pipes="pipes.sh -t 2"
							 | 
						|
								alias bg="f ~/Pictures/Backgrounds"
							 | 
						|
								#  }}} i3 # 
							 | 
						|
									
							 | 
						|
								# UltiSnips {{{ #
							 | 
						|
								usnp_dir="~/.vim/plugged/vim-snippets/UltiSnips"
							 | 
						|
								alias snp="f $usnp_dir"
							 | 
						|
								function vsnp() { ni ~/.vim/plugged/vim-snippets/UltiSnips/"$1".snippets ; }
							 | 
						|
								alias tm="ni $usnp_dir/texmath.snippets"
							 | 
						|
								# }}} #
							 | 
						|
								
							 | 
						|
								# }}} config files #
							 | 
						|
								
							 | 
						|
								#  applications {{{ # 
							 | 
						|
								alias rg="ranger"
							 | 
						|
								# okular
							 | 
						|
								function ok() { nohup okular $1 > /dev/null 2>&1& ; }
							 | 
						|
								# xviewer
							 | 
						|
								function xv() { nohup xviewer $1 > /dev/null 2>&1& ; }
							 | 
						|
								function chr() { google-chrome $1 ; }
							 | 
						|
								function ni() { nvim $1 ; }
							 | 
						|
								function sni() { sudo nvim $1 ; }
							 | 
						|
									alias nisw="f ~/.local/share/nvim/swap"
							 | 
						|
								# function mrk() { pandoc -o ${1%.*}.html $1 && chr ${1%.*}.html ; }
							 | 
						|
								function mrk() { pandoc -o ${1%.*}.html $1 ; } 
							 | 
						|
								function auc() { xdotool click --repeat 1000000 --delay $1 1 ; } 
							 | 
						|
								alias auc1="xdotool click --repeat 1000000 --delay 1 1"
							 | 
						|
								alias auc3="xdotool click --repeat 1000000 --delay 300 1"
							 | 
						|
								alias auc5="xdotool click --repeat 1000000 --delay 500 1"
							 | 
						|
								alias kauc="pkill -f xdotool"
							 | 
						|
								
							 | 
						|
								alias vbn="cvlc --loop --alsa-gain 1 ~/Music/brown-noise.mp3"
							 | 
						|
								alias vlm="alsamixer -c 0"
							 | 
						|
								alias rmsw="rm .sw*"
							 | 
						|
								
							 | 
						|
								# function rs(){ redshift -O $(echo "scale=2;$1*1000" | bc) ; }
							 | 
						|
								function rs(){ redshift -O $1 ; }
							 | 
						|
								alias rx="redshift -x"
							 | 
						|
								
							 | 
						|
								#  python related {{{ # 
							 | 
						|
								function grpy() { grep $1 *.py ; } 
							 | 
						|
								function p3() { python3 $1 ; } 
							 | 
						|
								function py() { python $1 ; } 
							 | 
						|
								#  }}} python related # 
							 | 
						|
								
							 | 
						|
								#  }}} applications # 
							 | 
						|
								
							 | 
						|
								#  device specific {{{ # 
							 | 
						|
								
							 | 
						|
								# NZXT {{{
							 | 
						|
								if [ "$(hostname)" = "NZXT" ]; then
							 | 
						|
									
							 | 
						|
									#  rotate monitor {{{ # 
							 | 
						|
									function rt() {
							 | 
						|
										output="HDMI-0"
							 | 
						|
										if [ "$1" = "s" ]
							 | 
						|
										# if [ "${1:0:1}" = "s" ]
							 | 
						|
										then
							 | 
						|
											output="DVI-I-1"
							 | 
						|
										fi
							 | 
						|
								
							 | 
						|
										dir="normal"
							 | 
						|
										if [ "$2" = "r" ]
							 | 
						|
										# if [ "${1:1:2}" = "r" ]
							 | 
						|
										then
							 | 
						|
											dir="right"
							 | 
						|
										fi
							 | 
						|
										if [ "$2" = "l" ]
							 | 
						|
										then
							 | 
						|
											dir="left"
							 | 
						|
										fi
							 | 
						|
								
							 | 
						|
										# echo "xrandr --output \"$output\" --rotate \"$dir\""
							 | 
						|
										xrandr --output "$output" --rotate "$dir"
							 | 
						|
									}
							 | 
						|
									#  }}} rotate monitor # 
							 | 
						|
								
							 | 
						|
									#  audio {{{ # 
							 | 
						|
									#  was for transferring sink inputs between DAC and speakers but not
							 | 
						|
									#  necessary if not using
							 | 
						|
									alias alsi="pactl list short sink-inputs"
							 | 
						|
									alias als="pactl list short sinks"
							 | 
						|
									function amsih() { pactl move-sink-input $1 0 ; } 
							 | 
						|
									function amsis() { pactl move-sink-input $1 1 ; } 
							 | 
						|
									#  }}} audio # 
							 | 
						|
								
							 | 
						|
									#  apps {{{ # 
							 | 
						|
									alias nem="nemo ."
							 | 
						|
									alias spt="speedtest"
							 | 
						|
									alias pg="ping -c 5 google.ca"
							 | 
						|
									alias w7="VBoxManage startvm W7 --type headless"
							 | 
						|
									#  }}} apps  # 
							 | 
						|
								
							 | 
						|
									#  various coding projs {{{ # 
							 | 
						|
									alias sfa="f ~/Documents/self-authoring"
							 | 
						|
									alias rcg="$cd_coding_dir/random-color-generator"
							 | 
						|
									alias dcr="$cd_coding_dir/dcr-logger"
							 | 
						|
									alias prf="$cd_coding_dir/ParsaFood"
							 | 
						|
								
							 | 
						|
									#  swbot {{{ # 
							 | 
						|
									alias sb="$cd_coding_dir/swbot"
							 | 
						|
										# alias psb="p3 create_skills_dict.py"
							 | 
						|
										# alias psbo="p3 create_skills_dict.py > output.py"
							 | 
						|
										alias psb="p3 create_monster_dict.py"
							 | 
						|
										alias psbo="p3 create_monster_dict.py > output.py"
							 | 
						|
									#  }}} swbot # 
							 | 
						|
										
							 | 
						|
									#  resume {{{ # 
							 | 
						|
									alias cv="f ~/Documents/resume/examples"
							 | 
						|
										alias cvf="f ~/Documents/resume/examples/cv"
							 | 
						|
										alias vcv="ni ~/Documents/resume/examples/cv.tex"
							 | 
						|
										alias cvn="ni ~/Documents/resume/resume-notes.md"
							 | 
						|
										alias okcv="ok ~/Documents/resume/examples/cv.pdf"
							 | 
						|
										# https://stackoverflow.com/a/6605085/8811872
							 | 
						|
										function pdftojpg() { 
							 | 
						|
											convert \
							 | 
						|
												-verbose       \
							 | 
						|
												-density 150   \
							 | 
						|
												-trim          \
							 | 
						|
												$1.pdf      \
							 | 
						|
												-quality 100   \
							 | 
						|
												-flatten       \
							 | 
						|
												-sharpen 0x1.0 \
							 | 
						|
												$1.jpg
							 | 
						|
										} 
							 | 
						|
									#  }}} resume # 
							 | 
						|
									
							 | 
						|
									#  }}} various coding projs # 
							 | 
						|
								fi
							 | 
						|
								# NZXT }}}
							 | 
						|
								
							 | 
						|
								# laptop {{{
							 | 
						|
								if [[ "$(hostname)" = "X1-Carbon" ]]; then
							 | 
						|
									alias gbl="xbacklight -get"
							 | 
						|
									function bl() { xbacklight -set $(echo "scale=2;$1*10" | bc) ; } 
							 | 
						|
								
							 | 
						|
									alias labm="xrandr --auto && xrandr --output HDMI2 --right-of eDP1 --dpi 100"
							 | 
						|
									alias vlm="alsamixer -c 1"
							 | 
						|
								
							 | 
						|
									alias thn="thunar ."
							 | 
						|
								
							 | 
						|
									alias plz="f ~/platterz2018/ocr-reader/app/src/main/java/com/google/android/gms/samples/vision/ocrreader"
							 | 
						|
									alias ans="f /usr/local/android-studio/bin/"
							 | 
						|
								fi
							 | 
						|
								# laptop }}}
							 | 
						|
								
							 | 
						|
								#  }}} device specific # 
							 | 
						|
								
							 | 
						|
								#  git {{{ # 
							 | 
						|
								# aliases {{{
							 | 
						|
								alias gstr="git config credential.helper store"
							 | 
						|
								
							 | 
						|
								#  add {{{ # 
							 | 
						|
								alias ga="git add -A . && gs"
							 | 
						|
								alias gac="git add -A . && git commit"
							 | 
						|
								#  }}} add # 
							 | 
						|
								
							 | 
						|
								#  diff/log {{{ # 
							 | 
						|
								alias gd="git diff -w"
							 | 
						|
								alias gdc="git diff --cached"
							 | 
						|
								alias gl="git log"
							 | 
						|
								alias gsl="git shortlog"
							 | 
						|
								#  }}}  diff/log # 
							 | 
						|
								
							 | 
						|
								#  update {{{ # 
							 | 
						|
								
							 | 
						|
								alias gs="git status -u"
							 | 
						|
								alias gchm="git checkout master"
							 | 
						|
								alias gchnw="git checkout -b wip"
							 | 
						|
								alias gchw="git checkout wip"
							 | 
						|
								alias gheadm1="git reset --hard HEAD~1"
							 | 
						|
								alias glstf="git ls-tree -r HEAD --name-only"
							 | 
						|
								
							 | 
						|
								#  push {{{ # 
							 | 
						|
								alias egc="nvim -c \"set syn=gitcommit\" -c \"set tw=72\" commit-msg.txt"
							 | 
						|
								alias gst="git stash"
							 | 
						|
								alias gstp="git stash pop"
							 | 
						|
								
							 | 
						|
								alias gc="git commit"
							 | 
						|
								alias gcam="ga && git commit --amend"
							 | 
						|
								# todo: fix
							 | 
						|
								function gcm(){ echo git commit -m \""$1"\" ; }
							 | 
						|
								
							 | 
						|
								function psg() { 
							 | 
						|
									git add .
							 | 
						|
									git commit -m '.'
							 | 
						|
									git push
							 | 
						|
								} 
							 | 
						|
								alias gps="git push"
							 | 
						|
								alias gpsf="git push --force"
							 | 
						|
								alias gclear="git stash clear"
							 | 
						|
								#  }}} push # 
							 | 
						|
								
							 | 
						|
								#  pull {{{ # 
							 | 
						|
								alias gpl="git pull --rebase"
							 | 
						|
								alias grbc="git rebase --continue"
							 | 
						|
								#  }}} pull # 
							 | 
						|
								
							 | 
						|
								#  }}} update # 
							 | 
						|
								
							 | 
						|
								#  edit {{{ # 
							 | 
						|
								alias vig="ni .gitignore"
							 | 
						|
								alias vir="ni README.md"
							 | 
						|
								alias crm="mrk README.md"
							 | 
						|
								#  }}} edit # 
							 | 
						|
								
							 | 
						|
								# aliases }}}
							 | 
						|
								
							 | 
						|
								# functions {{{
							 | 
						|
								function gcho() { git checkout $1 ; }
							 | 
						|
								function gchon() { git checkout -b $1 ; }
							 | 
						|
								function gchof() { git checkout $1 $2 ; }
							 | 
						|
								
							 | 
						|
								function gcln() { git clone $1 ; }
							 | 
						|
								function gchp() { git cherry-pick $1 ; }
							 | 
						|
								alias gchpc="git cherry-pick --continue"
							 | 
						|
								
							 | 
						|
								# add multiple push repos
							 | 
						|
								function gremotes() {
							 | 
						|
									git remote set-url --add --push origin $1
							 | 
						|
									git remote set-url --add --push origin $2
							 | 
						|
									git remote -v
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								# gmrgr: merge repos {{{ # 
							 | 
						|
								function gmrgr() { 
							 | 
						|
									# 1 = remote name, 2 = remote path
							 | 
						|
									git remote add $1 $2
							 | 
						|
									git fetch $1
							 | 
						|
									# whichever branch you want to merge
							 | 
						|
									git merge --allow-unrelated-histories $1/master 
							 | 
						|
									git remote remove $1
							 | 
						|
								}
							 | 
						|
								#  }}} merge repos # 
							 | 
						|
								
							 | 
						|
								# assume file unchanged
							 | 
						|
								function gunc() { git update-index --assume-unchanged $1 ; } 
							 | 
						|
								# delete branch locally and on server
							 | 
						|
								function grmb() { git push -d origin $1 && git branch -D $1 ; }
							 | 
						|
								
							 | 
						|
								# functions }}}
							 | 
						|
								
							 | 
						|
								#  }}} git # 
							 | 
						|
								
							 | 
						|
								#  coding projs {{{ # 
							 | 
						|
								coding_dir="~/Documents/coding"
							 | 
						|
								cd_coding_dir="f $coding_dir"
							 | 
						|
								alias cdn="$cd_coding_dir"
							 | 
						|
								
							 | 
						|
								# ideas
							 | 
						|
								ideas_dir="$coding_dir""/ideas"
							 | 
						|
								alias ids="f $ideas_dir"
							 | 
						|
								alias lci="f $ideas_dir/general"
							 | 
						|
								alias vli="ni $ideas_dir/general/ideas.md"
							 | 
						|
								alias fyn="f $ideas_dir/yes-no"
							 | 
						|
								
							 | 
						|
								alias ans="f /usr/local/android-studio/bin && ./studio.sh"
							 | 
						|
								#  trapbot {{{ # 
							 | 
						|
								alias tb="$cd_coding_dir/trapbot"
							 | 
						|
									alias vtb="$cd_coding_dir/trapbot && ni scan_reddit.py"
							 | 
						|
									alias ptb="python scan_reddit.py"
							 | 
						|
									alias rtb="$cd_coding_dir/trapbot && python scan_reddit.py"
							 | 
						|
								#  }}} trapbot # 
							 | 
						|
								
							 | 
						|
								#  }}} coding projs # 
							 | 
						|
								
							 | 
						|
								#  school {{{ # 
							 | 
						|
								in_lab=false
							 | 
						|
								cd_school="f ~/Documents/School/notes"
							 | 
						|
								
							 | 
						|
								# general {{{ 
							 | 
						|
								alias sch="$cd_school"
							 | 
						|
								alias 236="$cd_school/236"
							 | 
						|
								alias rml="rm *.aux *.log *.pdf"
							 | 
						|
								
							 | 
						|
								#  LaTeX {{{ # 
							 | 
						|
								function pdl() { pdflatex $1 ; } 
							 | 
						|
								function pdlb() { pdflatex $1 && biber $1 && pdflatex $1 ; } 
							 | 
						|
								function cptp() { 
							 | 
						|
									cp *template.tex cp-template.tex 
							 | 
						|
									chmod 600 cp-template.tex 
							 | 
						|
									date=`date +%-m-%d`
							 | 
						|
									mv cp-template.tex "$date".tex
							 | 
						|
								} 
							 | 
						|
								#  }}} LaTeX # 
							 | 
						|
								
							 | 
						|
								# }}} 
							 | 
						|
								
							 | 
						|
								# 136 {{{ 
							 | 
						|
								alias clc="gcalccmd"
							 | 
						|
								alias mt="ok ~/Documents/School/calc-textbook.pdf"
							 | 
						|
								alias mt2="ok ~/Documents/School/calc-textbook-2.pdf"
							 | 
						|
								
							 | 
						|
								alias 136="$cd_school/136"
							 | 
						|
								alias 136l="$cd_school/136/lecture"
							 | 
						|
								alias pr3="$cd_school/136/par/3"
							 | 
						|
								# }}}
							 | 
						|
								
							 | 
						|
								# 209 {{{
							 | 
						|
								# dirs {{{
							 | 
						|
								cd_209="f ~/Documents/School/209";
							 | 
						|
								alias 209="$cd_209"
							 | 
						|
								alias 9r="$cd_209/mokkar"
							 | 
						|
								alias 9l="$cd_209/mokkar/lab10"
							 | 
						|
								alias 9a="$cd_209/mokkar/a4"
							 | 
						|
								# }}}
							 | 
						|
								
							 | 
						|
								alias ll="ls -la"
							 | 
						|
								alias cdf="echo \". ./.bashrc\"&& ssh mokkar@cdf.utoronto.ca"
							 | 
						|
								function mkex() { chmod 777 $1 ; }
							 | 
						|
								
							 | 
						|
								# {{{ Compilation Functions
							 | 
						|
								# compile without running
							 | 
						|
								function c9() { gcc -Wall -std=gnu99 -g -o "${1%.*}.out" "$1" -lm ; }
							 | 
						|
								
							 | 
						|
								#  compile all without running {{{ # 
							 | 
						|
								function c9a() { 
							 | 
						|
									for file in *; do
							 | 
						|
										if [[ $file = *.c ]]; then
							 | 
						|
											gcc -Wall -std=gnu99 -g -o "${file%.*}".out "$file"
							 | 
						|
										fi
							 | 
						|
									done
							 | 
						|
								} 
							 | 
						|
								#  }}} compile all without running # 
							 | 
						|
								
							 | 
						|
								# compile and run
							 | 
						|
								function c9r() { c9 $1 && ./"${1%.*}.out" ; }
							 | 
						|
								
							 | 
						|
								# compile and run with input
							 | 
						|
								function c9i() { c9 $1 && ./"${1%.*}.out" < $2 ; }
							 | 
						|
								
							 | 
						|
								#  compile and run with input file {{{ # 
							 | 
						|
								function run() {
							 | 
						|
									while read line; do 
							 | 
						|
										# ./$1.out $line
							 | 
						|
										echo ./$1.out $line
							 | 
						|
									done < $1.in
							 | 
						|
								}
							 | 
						|
								#  }}} compile and run with input file # 
							 | 
						|
								
							 | 
						|
								#  temp {{{ # 
							 | 
						|
								function m9() { 
							 | 
						|
									c9 write_test_file.c 
							 | 
						|
									./write_test_file.out test.txt
							 | 
						|
									od -vtu1 test.txt
							 | 
						|
								}
							 | 
						|
								alias m92="c9 time_reads.c && ./time_reads.out 1 test.txt"
							 | 
						|
								#  }}} temp # 
							 | 
						|
								
							 | 
						|
								# }}}
							 | 
						|
								# }}}
							 | 
						|
								
							 | 
						|
								alias 6a="$cd_school/236/a2"
							 | 
						|
								alias 6t="ok ~/Documents/School/236-textbook.pdf"
							 | 
						|
								#  }}} school #
							 |