Files
dotfiles/pi/.bash_profile
T

184 lines
5.5 KiB
Bash
Raw Normal View History

2023-09-09 16:09:18 -04:00
# ==============================================================================
2025-01-08 23:45:01 -05:00
# Auth: dodd
2025-01-04 23:24:15 -05:00
# File: .bashrc
# Revn: 01-04-2025 1.0
2023-09-09 16:09:18 -04:00
# Func: Define user-made aliases and functions to make using the terminal easier
#
2025-01-04 23:24:15 -05:00
# TODO: break down PS1 stuff
2023-09-09 16:09:18 -04:00
# color files in ls, and color different file differently
# pick a new color and prompt scheme
# ==============================================================================
# CHANGE LOG
# ------------------------------------------------------------------------------
2025-01-04 23:24:15 -05:00
# 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
2023-09-09 16:09:18 -04:00
#
# ==============================================================================
2025-01-04 23:24:15 -05:00
# If not running interactively, don't do anything
[[ $- == *i* ]] || return
2023-09-09 16:09:18 -04:00
# User specific aliases and functions
## Aliases
### Shows everything in detail, except . and ..
alias ll="ls -AFGhl"
alias l="ls -AFGhl"
2025-01-04 23:24:15 -05:00
alias lr="ls -AFGhlR"
2023-09-09 16:09:18 -04:00
### Go home
alias home="cd ~"
2025-01-04 23:24:15 -05:00
### TDM stuff
alias todo="~/bin/todo"
alias mark="~/bin/todo mark"
alias delete="~/bin/todo delete"
alias show="~/bin/todo show"
2023-09-09 16:09:18 -04:00
2025-01-04 23:24:15 -05:00
### MOTD stuff
alias ekho="~/bin/ekho-cli-sen"
2023-09-09 16:09:18 -04:00
2025-01-04 23:24:15 -05:00
### vim default to tabs
alias vim="vim -p"
2023-09-09 16:09:18 -04:00
## 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 -> '"
2025-01-04 23:24:15 -05:00
#export PROMPT_COMMAND="export PS1='\W -> '"
2023-09-09 16:09:18 -04:00
#export LSCOLORS=exfxcxdxbxegabagacad
2025-01-04 23:24:15 -05:00
export PATH=$PATH:/usr/local/go/bin
2023-09-09 16:09:18 -04:00
2025-01-04 23:24:15 -05:00
. "$HOME/.cargo/env"
2023-09-09 16:09:18 -04:00
2025-01-04 23:24:15 -05:00
# 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