# -*- shell-script-mode -*-
if [ -f ~/.wal_alias ]; then
. ~/.wal_alias
fi
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
source /usr/share/fzf/key-bindings.bash
source /usr/share/fzf/completion.bash
# Cargo config
[ -f ~/.cargo ] && source "$HOME/.cargo/env"
CAT_PATH=$(which cat --skip-alias)
if [ -f ~/.cache/wal/sequences ]; then
$CAT_PATH ~/.cache/wal/sequences
fi
BPYTOP_PATH=$(which bpytop 2> /dev/null)
BTOP_PATH=$(which btop)
if [ ! -z "$BPYTOP_PATH" ] && [ -z $BTOP_PATH ]; then
alias htop="bpytop -b \"cpu mem net proc\""
elif [ ! -z "$BTOP_PATH" ] && [ -z $BPYTOP_PATH ]; then
alias htop="btop"
elif [ ! -z "$BTOP_PATH" ] && [ ! -z $BPYTOP_PATH ]; then
alias htop="btop"
fi
EXA_PATH=$(which exa)
if [ ! -z "$EXA_PATH" ]; then
alias ls="$EXA_PATH"
alias ll="$EXA_PATH -lahg"
alias lg="$EXA_PATH -lahg --git"
fi
BAT_PATH=$(which bat)
if [ ! -z "$BAT_PATH" ]; then
export MANPAGER="$BAT_PATH --color never"
alias cat="$BAT_PATH --color never"
fi
# Platform agnostic aliases
export TMUX_PATH=$(which tmux --skip-alias)
alias tmuxn="$TMUX_PATH new -s $1"
alias tmuxa="$TMUX_PATH attach -t $1"
alias tmuxl="$TMUX_PATH ls"
alias tmuxq="echo $TMUX"
alias httpserver="python -m SimpleHTTPServer"
# Include .local/bin
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH
# Include roswell
if ! [[ "$PATH" =~ "$HOME/.roswell/bin" ]];
then
if [[ -d "$HOME/.roswell/bin" ]];
then
PATH="$HOME/.roswell/bin:$PATH"
fi
fi
# Stop myself from opening vim when I mean to open emacs on the term
vim()
{
if [[ "$(ps aux | grep -v grep | grep emacs)" ]];
then
# using anemic term/color/etc as it's faster in emacs
TERM=xterm-color emacsclient $1 &
export EDITOR="emacsclient -c"
elif [[ "$(ps aux | grep -v grep | grep kate)" ]];
then
kate $1
export EDITOR="kate"
elif [[ "$(ps aux | grep -v grep | grep code-oss)" ]];
then
code-oss $1
export EDITOR="code-oss"
else
VIM_PATH=$(which vim)
$VIM_PATH $1
export EDITOR=$VIM_PATH
fi
}
# HN Helper functions
# Pull up comments for number
export HN_PATH=$(which hn 2> /dev/null)
hnc() {
if [ ! -z "$HN_PATH" ]; then
hn view -c $1 | less -r
else
echo "hn not in path"
fi
}
export HIMALAYA_PATH=$(which himalaya 2> /dev/null)
if [ ! -z $HIMALAYA_PATH ]; then
. ~/Repos/dotfiles/himalaya/himalaya_shell_ui.sh
fi
if which docker > /dev/null; then
alias dpa="echo \"docker ps --all\" ; docker ps --all"
fi
# GPG Decrypt wrapper
export GPG_PATH=$(which gpg)
if [ ! -z $GPG_PATH ]; then
function encrypt() {
if [ -z $1 ]; then
echo "Must pass path to this function"
return 1
fi
gpg -c --armor --cipher-algo AES256 --no-symkey-cache --output $1.asc $1
}
function decrypt() {
if [ -z $1 ]; then
echo "Must pass path to this function"
return 1
fi
gpg --no-symkey-cache -d $1
}
fi
alias open-ssh="ps aux | awk '{if (\$11 ~ /ssh$/) { print substr(\$0, index(\$0,\$9)) }}'"
alias reload="source ~/.bashrc"
pb () {
curl -F "file=@-" http://chate.io:669
}
ckgit () {
if [ ! -z $1 ]; then
DIR=$1
else
DIR="$HOME/Repos"
fi
GIT_PATH=$(which git);
for dirp in $($EXA_PATH -d $DIR/*/); do
if [[ -d "$dirp/.git" ]]; then
RET=$($GIT_PATH -C $dirp status --porcelain)
if [[ ! -z "$RET" ]]; then
echo "* $dirp"
echo "$RET"
echo ""
fi
fi
done
}
# For use with emacs vterm
# See: https://github.com/akermu/emacs-libvterm
vterm_printf(){
if [ -n "$TMUX" ] && ([ "${TERM%%-*}" = "tmux" ] || [ "${TERM%%-*}" = "screen" ] ); then
# Tell tmux to pass the escape sequences through
printf "\ePtmux;\e\e]%s\007\e\\" "$1"
elif [ "${TERM%%-*}" = "screen" ]; then
# GNU screen (screen, screen-256color, screen-256color-bce)
printf "\eP\e]%s\007\e\\" "$1"
else
printf "\e]%s\e\\" "$1"
fi
}
if [[ "$INSIDE_EMACS" = 'vterm' ]]; then
function clear(){
vterm_printf "51;Evterm-clear-scrollback";
tput clear;
}
fi
alias spesktv='mpv http://chate.io:55555'
if [ -f "$HOME/.openai-key" ]; then
source "$HOME/.openai-key"
fi
# Case defines platform specific configs
# Platform agnostic configs above
case $(cat /etc/hostname) in
Simons-MacBook-Pro.local)
export PS1="\w λ > \[$(tput sgr0)\]"
# Mac aliases
alias shorten-ps1="PS1='λ > '"
alias default-ps1='PS1="\w λ > \[$(tput sgr0)\]"'
alias emacs="/Applications/Emacs.app/Contents/MacOS/Emacs"
# PATH setups
PATH='/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/swatson/.fzf/bin:/Users/swatson/Library/Python/3.8/bin'
default-ps1
clear
echo "Loaded MacM1 config"
;;
swatson-casana2)
export TERM=xterm-256color # This fixes some vim issues
export PS1="\[\033[36m\]\w\[\033[m\] λ "
# function to set terminal title
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$*\a\]"
PS1=${ORIG}${TITLE}
}
alias ssh-old="ssh -oKexAlgorithms=+diffie-hellman-group1-sha1"
alias sleep-open="sudo zzz && slock"
alias ssh-aws="ssh -i ~/.ssh/aws_key"
tmux_init () {
/home/swatson/Repos/dotfiles/tmux/tmux_init.sh
}
# Load non tracked aliases for work specific things
source ~/Work/secure_shell_aliases
# Since moving to KDE, my default shell session starts me in / ?
cd
echo "Loaded Void Work Config"
;;
void)
export PS1="\[\033[36m\]\w\[\033[m\] λ "
alias shorten-ps1="PS1='λ > '"
echo "Loaded Void config"
;;
m1nix)
export PS1="\[\033[36m\]\w\[\033[m\] λ "
alias shorten-ps1="PS1='λ > '"
echo "Loaded m1nix config"
esac