# # ~/.bashrc # # If not running interactively, don't do anything [[ $- != *i* ]] && return alias ls='ls --color=auto' alias grep='grep --color=auto' PS1='[\u@\h \W]\$ ' export EDITOR=vim # include home binaries export PATH=$PATH:~/.bin # add git prompt # https://wiki.archlinux.org/title/Git#Git_prompt source /usr/share/git/completion/git-prompt.sh PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' # enable globstar shopt -s globstar # firewall alias alias fw="firewall-cmd" # use trash instead of rm alias rm='echo "use trash instead"; false' alias tm='trash-put' # open using handlr alias open='handlr open' # lock desktop alias lock='swaylock' # bluetooth alias bt='bluetui' # SSH Keychain eval $(keychain --eval --quiet id_ed25519) # fzf export FZF_DEFAULT_OPTS="--preview='bat --color=always {}'" # vim as man pager export MANPAGER="vim +MANPAGER --not-a-term -" # rclone ## logs export RCLONE_COMBINED=~/.logs/rclone/combined.log export RCLONE_DIFFER=~/.logs/rclone/differ.log export RCLONE_ERROR=~/.logs/rclone/error.log export RCLONE_MATCH=~/.logs/rclone/match.log export RCLONE_MISSING_ON_DST=~/.logs/rclone/missing-on-dst.log export RCLONE_MISSING_ON_SRC=~/.logs/rclone/missing-on-src.log ## settings ## specific to aws-like (Hetzner) ## see https://rclone.org/s3/#reducing-costs ## and https://rclone.org/s3/#increasing-performance export RCLONE_FAST_LIST=true export RCLONE_CHECKSUM=true export RCLONE_TRANSFERS=200 export RCLONE_CHECKERS=200 # list packages installed explicitly, sorted by date alias pacbd="cd && pacman -Qqe > pkglist.txt && expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort | sed 's/^.*\s//' - | rg -f pkglist.txt -x" # Query packages with fzf # adapted from: https://www.reddit.com/r/archlinux/comments/xyjolo/using_fzf_to_search_pacman_database_including/ alias packages="pacman -Ss \ | paste -d '' - - \ | sed -e 's \/ \t ' \ | fzf --multi --preview 'pacman -Siiv {2}' --tiebreak begin -e \ | rg '\t([^\s]+)' -o --trim \ | xargs -ro sudo pacman -S" # Query installed packages with fzf alias installed="pacman -Qqe \ | xargs -rI{} rg -m1 'installed {} ' /var/log/pacman.log \ | sort -r \ | fzf --multi --with-nth 1,4 --accept-nth 4 --preview \"rg '(upgraded|installed|removed) {4} ' /var/log/pacman.log\" \ | xargs -ro sudo pacman -Rns" # distrobox dev environment alias dev="distrobox enter dev" # direnv eval "$(direnv hook bash)" # zoxide eval "$(zoxide init bash)" # add container id to prompt when in a toolbox/distrobox container if [ -f /run/.toolboxenv ]; then PS1="($CONTAINER_ID) $PS1" fi # include dev bashrc when in `dev` distrobox if [ "$CONTAINER_ID" = "dev" ]; then source ~/.bashrc.d/dev.bashrc fi # for spawning new terminal in cwd # see https://codeberg.org/dnkl/foot/wiki#spawning-new-terminal-instances-in-the-current-working-directory osc7_cwd() { local strlen=${#PWD} local encoded="" local pos c o for (( pos=0; pos