this repo has no description
1# dotfiles
2
3nix flakes + home-manager. portable across mac and linux.
4
5## bootstrap
6
7```bash
8# 1. install nix (if not present)
9curl -L https://nixos.org/nix/install | sh
10
11# 2. clone (the repo path matters — nvim config uses mkOutOfStoreSymlink)
12git clone https://tangled.sh/@zzstoatzz/dotfiles ~/tangled.sh/@zzstoatzz/dotfiles
13cd ~/tangled.sh/@zzstoatzz/dotfiles
14
15# 3. apply (detects system automatically)
16SYSTEM=$(nix eval --raw nixpkgs#system)
17nix run home-manager -- switch --flake ".#nate@${SYSTEM}"
18
19# 4. set zsh as default shell
20chsh -s $(which zsh)
21```
22
23## what's included
24
25**shell**: zsh, oh-my-posh (zen theme), tmux, neovim (kickstart.nvim)
26**search/nav**: ripgrep, fd, fzf, jq, bat, eza, autojump
27**dev**: git, gh, curl, wget, tree, dust
28**languages**: uv (python), rustup (rust), go, node 22, deno, bun
29**terminal**: wezterm (linux only — on mac install via .dmg)
30**fonts**: fira code nerd font
31
32## how it works
33
34home-manager generates `~/.zshrc` and `~/.gitconfig` from nix declarations in
35`home.nix` — aliases, history, completions, git user/editor are all configured
36there. shell functions live in `config/zsh/utils` and get symlinked to `~/.utils`.
37
38neovim config uses `mkOutOfStoreSymlink` so `~/.config/nvim` points directly at
39this repo's `config/nvim/` — edits take effect immediately and lazy-lock.json
40stays writable.
41
42## layout
43
44```
45flake.nix — nix entry point
46home.nix — programs.zsh, programs.git, packages, file symlinks
47config/
48 zsh/utils — shell functions (gbre, git_exclude, ghistory, etc.)
49 nvim/ — kickstart.nvim config (mutable symlink)
50 tmux/ — tmux.conf (prefix: ctrl-a)
51 wezterm/ — wezterm.lua
52 ohmyposh/ — zen.toml prompt theme
53 atuin/ — shell history config
54bin/
55 disk-breakdown — disk usage visualizer (macOS)
56```
57
58## updating
59
60edit config in this repo, then:
61
62```bash
63home-manager switch --flake .
64```
65
66for changes to `config/nvim/` — no rebuild needed, it's a direct symlink.