Personal development environment configuration files managed with GNU Stow.
curl -fsSL https://raw.githubusercontent.com/fjordnode/dotfiles/main/bootstrap.sh | bashFor Termux on Android devices:
curl -fsSL https://raw.githubusercontent.com/fjordnode/dotfiles/main/bootstrap-android.sh | bashThis will:
- Install all required packages using
pkg(Termux package manager) - Set up Android storage access
- Clone this repository to
~/dotfiles - Create symlinks using GNU Stow
- Install oh-my-zsh with plugins (autosuggestions, syntax-highlighting, completions)
- Install Starship prompt
- Create zsh launcher script (since
chshis not available) - Configure Termux-specific optimizations
If you prefer to see what's happening:
# Download the bootstrap script
curl -fsSL https://raw.githubusercontent.com/fjordnode/dotfiles/main/bootstrap.sh > bootstrap.sh
# Review it
cat bootstrap.sh
# Run it
bash bootstrap.sh# Download the Termux bootstrap script
curl -fsSL https://raw.githubusercontent.com/fjordnode/dotfiles/main/bootstrap-android.sh > bootstrap-android.sh
# Review it
cat bootstrap-android.sh
# Run it
bash bootstrap-android.sh- zsh - Shell configuration with oh-my-zsh
- nvim - Neovim configuration with Lazy.nvim and plugins
- tmux - Terminal multiplexer configuration
- git - Git configuration and aliases
- bat - Syntax highlighting with Catppuccin themes
- starship - Cross-shell prompt
- shell - Additional shell utilities (rm-safety)
dotfiles/
├── zsh/
│ └── .zshrc
├── nvim/
│ └── .config/
│ └── nvim/
│ ├── init.lua
│ └── lua/
├── tmux/
│ └── .tmux.conf
├── git/
│ └── .gitconfig
├── starship/
│ └── .config/
│ └── starship.toml
└── shell/
└── .rm-safety.sh
After installation, your config files are symlinked from ~/dotfiles. To update configs:
- Edit the files in
~/dotfiles/[package]/ - Commit and push changes:
cd ~/dotfiles
git add .
git commit -m "Update configs"
git pushTo update your dotfiles on another machine:
cd ~/dotfiles
git pull
stow -R -t "$HOME" zsh tmux git nvim shell kitty starship ezaThe bootstrap script supports several environment variables:
# Skip full install (only core packages)
FULL_INSTALL=0 bash bootstrap.sh
# Skip oh-my-zsh installation
INSTALL_OMZ=0 bash bootstrap.sh
# Skip starship installation
INSTALL_STARSHIP=0 bash bootstrap.sh
# Skip setting zsh as default shell
SET_DEFAULT_SHELL=0 bash bootstrap.shTo add a new program's configuration:
- Create a new directory in
~/dotfiles - Mirror the expected structure from
$HOME - Add to stow command in bootstrap.sh
Example for adding vim config:
cd ~/dotfiles
mkdir -p vim
mv ~/.vimrc vim/.vimrc
stow -t "$HOME" vim
git add vim
git commit -m "Add vim configuration"If stow reports conflicts, remove the existing files first:
rm ~/.zshrc ~/.tmux.conf # etc
cd ~/dotfiles
stow -t "$HOME" zsh tmux git nvim shell kitty starship ezaIf zsh plugins aren't working:
git clone https://github.com/zsh-users/zsh-completions ~/.oh-my-zsh/custom/plugins/zsh-completions
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlightingIf Neovim plugins aren't installed:
nvim --headless "+Lazy! sync" +qa- Linux (Debian/Ubuntu, Fedora/RHEL, Arch, openSUSE)
- macOS (with Homebrew)
- Termux (Android)
- Docker containers
- Unraid (via Docker container)
MIT