My custom setup for bash, tmux, Fastfetch, and Starship using GNU Stow.
git clone <repo-url> ~/dotfiles-repo
cd ~/dotfiles-repo
./setup.shThe script will:
- Install missing packages: stow, fzf, tmux, fastfetch, starship, zoxide.
- fastfetch → installed via
.deb(apt-compatible) - starship → installed via curl (binary to
~/.local/bin) - zoxide → installed via curl (binary to
~/.local/bin)
- fastfetch → installed via
- Backup existing dotfiles (
.bashrc,.tmux.conf,Fastfetch&Starshipconfigs). - Symlink dotfiles into your home directory via GNU Stow.
- Adds Fastfetch ASCII art to
~/ascii. - Update your
.bashrcwith:PATH="$HOME/.local/bin:$PATH"so local binaries are picked up- Initialization of Starship + Zoxide
- Conditional Fastfetch + tmux auto-start
- Changed default prefix key from
Ctrl+bto`(backtick). - Mouse support enabled for sanity.
- Scrollback increased to 10,000 lines (default 2,000).
- Vim key bindings enabled in scrollmode
- Pane borders customized (cool looking).
- 1-based indexing for windows and panes (default starts at 0).
- Minimalist status bar (cool looking).
To completely revert changes:
./undo.shThe script will:
- Remove symlinks created by Stow.
- Restore backed-up configs (
.bashrc,.tmux.conf,Starship&Fastfetchconfigs). - Uninstall packages (unless you keep them):
- Removes
fastfetch,tmux, andstowvia apt remove --purge. - Removes starship binary from
~/.local/bin. - Removes zoxide binary from
~/.local/binand its manpages if present.
- Removes
- Restart your shell (
exec bash) so the clean.bashrcis loaded immediately.
If you only want to undo the symlinks and restore backups but keep installed packages, run:
./undo.sh --keep-installed-packages
# or the shorter alias
./undo.sh --keep-pkgsThis will:
- Restore backups and remove symlinks.
- Skip uninstalling apt packages, Starship, and Zoxide.
- Still restart your shell for a clean environment.
- Starship and Zoxide are installed locally (
~/.local/bin). If you want system-wide install, you can adjust the setup script. - If you run into
stowwarnings like:it usually means Stow is crossing into Windows-mounted directories under WSL. This can be safely ignored if your dotfiles are working as expected.BUG in find_stowed_path? Absolute/relative mismatch ...