This repository contains my personal dotfiles for my Linux setup. Configurations are managed using GNU Stow and user-facing packages are managed declaratively with Nix + home-manager.
-
Clone this repository:
git clone <repo-url> ~/Dotfiles
-
Run the bootstrap script (installs system packages, Nix, and home-manager):
cd ~/Dotfiles && bash dependencies.sh
-
Symlink dotfiles with stow:
stow nvim tmux zsh rofi i3 lazygit nix
Plugins are declared in yazi/.config/yazi/package.toml (version-pinned) and the source is not checked in. dependencies.sh runs ya pkg install automatically on a fresh setup, but if you add a plugin later, install it with:
ya pkg install # fetch any plugin listed in package.toml
ya pkg upgrade # update pinned revisionsUser-facing packages are declared in flake.nix and managed by home-manager. There are two profiles:
schrodlm(minimal) — editors, CLI tools, languages, launchersschrodlm-full— everything in minimal + desktop apps (obsidian, discord, vscode, spotify)
# Minimal (default)
home-manager switch --flake ~/Dotfiles#schrodlm
# Full (with desktop apps)
home-manager switch --flake ~/Dotfiles#schrodlm-fullAdd it to baseModules (for both profiles) or appPackages (full only) in flake.nix, then switch.
nix flake update ~/Dotfiles && home-manager switch --flake ~/Dotfiles#schrodlm- Nix garbage collection - Nix keeps old package versions in
/nix/store. Clean up periodically:nix-collect-garbage -d