diff options
author | Bryson Steck <me@brysonsteck.xyz> | 2024-04-09 18:29:39 -0600 |
---|---|---|
committer | Bryson Steck <me@brysonsteck.xyz> | 2024-04-09 18:29:39 -0600 |
commit | c6cc202ab95e6f199e63d59ea68d4bcb39940945 (patch) | |
tree | 5b1c17cfa3eeea20b401b6dcf7b303a1556ab39d /sh/bash/.bashrc | |
parent | c1e3c46afdcb455175f0bb18b606f61c864d008a (diff) | |
download | dotfiles-master.tar dotfiles-master.tar.gz dotfiles-master.tar.bz2 |
Diffstat (limited to 'sh/bash/.bashrc')
-rw-r--r-- | sh/bash/.bashrc | 167 |
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 |