aditya@arch tty1 · aditya-verma.me
❯ youngcoder45 :~$ build f65f1c7

>_ Version your brain: dotfiles as infrastructure

Why config files belong in git, how I structure mine, and the niri/KDE split.

#dotfiles#git#linux#workflow

Your config files are software you wrote while it was cheap to write it. Most people treat them like a diary: read-only, private, and about to be lost. Treat them like infrastructure instead — versioned, documented, deployable.

Rule one: everything in git, be it a browser or not

If you’ve ever lost a .zshrc you spent a weekend tuning, you understand rule one. My dotfiles split into two repos:

~/dotfiles/niri      # no, this isn't literal — it's the spirit
  niri.nix          # compositor config
  waybar/           # status bar
  kanshi/           # monitor profiles
  fastfetch/        # the flexes

Rule two: no dotfile manager until you need one

Stow-less is the fastest setup — hardlink the whole dir into $HOME. One git clone on a fresh Arch box gets me 90% productive in minutes. Managers (symlink wrappers, declarative Nix) are for when the repo exceeds “I regret nothing”. Keep the moving parts few.

Rule three: comment the why

# fish: why is this here? kitty scrollback + fzf preview
set -gx FZF_DEFAULT_OPTS '--preview "bat --color=always --line-range=:80 {}"'

Future you does not remember the workaround. Write the why next to the what.

The niri/KDE split

  • niri is the daily driver — small config, Wayland-native, scrolling freak.
  • KDE Plasma is the fallback — big config, GUI panels, exists for compatibility days.

Same rule governs both: if a config is confusing, delete it and re-add only what you actually miss.