From dada2f255daaa2fb493ec8c7d47e2a8123aea494 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 26 Jan 2026 17:36:38 -0600 Subject: refactor(dotfiles): rename system/ to common/ and remove unused configs Rename dotfiles/system to dotfiles/common for clarity - indicates shared dotfiles used across all desktop environments (DWM, Hyprland). Removed config directories for uninstalled applications: - ghostty (using different terminal) - lf (using ranger instead) - mopidy (using mpd instead) - nitrogen (X11-only, obsolete for Wayland) - pychess (not installed) - JetBrains (not installed via archsetup) - youtube-dl (using yt-dlp with different config location) Kept audacious config for potential future use. Updated all references in archsetup, CLAUDE.md, todo.org, and validation.sh. Co-Authored-By: Claude Opus 4.5 --- dotfiles/common/.bashrc | 76 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 dotfiles/common/.bashrc (limited to 'dotfiles/common/.bashrc') diff --git a/dotfiles/common/.bashrc b/dotfiles/common/.bashrc new file mode 100644 index 0000000..b2177d9 --- /dev/null +++ b/dotfiles/common/.bashrc @@ -0,0 +1,76 @@ +#!/bin/bash +# .bashrc +# Craig Jennings +# +# Bash-specific interactive shell settings. +# Aliases, functions, prompt, completions, shell options. + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# ============================================================================= +# Environment Variables (from .profile) +# ============================================================================= +# Source .profile for env vars (needed for non-login interactive shells) +[ -f "$HOME/.profile" ] && . "$HOME/.profile" + +# ============================================================================= +# Shell Options +# ============================================================================= +shopt -s histappend # append to history file, don't overwrite +shopt -s checkwinsize # update LINES and COLUMNS after each command +shopt -s autocd # cd to directory by typing its name +shopt -s cdspell # correct minor spelling errors in cd +shopt -s dirspell # correct spelling errors during tab-completion + +# ============================================================================= +# History +# ============================================================================= +HISTCONTROL=ignoreboth # ignore duplicates and lines starting with space +HISTSIZE=100000 +HISTFILESIZE=10000000 +HISTIGNORE="ls:ll:cd:pwd:bg:fg:history:exit" +PROMPT_COMMAND="history -a; history -n" # append and reload after each command + +# ============================================================================= +# Prompt +# ============================================================================= +PS1='[\d, \t] \u@\H:\w \n$ ' + +# ============================================================================= +# Completions +# ============================================================================= +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi + +# ============================================================================= +# Source modular bash configs from .bashrc.d/ +# ============================================================================= +if [ -d "$HOME/.bashrc.d" ]; then + for file in "$HOME/.bashrc.d"/*.sh; do + [ -r "$file" ] && . "$file" + done + unset file +fi + +# ============================================================================= +# Tool-specific initialization +# ============================================================================= +# FZF +[ -f "$HOME/.fzf.bash" ] && . "$HOME/.fzf.bash" + +# Deno +[ -f "$HOME/.deno/env" ] && . "$HOME/.deno/env" +[ -f "$HOME/.local/share/bash-completion/completions/deno.bash" ] && \ + . "$HOME/.local/share/bash-completion/completions/deno.bash" + +# Zoxide (smart cd) +command -v zoxide >/dev/null 2>&1 && eval "$(zoxide init bash)" -- cgit v1.2.3