184 lines
5.5 KiB
Bash
184 lines
5.5 KiB
Bash
# ==============================================================================
|
|
# Auth: dodd
|
|
# File: .bashrc
|
|
# Revn: 01-04-2025 1.0
|
|
# Func: Define user-made aliases and functions to make using the terminal easier
|
|
#
|
|
# TODO: break down PS1 stuff
|
|
# color files in ls, and color different file differently
|
|
# pick a new color and prompt scheme
|
|
# ==============================================================================
|
|
# CHANGE LOG
|
|
# ------------------------------------------------------------------------------
|
|
# 07-12-2023: init
|
|
# cleaned it up a little
|
|
# 08-24-2023: updated some PS1 stuff, added documentation
|
|
# 08-30-2023: added link to color resource
|
|
# 05-16-2024: updated exe name for ekho, changed call
|
|
# 06-07-2024: added "if not running interactively" line to make scp
|
|
# work
|
|
# 06-09-2024: updated ekho exe to ekho-cli-sen
|
|
#*01-04-2025: added vim -p alias
|
|
#
|
|
# ==============================================================================
|
|
|
|
# If not running interactively, don't do anything
|
|
[[ $- == *i* ]] || return
|
|
|
|
# User specific aliases and functions
|
|
## Aliases
|
|
|
|
### Shows everything in detail, except . and ..
|
|
alias ll="ls -AFGhl"
|
|
alias l="ls -AFGhl"
|
|
alias lr="ls -AFGhlR"
|
|
|
|
### Go home
|
|
alias home="cd ~"
|
|
|
|
### TDM stuff
|
|
alias todo="~/bin/todo"
|
|
alias mark="~/bin/todo mark"
|
|
alias delete="~/bin/todo delete"
|
|
alias show="~/bin/todo show"
|
|
|
|
### MOTD stuff
|
|
alias ekho="~/bin/ekho-cli-sen"
|
|
|
|
### vim default to tabs
|
|
alias vim="vim -p"
|
|
|
|
## Aliases
|
|
|
|
## Exports
|
|
|
|
# Holy shit, export PS1 kept failing, so I had to make it reload every
|
|
# time a command is run. Hacky and probably really slow, but it works
|
|
# PROMPT_COMMAND is a command run before it prints the prompt
|
|
# export PS1 is the command prompt, won't run in this file, only runs
|
|
# in actual terminal, or here apparently
|
|
# \e[0;31m is red
|
|
# \W is the current folder
|
|
# \e[0;34m is blue
|
|
# ' -> ' is a space and then an arrow, and then a space
|
|
# \e0;31m is red again
|
|
# \e[m is no color
|
|
#export PROMPT_COMMAND="export PS1='\[\e[0;32m\]\W\[\e[1;31m\] -> \[\e[0;32m\]'"
|
|
#export PROMPT_COMMAND="export PS1='\e[0;31m$(parse_git_branch) \e[m\W -> '"
|
|
#export PROMPT_COMMAND="export PS1='\W -> '"
|
|
#export LSCOLORS=exfxcxdxbxegabagacad
|
|
export PATH=$PATH:/usr/local/go/bin
|
|
|
|
. "$HOME/.cargo/env"
|
|
|
|
|
|
|
|
# set variable identifying the chroot you work in (used in the prompt below)
|
|
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
|
debian_chroot=$(cat /etc/debian_chroot)
|
|
fi
|
|
|
|
# set a fancy prompt (non-color, unless we know we "want" color)
|
|
case "$TERM" in
|
|
xterm-color) color_prompt=yes;;
|
|
esac
|
|
|
|
# uncomment for a colored prompt, if the terminal has the capability; turned
|
|
# off by default to not distract the user: the focus in a terminal window
|
|
# should be on the output of commands, not on the prompt
|
|
force_color_prompt=yes
|
|
|
|
if [ -n "$force_color_prompt" ]; then
|
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
|
# We have color support; assume it's compliant with Ecma-48
|
|
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
|
# a case would tend to support setf rather than setaf.)
|
|
color_prompt=yes
|
|
else
|
|
color_prompt=
|
|
fi
|
|
fi
|
|
|
|
#TODO come back and break each of these down
|
|
if [ "$color_prompt" = yes ]; then
|
|
# PS1 documentation
|
|
# https://misc.flogisoft.com/bash/tip_colors_and_formatting
|
|
|
|
# color resource - https://misc.flogisoft.com/bash/tip_colors_and_formatting
|
|
e="\e" # escape character
|
|
# background types
|
|
rst="[0m"
|
|
bold="[1m"
|
|
ul="[4m"
|
|
blink="[5m"
|
|
# colors
|
|
red="[31m"
|
|
green="[32m"
|
|
yellow="[33m"
|
|
blue="[34m"
|
|
magenta="[35m"
|
|
cyan="[36m"
|
|
lred="[91m"
|
|
lgreen="[92m"
|
|
lblue="[94m"
|
|
lmag="[95m"
|
|
lcyan="[96m"
|
|
white="[97m"
|
|
# background colors
|
|
bred="[40m"
|
|
bgreen="[42m"
|
|
bblue="[44m"
|
|
|
|
# use different PS1 for each user, while maintaining one bashfile
|
|
if [ "${USER}" = "venom" ]; then
|
|
# venom gets diamond dogs
|
|
#PS1='\[\033[01;34m\]DIAMOND DOGS\[\033[00m\]:\[\033[01;32m\]\W\[\033[00m\] ♢ '
|
|
PS1="$e$blue""DIAMOND"" "DOGS"$e$rst":"$e$green""\W""$e$rst ♢ "
|
|
# kaz might get it too
|
|
elif [ "${USER}" = "ocelot" ]; then
|
|
# pi/ocelot gets OUTER-HEAVEN
|
|
# this makes some sense for ocelot, but itd make more sense
|
|
# for venom or kaz. But still
|
|
# or something
|
|
#PS1='\[\033[01;32m\]\h\[\033[00m\]/\[\033[01;37m\]\[\033[07;37m\]XOF\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\] ⇌ '
|
|
PS1="$e$bold$e$green""\h""$e$rst"::"$e$blue""\W""$e$rst ⇌ "
|
|
else
|
|
# use the standard prompt if we don't know the user
|
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
|
fi
|
|
else
|
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
|
fi
|
|
unset color_prompt force_color_prompt
|
|
|
|
# If this is an xterm set the title to user@host:dir
|
|
case "$TERM" in
|
|
xterm*|rxvt*)
|
|
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\h: \w\a\]$PS1"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
|
|
# enable color support of ls and also add handy aliases
|
|
if [ -x /usr/bin/dircolors ]; then
|
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
|
alias ls='ls --color=auto'
|
|
alias dir='dir --color=auto'
|
|
#alias vdir='vdir --color=auto'
|
|
|
|
alias grep='grep --color=auto'
|
|
alias fgrep='fgrep --color=auto'
|
|
alias egrep='egrep --color=auto'
|
|
fi
|
|
|
|
# colored GCC warnings and errors
|
|
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
|
|
|
# run quick and dirty program to flash an LED
|
|
~/bin/boot
|
|
|
|
# call motd
|
|
#~/bin/ekho-cli-sen
|
|
~/bin/client.o
|