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 under a single schrodlm configuration.
home-manager switch --flake ~/Dotfiles#schrodlmAdd it to home.packages in flake.nix, then switch.
nix flake update ~/Dotfiles && home-manager switch --flake ~/Dotfiles#schrodlmThese are deliberately not installed via Nix. Nix-packaged Electron apps expect /run/opengl-driver/ (NixOS-only) and fail to load GL on Debian with MESA-LOADER errors. dependencies.sh installs:
- VS Code via apt (Microsoft's repo)
- Obsidian via Flatpak (
md.obsidian.Obsidianfrom Flathub, user scope)
- Nix garbage collection - Nix keeps old package versions in
/nix/store. Clean up periodically:nix-collect-garbage -d