A modular, XDG Base Directory compliant Bash configuration framework with organized aliases, functions, and integrations.
- XDG Base Directory Compliant: Follows the XDG Base Directory Specification for clean, organized configuration
- Modular Architecture: Organized into logical categories (core, aliases, functions, integrations)
- Extensive Aliases: Quick shortcuts for navigation, system operations, networking, Git, and package managers
- Powerful Functions: 200+ shell functions for Git operations, file management, development workflows, and more
- Third-Party Integrations: Seamless integration with fzf, starship, thefuck, z.lua, and more
- Cross-Platform: Works on macOS and Linux
.
├── bash_profile # Main entry point
├── core/ # Core Bash configuration
│ ├── exports.bash # Environment variables
│ ├── options.bash # Shell options
│ ├── colors.bash # Color configuration
│ ├── autocomplete.bash # Completion settings
│ └── keybindings.bash # Custom key bindings
├── aliases/ # Command aliases by category
│ ├── navigation.bash # Directory navigation
│ ├── system.bash # System operations
│ ├── networking.bash # Network utilities
│ ├── git.bash # Git shortcuts
│ └── package-managers.bash # Package manager aliases
├── functions/ # Shell functions by category
│ ├── general.bash # General utilities (editor, updates, history)
│ ├── file-operations.bash # File management (compress, extract, datauri)
│ ├── utilities.bash # Additional utilities (transfer.sh, less, SSL, curl, lsof)
│ ├── piknik.bash # Clipboard operations
│ ├── git.bash # Git utilities (1680+ lines of Git magic)
│ ├── github.bash # GitHub operations (browser integration)
│ ├── asciinema.bash # Terminal recording
│ └── overmind.bash # Process management
├── integrations/ # Third-party tool integrations
│ ├── bash-sensible.bash # Sensible Bash defaults
│ ├── fzf.bash # Fuzzy finder
│ ├── z-lua.bash # Smart directory jumping
│ ├── starship.bash # Cross-shell prompt
│ ├── thefuck.bash # Command correction
│ ├── emoji-log.bash # Emoji-based Git commits
│ └── theme.bash # Terminal theming
├── themes/ # Color themes
│ └── dir_colors # LS_COLORS configuration (Nord theme)
└── docs/ # Documentation
├── INSTALLATION.md # Installation guide
├── FUNCTIONS.md # Function reference
└── ALIASES.md # Alias reference
-
Clone the repository:
git clone --recursive https://github.com/dotbrains/bash.git ~/.config/bash -
Link the profile:
ln -s ~/.config/bash/bash_profile ~/.bash_profile
-
Reload your shell:
source ~/.bash_profile
See docs/INSTALLATION.md for detailed installation instructions.
This configuration adheres to the XDG Base Directory Specification:
- Configuration:
${XDG_CONFIG_HOME:-$HOME/.config}/bash/ - Data:
${XDG_DATA_HOME:-$HOME/.local/share}/bash/ - Cache:
${XDG_CACHE_HOME:-$HOME/.cache}/bash/ - State (history):
${XDG_STATE_HOME:-$HOME/.local/state}/bash/
ginfo- Comprehensive repository overviewgld- Log details for feature branchgup- Interactive upstream review & pullgli- Interactive commit browsergh- GitHub repository browser
- Navigation:
..,...,.... - System:
ls(via eza),rm(via rip/trash) - Git:
acp(add, commit, push),lg(lazygit) - Package managers: Quick shortcuts for npm, yarn, brew, pip
- Starship: Beautiful, fast, minimal prompt
- fzf: Fuzzy finder for files and history
- z.lua: Smart directory jumping
- thefuck: Corrects command typos
- Emoji-log: Emoji-based Git commits
- Installation Guide - Detailed setup instructions
- Functions Reference - Complete function documentation
- Aliases Reference - All available aliases
- Bash 4.0+
- Git 2.x+
- Optional: fzf, starship, eza, zoxide, bat, thefuck
Contributions are welcome! Please feel free to submit pull requests or open issues.
MIT License - See LICENSE file for details
- Inspired by various dotfile configurations across the community
- Uses bash-sensible for sensible defaults
- Nord theme for colors via nordtheme/dircolors
- Emoji-log for semantic Git commits