aboutsummaryrefslogtreecommitdiff
path: root/sh/bash/.bashrc
diff options
context:
space:
mode:
Diffstat (limited to 'sh/bash/.bashrc')
-rw-r--r--sh/bash/.bashrc167
1 files changed, 167 insertions, 0 deletions
diff --git a/sh/bash/.bashrc b/sh/bash/.bashrc
new file mode 100644
index 0000000..1315e51
--- /dev/null
+++ b/sh/bash/.bashrc
@@ -0,0 +1,167 @@
+#!/usr/bin/env bash
+#
+# bryson's bashrc
+#
+
+### aliases ###
+alias sudo="doas"
+
+# typos
+alias l='ls'
+alias sl='ls'
+
+# always run with args
+alias grep='grep --color=auto'
+alias fgrep='fgrep --color=auto'
+alias egrep='egrep --color=auto'
+alias ls='ls --color=auto'
+alias la='ls -a'
+alias ll='ls -lh'
+alias lla='ls -lha'
+alias cp='cp -iv'
+alias mv='mv -iv'
+alias rm='rm -vI'
+alias diff='diff --color=auto'
+alias g++='g++ --std=c++20'
+alias vim='vim -p'
+alias gs='gs -dNOSAFER'
+alias emacsclient='emacsclient -cn'
+
+# cd shortcuts
+alias ..='cd ..'
+alias ...='cd ../..'
+alias ....='cd ../../..'
+alias b='cd -'
+
+# copy an entire file
+alias copy='xclip -sel c <'
+
+# binary substitutions
+# alias ed='fzf --height=15 --layout=reverse | sed "s/^/\"/g;s/$/\"/g" | xargs -ro vim'
+
+# common combinations
+alias dj='python manage.py'
+alias smci='sudo make clean install'
+alias smi='sudo make install'
+alias lib='xrandr --output HDMI-A-0 --auto --output eDP --off && xset r rate 300 50 && feh --bg-fill ~/Pictures/Wallpapers/solid-gruvbox-2.png && xmodmap ~/.Xmodmap'
+alias laptop='xrandr --output HDMI-A-0 --off --output eDP --auto && feh --bg-fill ~/Pictures/Wallpapers/solid-gruvbox-2.png'
+alias mirror='xrandr --output HDMI-A-0 --auto && feh --bg-fill ~/Pictures/Wallpapers/solid-gruvbox-2.png && xmodmap ~/.Xmodmap'
+alias hgrep='history | grep'
+alias keys='xset r rate 300 50'
+alias gits='git status'
+alias mac="rm -rf __MACOSX/; rm \$(find . -name '.DS_Store')"
+
+# fixes
+alias fixwifi='sudo rc-service wpa_supplicant restart'
+alias fixaudio='pacmd set-default-sink alsa_output.usb-0c76_USB_PnP_Audio_Device-00.analog-stereo'
+alias fixjava='export _JAVA_AWT_WM_NONREPARENTING=1 && export AWT_TOOLKIT=MToolkit && wmname LG3D'
+alias fixkeb='xmodmap ~/.Xmodmap ; xset r rate 200 80 '
+
+# auto elevate
+alias mount='sudo mount'
+alias umount='sudo umount'
+
+# other garbage
+alias server="python3 /home/bryson/git/webserver/server.py"
+
+### colors ###
+# capitals are bold
+# 'l' is 'light'
+# 'd' is 'dark'
+black='\e[0;30m'
+BLACK='\e[1;30m'
+dgray='\e[0;90m'
+DGRAY='\e[1;90m'
+red='\e[0;31m'
+RED='\e[1;31m'
+lred='\e[0;91m'
+LRED='\e[1;91m'
+green='\e[0;32m'
+GREEN='\e[1;32m'
+lgreen='\e[0;92m'
+LGREEN='\e[1;92m'
+yellow='\e[0;33m'
+YELLOW='\e[1;33m'
+lyellow='\e[0;93m'
+LYELLOW='\e[1;93m'
+blue='\e[0;34m'
+BLUE='\e[1;34m'
+lblue='\e[0;94m'
+LBLUE='\e[1;94m'
+magenta='\e[0;35m'
+MAGENTA='\e[1;35m'
+lmagenta='\e[0;95m'
+LMAGENTA='\e[1;95m'
+cyan='\e[0;36m'
+CYAN='\e[1;36m'
+lcyan='\e[0;96m'
+LCYAN='\e[1;96m'
+lgray='\e[0;37m'
+LGRAY='\e[1;37m'
+NC='\e[0m' # No Color
+
+### functions galore! ###
+# upload item to webserver
+function upload() {
+ scp $1 paul:/home/PUBLIC/upload && echo https://brysonsteck.xyz/pub/upload/$(echo $1 | rev | cut -d '/' -f 1 | rev)
+}
+
+# return exit code of last program if not 0
+function exit_code() {
+ local ERROR="$?"
+ if [[ ERROR -ne 0 ]]; then
+ # echo -n ''"$dgray"'\]/\['"$RED"'\]'"$ERROR"'\['"$dgray"'\]\\'
+ echo -n '\['"$dgray"'\]<\['"$RED"'\]'"$ERROR"'\['"$dgray"'\]> '
+ # else
+ # # echo -n ''"$dgray"'\]/\['"$LBLUE"'\]'"$ERROR"'\['"$dgray"'\]\\'
+ # echo -n '\['"$RED"'\]'"$ERROR"' '
+ fi
+}
+
+# get current git branch and status
+# http://www.opinionatedprogrammer.com/2011/01/colorful-bash-prompt-reflecting-git-status/
+function _git_prompt() {
+ local git_status="`git status -unormal 2>&1`"
+ if ! [[ "$git_status" =~ Not\ a\ git\ repo ]]; then
+ if [[ "$git_status" =~ nothing\ to\ commit ]]; then
+ local ansi=""
+ local color="$lcyan"
+ elif [[ "$git_status" =~ nothing\ added\ to\ commit\ but\ untracked\ files\ present ]]; then
+ local ansi="!"
+ local color="$lred"
+ else
+ local ansi="*"
+ local color="$lyellow"
+ fi
+ if [[ "$git_status" =~ On\ branch\ ([^[:space:]]+) ]]; then
+ branch=${BASH_REMATCH[1]}
+ else
+ # Detached HEAD. (branch=HEAD is a faster alternative.)
+ branch="`git describe --all --contains --abbrev=4 HEAD 2> /dev/null ||
+ echo local`"
+ fi
+ if ! [[ "$branch" =~ local ]]; then
+ # echo -n '\['"$color"'\] ('"$ansi"''"$branch"') '
+ echo -n '\['"$dgray"'\](\['"$color"'\]'"$branch"''"$ansi"'\['"$dgray"'\])'
+ fi
+ fi
+}
+
+export -f exit_code
+export -f _git_prompt
+
+### shell prompt ###
+# bryson@hostname [/current/path] {12:00:00} <255> (master)
+# $
+export _PS1="\[$LCYAN\]\u\[$dgray\]@\[$LGREEN\]\h \[$dgray\][\[$YELLOW\]\w\[$dgray\]] {\[$LBLUE\]\@\[$dgray\]} "
+
+# define x titlebar
+TITLEBAR='\[\033]0;\u@\h \w\]'
+
+# apply prompt and functions
+# ignore titlebar if xterm, likely don't need a title anyway
+if [[ "$TERM" =~ xterm-256color ]]; then
+ export PROMPT_COMMAND='export PS1="${_PS1}$(exit_code)$(_git_prompt)\n\[$NC\]\$ ";echo'
+else
+ export PROMPT_COMMAND='export PS1="$TITLEBAR${_PS1}$(exit_code)$(_git_prompt)\n\[$LGRAY\]\$\[$NC\] ";echo'
+fi