Personal dotfiles for a Full-Stack AI Developer setup.
| Directory | Description |
|---|---|
| nvim/ | Neovim config with AI integration (Avante, Codeium) |
| starship/ | Starship prompt with 14 theme palettes |
| ble/ | ble.sh - Bash Line Editor with transient prompts |
| global-databases/ | Docker-based development databases |
| git/ | Git config with Delta pager and useful aliases |
| ssh/ | SSH config example (manual setup) |
git clone https://github.com/ki11e6/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.shThe installer works on fresh systems (creates ~/.bashrc if missing) and will:
- Install and configure ble.sh (Bash Line Editor)
- Set up Starship prompt with custom themes
- Configure Neovim with LazyVim and AI plugins
- Optionally install Atuin for shell history sync
- Neovim 0.10+ - Modern text editor
- Starship - Cross-shell prompt
- Nerd Font - For icons (JetBrainsMono, FiraCode, or Hack)
- ripgrep - For search in Neovim
- Docker - For global databases
- Atuin - Shell history sync (offered during install)
- fzf - Fuzzy finder (Ctrl+T, Alt+C)
./install.sh [OPTIONS]| Option | Description |
|---|---|
| (no options) | Fresh install with interactive prompts |
-u, --update |
Update dotfiles from remote and re-link |
-f, --force |
Force overwrite without prompts |
--backup |
Backup current configs before installing |
--restore FILE |
Restore configs from a backup archive |
--uninstall |
Remove all symlinks and undo config changes |
--check |
Verify dependencies, symlinks, and configurations |
--update-plugins |
Update Neovim plugins via Lazy.nvim |
-h, --help |
Show help message |
# Fresh install (interactive)
./install.sh
# Backup configs, then install
./install.sh --backup
# Force install without prompts
./install.sh -f
# Verify installation health
./install.sh --check
# Remove all dotfiles configs
./install.sh --uninstall
# Restore from backup
./install.sh --restore backups/dotfiles-backup-20240115.tar.gz
# Update from remote
./install.sh --update
# Update Neovim plugins
./install.sh --update-pluginsThe Neovim config includes:
- AI Integration: Avante.nvim (Claude, DeepSeek) + Codeium completions
- Modern UI: Custom dashboard, transparent background, Snacks.nvim
- Productivity: oil.nvim file manager, mini.surround, extended picker
- LSP: Enhanced keybindings, fidget.nvim progress, inlay hints
See nvim/README.md for full documentation.
The ble/ module provides:
- Transient Prompt - Old prompts collapse to minimal form
- Syntax Highlighting - Commands colored as you type
- Auto-suggestions - Ghost text from history
- Abbreviations - Type
gst+ space →git status - Atuin Integration - Encrypted shell history sync (optional)
See ble/README.md for full documentation.
| Key | Action |
|---|---|
Ctrl+R |
Search history (Atuin if installed, fzf fallback) |
Ctrl+T |
Fuzzy file finder (fzf) |
Alt+C |
Fuzzy cd into directory (fzf) |
Creates a timestamped archive of your current configs:
./install.sh --backupBacks up: ~/.bashrc, ~/.blerc, ~/.gdbinit, ~/.config/starship.toml, ~/.config/nvim/
Backups are stored in backups/ (git-ignored).
./install.sh --restore backups/dotfiles-backup-20240115.tar.gzAutomatically creates a safety backup before restoring.
Cleanly removes all dotfiles:
./install.sh --uninstallThis will:
- Remove all symlinks created by the installer
- Remove ble.sh, Starship, and Atuin config blocks from
.bashrc - Optionally remove installed binaries (ble.sh, Atuin)
Verify your installation:
./install.sh --checkChecks:
- Required dependencies (nvim, starship, ripgrep)
- Optional dependencies (docker, fzf, atuin)
- Symlink integrity
- Configuration files
The installer handles fresh systems automatically. If issues persist:
# Ensure you're not running as root
./install.sh # NOT: sudo ./install.sh
# Check for errors
./install.sh --check- Ensure a Nerd Font is installed and selected in your terminal
- Restart your terminal after installation
- Run
./install.sh --checkto verify Starship is installed
Check your ~/.bashrc has these lines:
# Near TOP
[[ $- == *i* ]] && source ~/.local/share/blesh/ble.sh --noattach
# At BOTTOM
[[ ! ${BLE_VERSION-} ]] || ble-attachMIT