mirror of
https://github.com/jessebot/dot_files.git
synced 2025-10-01 01:48:43 +00:00
91 lines
3.4 KiB
Bash
91 lines
3.4 KiB
Bash
# @jessebot's .bashrc: an ok BASH experience.
|
|
# ------------------------------- General ---------------------------------- #
|
|
|
|
# fixes "scp: Received message too long 169564991" error
|
|
# If not running interactively, don't do anything, no outputs
|
|
case $- in
|
|
*i*) ;;
|
|
*) return;;
|
|
esac
|
|
|
|
# I hate bells a lot
|
|
set bell-style none
|
|
|
|
# python version is subject to change, but really important for pathing
|
|
export PYTHON_VERSION="3.12"
|
|
|
|
# this just makes howdoi use colors
|
|
export HOWDOI_COLORIZE=1
|
|
|
|
# makes gpg prompt for passphrase in the terminal for git commit -S
|
|
export GPG_TTY=$(tty)
|
|
|
|
# source all the pathing exports including XDG Base Dir Spec env vars
|
|
. ~/.config/bash/path.sh
|
|
|
|
# history settings are in this file (this relies on path.sh being sourced)
|
|
. $XDG_CONFIG_HOME/bash/history.sh
|
|
|
|
# everything to do with things like less and editors is in here
|
|
. $XDG_CONFIG_HOME/bash/text_editing.sh
|
|
|
|
# aliases are all confined to this file, except kubernetes below
|
|
. $XDG_CONFIG_HOME/bash/alias.sh
|
|
|
|
# k8s aliases and configuration
|
|
. $XDG_CONFIG_HOME/bash/k8s.sh
|
|
|
|
# load additional bash completion for different commands
|
|
. $XDG_CONFIG_HOME/bash/completion.sh
|
|
|
|
# -------------------------------------------------------------------------- #
|
|
# Other Load on start #
|
|
# -------------------------------------------------------------------------- #
|
|
|
|
# include external rc files in ~/.config/bash/personal if they exist
|
|
personal_rc_file="$XDG_CONFIG_HOME/bash/personal/bashrc"
|
|
if [ -f $personal_rc_file ]; then
|
|
. $personal_rc_file
|
|
fi
|
|
|
|
# -------------------------------------------------------------------------- #
|
|
# BASH Prompt using POWERLINE #
|
|
# -------------------------------------------------------------------------- #
|
|
|
|
if [ -f "/.dockerenv" ]; then
|
|
# if we're in docker, this file should exist, so show a whale in powerline
|
|
export CURRENT_SHELL_LOCATION="🐳"
|
|
elif [ -n "$SSH_CLIENT" ]; then
|
|
# if $SSH_CLIENT is not empty, we're SSHed into something, so show a robot
|
|
export CURRENT_SHELL_LOCATION="🤖"
|
|
else
|
|
# if not in SSH or docker, then show a house :)
|
|
export CURRENT_SHELL_LOCATION="🏡"
|
|
fi
|
|
|
|
# launch powerline only if we're not in a neovim fterm floating window
|
|
if [ -z $FTERM_TUI ] ; then
|
|
# powerline - a fancy extensible prompt: https://powerline.readthedocs.io
|
|
if [ -f $pip_packages/powerline/bindings/bash/powerline.sh ]; then
|
|
powerline-daemon -q
|
|
POWERLINE_BASH_CONTINUATION=1
|
|
POWERLINE_BASH_SELECT=1
|
|
. $pip_packages/powerline/bindings/bash/powerline.sh
|
|
fi
|
|
fi
|
|
|
|
# -------------------------------------------------------------------------- #
|
|
# Personal MOTD using fastfetch #
|
|
# you can set $LOCALHOST_PRESET to a fastfetch preset you have locally in: #
|
|
# $XDG_DATA_HOME/fastfetch/presets/ #
|
|
# -------------------------------------------------------------------------- #
|
|
if [ ! -z $LOCALHOST_PRESET ] && [ -z $NVIM ]; then
|
|
alias fastfetch="fastfetch --load-config $XDG_DATA_HOME/fastfetch/presets/${LOCALHOST_PRESET}.jsonc"
|
|
fi
|
|
|
|
# don't print fastfetch in neovim or poetry shell by default, and don't use logo
|
|
if [ ! -z $NVIM ] || [ ! -z $POETRY_ACTIVE ] || [ ! -z $ZELLIJ ]; then
|
|
echo "Entering a poetry shell, so not printing fastfetch."
|
|
else
|
|
fastfetch
|
|
fi
|