Personal dotfiles managed with GNU Stow.
This repository contains configuration files for:
- Shell: Zsh with custom aliases and completions
- Prompt: Starship
- Editor: Zed (keymap configuration)
- Fonts: Comic Code Ligatures, ZedMono Nerd Font
- Tools: zoxide, eza, fzf, fnm (Fast Node Manager), kubectl, lazygit, opencode, pnpm, nvim
Ensure you have the following installed:
- zsh (
sudo apt install zsh)
# macOS (using Homebrew)
brew install stow zoxide eza fzf fnm lazygit
# Starship prompt
curl -sS https://starship.rs/install.sh | shThe shell configuration loads Cargo (~/.cargo/env) and Railway (~/.railway/env) environment files only when they exist. Install either tool when needed; their absence will not produce shell startup errors.
For starting remote OpenCode tasks from Linear desktop, see Linear to remote OpenCode.
# Clone the repository
git clone https://github.com/leetdavid/dotfiles
cd ~/dotfiles
# Use stow to symlink dotfiles
stow .To update dotfiles after making changes:
cd ~/dotfiles
stow -R .To add a new configuration file to be managed by stow:
- Create the file in the repository in the same relative location as it would be in your home directory (e.g.,
nvim/.config/nvim/init.luafor~/.config/nvim/init.lua) - Ensure the parent directory structure mirrors your home directory
- Run
stow -R .to recreate all symlinks
To stop managing a file with stow but keep the actual file in place:
# Unstow a specific package (e.g., "nvim")
stow -D nvim
# The file will remain at its original location (e.g., ~/.config/nvim/init.lua)
# but will no longer be symlinked to the dotfiles repo
# If you want to restore management later, re-stow the package
stow nvimNote: After unstowing, changes to the file in ~ will no longer be reflected in the dotfiles repository.