diff --git a/bashrc_laptop.txt b/bashrc_laptop.txt new file mode 100644 index 00000000..3d0e0547 --- /dev/null +++ b/bashrc_laptop.txt @@ -0,0 +1,240 @@ +# +# ~/.bashrc +# +neofetch + +# create custom env variables: +export CPROJ="/home/brian/Documents/Code/python/python_crash_course/projects/web_applications" +# custom BROWSER env for ddgr: +#export BROWSER=firefox-developer-edition +export BROWSER=links + + #enable vi keybindings in terminal and terminal applications +set -o vi + +# but keep ctrl l as the clear screen command +bind -m vi-command 'Control-l: clear-screen' +bind -m vi-insert 'Control-l: clear-screen' + +# clears the history completely upon loading bash +cat /dev/null > ~/.bash_history && history -c + +[[ $- != *i* ]] && return + +colors() { + local fgc bgc vals seq0 + + printf "Color escapes are %s\n" '\e[${value};...;${value}m' + printf "Values 30..37 are \e[33mforeground colors\e[m\n" + printf "Values 40..47 are \e[43mbackground colors\e[m\n" + printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n" + + # foreground colors + for fgc in {30..37}; do + # background colors + for bgc in {40..47}; do + fgc=${fgc#37} # white + bgc=${bgc#40} # black + + vals="${fgc:+$fgc;}${bgc}" + vals=${vals%%;} + + seq0="${vals:+\e[${vals}m}" + printf " %-9s" "${seq0:-(default)}" + printf " ${seq0}TEXT\e[m" + printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m" + done + echo; echo + done +} + +[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion + +# Change the window title of X terminals +case ${TERM} in + xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*) + PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007" ' + + ;; + screen*) + PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\" ' + ;; +esac + +use_color=true + +# Set colorful PS1 only on colorful terminals. +# dircolors --print-database uses its own built-in database +# instead of using /etc/DIR_COLORS. Try to use the external file +# first to take advantage of user additions. Use internal bash +# globbing instead of external grep binary. +safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM +match_lhs="" +[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)" +[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(/dev/null \ + && match_lhs=$(dircolors --print-database) +[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true + +if ${use_color} ; then + # Enable colors for ls, etc. Prefer ~/.dir_colors #64489 + if type -P dircolors >/dev/null ; then + if [[ -f ~/.dir_colors ]] ; then + eval $(dircolors -b ~/.dir_colors) + elif [[ -f /etc/DIR_COLORS ]] ; then + eval $(dircolors -b /etc/DIR_COLORS) + fi + fi + + if [[ ${EUID} == 0 ]] ; then + PS2='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] ' + else + PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] ' + fi + + alias ls='ls --color=auto' + alias grep='grep --colour=auto' + alias egrep='egrep --colour=auto' + alias fgrep='fgrep --colour=auto' +else + if [[ ${EUID} == 0 ]] ; then + # show root@ when we don't have colors + PS1='\u@\h \W \$ ' + else + PS1='\u@\h \w \$ ' + fi +fi + +unset use_color safe_term match_lhs sh + +alias cp="cp -i" # confirm before overwriting something +alias df='df -h' # human-readable sizes +alias free='free -m' # show sizes in MB +alias np='nano -w PKGBUILD' +alias more=less + +xhost +local:root > /dev/null 2>&1 + +complete -cf sudo + +# Bash won't get SIGWINCH if another process is in the foreground. +# Enable checkwinsize so that bash will check the terminal size when +# it regains control. #65623 +# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11) +shopt -s checkwinsize + +# No need to type cd when changing directories. +shopt -s autocd +# No need to have capitalization correct +shopt -s cdspell + +shopt -s expand_aliases + +# export QT_SELECT=4 + +# Enable history appending instead of overwriting. #139609 +shopt -s histappend + +# +# # ex - archive extractor +# # usage: ex +ex () +{ + if [ -f $1 ] ; then + case $1 in + *.tar.bz2) tar xjf $1 ;; + *.tar.gz) tar xzf $1 ;; + *.bz2) bunzip2 $1 ;; + *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; + *.tar) tar xf $1 ;; + *.tbz2) tar xjf $1 ;; + *.tgz) tar xzf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1;; + *.7z) 7z x $1 ;; + *) echo "'$1' cannot be extracted via ex()" ;; + esac + else + echo "'$1' is not a valid file" + fi +} + +# Formats history command with dates/times +HISTTIMEFORMAT="%d/%m/%y %T " + +# Displays current git branch if there is any and also styles bash prompt +export PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\033[01;37m\] $(git branch 2>/dev/null | grep '^*' | colrm 1 2)\n\033[01;32m└─▶ \033[37m' + +# Custom Bash Commands +alias .="cd" +alias home="xclear && cd /home/brian && clear && nf && history -c" +alias docs="cd ~/Documents" +alias down="cd ~/Downloads" +alias pics="cd ~/Pictures" +alias music="cd ~/Music" +alias vids="cd ~/Videos" +alias notes="cd ~/Documents/notes" +alias config="cd ~/.config" +alias cache="cd ~/.cache" +alias Code="cd ~/Documents/Code" +alias cplus="cd ~/Documents/Code/cpp" +alias js="cd ~/Documents/Code/javascript" +alias py="cd ~/Documents/Code/python" +alias ls="ls -liasSh --color=auto" +alias {ex,esc}="exit" +alias {his,hist}="history" +alias bluepill="cmatrix -bm -C cyan" +alias redpill="cmatrix -bm -C red" +alias nf="neofetch" +alias btop="xfce4-terminal --geometry=142x57+0+0 -x btop" +alias {firefox,ff}="firefox-developer-edition &" +alias {sq,sql,sqlite}="sqlcipher" +alias view="viewnior" +alias serve="live-server" +alias tree="tree -ad -L 3 --prune -C" +alias {nv,nvi}="nvim" +alias {mymux,memux,mmux}="tmux new-session \; send-keys 'nvim' C-m\; split-window -v -p 3\; send-keys 'clear' C-m\; split-window -h -p 14\; send-keys 'clear && ddgr' C-m\; select-pane -t 0\;" +alias {cproj,mproj,myproj}="cd '$CPROJ' && mmux" +alias tls="tmux ls" +alias ta="tmux a -t" +alias tkill="tmux kill-ses -t" +alias {mi,mic}="micro" +alias {mysql,maria,mdb}="mariadb" +alias {ss,wi,ssid}="doas iw wlan0 scan | grep SSID" +alias {ov,ovpn}="doas openvpn --config ~/.config/protonvpn/protonvpn_configs/us-free-02.protonvpn.com.udp.ovpn --auth-user-pass ~/.config/protonvpn/protonvpn.txt" +alias {pvpn,pv}="doas protonvpn c US-FREE#1 -p UDP" +alias {pvdown,pvpnd,pvd}="doas protonvpn d" +alias git-a="git add" +alias git-c="git commit -m" +alias git-p="git push" +alias xsel="xclip -sel clip" +alias catx="cat | xclip -sel clip" +alias xclear="echo '' | xclip && xclip -selection clipboard /dev/null" +alias {mop,market,stonks,stocks}="cd ~/aur_packages/mop && go run ./cmd/mop/main.go" +alias ddgr="ddgr -n 25" +alias {ddg,duck}="links https://www.duckduckgo.com" +alias searx="links https://www.searx.bar" +alias {vlc,mpl}="mplayer" +alias {muse,musik,cmu}="cmus" +alias {hp,headphones}="pactl set-default-sink alsa_output.usb-FIIO_FiiO_USB_DAC-E10-01.analog-stereo" +alias {sp,speakers}="pactl set-default-sink alsa_output.pci-0000_0a_00.4.analog-stereo" +alias pulse="pamixer --set-volume" +alias {mu,mt,mute}="pamixer -t" +alias ytdl="youtube-dl" +alias thinkorswim="~/thinkorswim/thinkorswim &" +alias {cl,cls}="clear" +alias shutdown="doas shutdown -h now" +alias reboot="doas reboot" +alias log="xfce4-session-logout --logout:wq" +alias curltime="curl -w \"@$HOME/Documents/notes/curl-format.txt\" -o /dev/null -s" +alias ipaddr="curl ifconfig.me" +alias killport="fuser -k" +alias rmorphans="sudo pacman -Rs $(pacman -Qdtq)" +alias rm="rm -i" +alias {doasedit,sudoedit}="doas rnano" +alias shred="shred -uz" + +export EDITOR=nvim +export PATH="$PATH:$GOPATH/bin" +[ -f ~/.fzf.bash ] && source ~/.fzf.bash