🧈 ButterBash | Note |Todo | modular fun.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-26 21:30:32 -04:00
bash Fix alias collision, prune WM-specific aliases, and tidy shell config 2026-06-20 22:20:41 -04:00
.gitignore init for butterbash 2025-08-20 14:11:25 -04:00
bashrc.example Fix alias collision, prune WM-specific aliases, and tidy shell config 2026-06-20 22:20:41 -04:00
DOCUMENTATION.md Point all URLs at Butterforge (justaguy.dev) — repos, raw script fetches, apt endpoint, wikis, issues, badges 2026-07-26 21:11:21 +00:00
install.sh Fix alias collision, prune WM-specific aliases, and tidy shell config 2026-06-20 22:20:41 -04:00
LICENSE Add GPL-2.0 license 2026-02-01 17:59:06 -05:00
README.md update stale codeberg references 2026-07-26 21:30:32 -04:00

🧈 ButterBash

Made for Debian Bash Stars Forks Last Commit

A smooth, modular Bash configuration framework that makes your shell experience butter-smooth.

Features

  • Modular Design: Clean separation of concerns with individual files for aliases, functions, and configurations
  • FZF Integration: Fuzzy finding for files and processes
  • Git-Aware Prompt: Shows current branch in your prompt
  • Extensive Aliases: Productivity shortcuts for common tasks
  • Archive Extraction: Universal extract command for all archive types
  • System Functions: Quick system info, colored man pages, and more
  • Extension Ready: Works perfectly with ButterNotes for note-taking and todo management

📦 Installation

The easiest way to install ButterBash is through the ButterScripts optional installer:

# Clone and run butterscripts installer
git clone https://justaguy.dev/drew/butterscripts.git
cd butterscripts/setup
./optional_tools.sh
# Select option 1: ButterBash ⭐

ButterBash is featured as the top option in ButterScripts' optional tools, providing seamless integration with the broader ecosystem of development tools.

Direct Install

  1. Clone the repository:
git clone https://justaguy.dev/drew/butterbash.git
cd butterbash
  1. Run the install script:
./install.sh
  1. Reload your shell:
source ~/.bashrc

Important: ButterBash will backup your existing .bashrc and replace it with a modular configuration. This is the intended behavior for the full ButterBash experience.

🗂️ Structure

~/.config/bash/
├── aliases.bash        # Command shortcuts
├── prompt.bash         # Custom prompt with git branch
├── keybinds.bash       # Keyboard shortcuts
├── fzf.bash           # FZF configuration
├── zoxide.bash        # zoxide smarter-cd hook
└── functions/
    ├── system.bash    # System utilities
    └── utils.bash     # General utilities

🎯 Core Functions

Utility Functions

mkcd directory        # Create and enter directory
extract file.tar.gz   # Extract any archive type
backup file.txt       # Create timestamped backup
calc 2+2             # Quick calculations
sysinfo              # Display system information

⚙️ Configuration

Customization

Add your own customizations by creating files in ~/.config/bash/:

  1. Create a new module: ~/.config/bash/custom.bash
  2. It will be automatically loaded on next shell start

Local Overrides

For machine-specific settings, create ~/.bashrc.local:

# ~/.bashrc.local
export CUSTOM_VAR="value"
alias myalias="command"

# Add custom configurations here

Integration with Other Projects

ButterBash works seamlessly with other projects in the ButterScripts ecosystem:

  • ButterScripts - Comprehensive setup scripts for Debian systems
  • ButterNotes - Note-taking and todo management extension
  • Integrates with terminal emulators like WezTerm
  • Compatible with window managers (DWM, BSPWM, etc.)
  • Works alongside other development tools and configurations

Want Note-Taking and Todo Management?

ButterBash focuses on shell configuration. For productivity features like notes and todos, install ButterNotes:

git clone https://justaguy.dev/drew/butternotes.git
cd butternotes && ./install.sh

ButterNotes works perfectly alongside ButterBash and adds:

  • Intelligent note-taking with clipboard integration
  • Todo management with markdown checkboxes
  • Project organization with FZF
  • Mobile sync compatibility
  • Interactive terminal UI

🚀 Key Bindings

  • Ctrl+L: Clear screen
  • ↑/↓: Search command history
  • Ctrl+R: Reverse history search (with FZF if available)

📋 Requirements

  • Bash 4.0+
  • install.sh pulls in the tools the config uses: fzf, ripgrep, eza, zoxide.
    • fzf - Fuzzy finder
    • ripgrep - Fast grep alternative
    • eza or exa - Modern ls replacement
    • zoxide - Smarter cd (z, zi)
  • Optional clipboard integration (not pulled in automatically):
    • xclip (X11) / wl-clipboard (Wayland)

If you ever need to reinstall the core tools, there's a built-in helper:

install_tools  # reinstalls fzf and ripgrep

🤝 Contributing

Contributions are welcome! Please visit our Butterforge repository to:

For major changes, please open an issue first to discuss your ideas.

License

GPL-2.0 - See LICENSE for details.

Support

Buy me a coffee

Connect


Made with butter by JustAGuyLinux