Configuration repository — XDG dotfiles plus a Nix flake user environment, applied with Qonfig

Dotfiles

Dotfiles

Version 1.00Source on GitHub

OVERVIEW

Qompass AI dotfiles (i.e. XDG `.config` files) for the Qompass AI development environment, where all configs follow the XDG convention `$XDG_CONFIG_HOME` (`~/.config`). The repo pairs a Qonfig/Dotbot-style `qonfig.yaml` link map with a flake-parts Nix flake that builds a `userEnvironment` package set.

HOW IT WORKS

  1. 1Run the quick start: `curl -fsSL https://raw.githubusercontent.com/qompassai/dotfiles/main/scripts/quickstart.sh | sh`.
  2. 2The script clones the repo to `$HOME/.dotfiles`, deleting any existing directory there first.
  3. 3It symlinks `.config/nix/nix.conf`, `.profile.d/67-nix.sh`, `home`, `.local`, and `flake.nix` into place, then installs Nix with that config if Nix is missing.
  4. 4It runs `nix flake update` inside the clone and drops into the detected shell via `nix develop --command "$USER_SHELL"`.
  5. 5Separately, `qonfig.yaml` declares the per-file links, cleanup, and setup shell steps that a Qonfig/Dotbot-style installer applies.
How it works, step by step — each step as the project's own documentation states it.

CONCEPTS

REPO FILES → LINK PLAN → $HOMEDOTFILES REPO.config/ — 800+ app dirsbashrc · zshrctmux · sesh · neovideDiver · zed · kitty (force)flake.nix alongsideQONFIG.YAML LINK PLANlink — 25 targetscreate parents · relink staleclean — ~ and ~/.configcreate — ~/Downloadsshell — submodule + ssh setup$HOME TARGETS~/.config/tmux/tmux.conf~/.config/diver~/.wezterm.lua~/.bashrc_user · ~/.zshrc_usermacOS-only links gated by if:NIX FLAKE — userEnvironmentbuildEnv package set per system (x86_64-linux full · aarch64-linux reduced) — quickstart: nix flake update, then nix developTARGETS LIVE UNDER $XDG_CONFIG_HOME (~/.config) BY CONVENTION
The dotfiles deployment flow: files in the repo are mapped by the qonfig.yaml link plan (25 link targets, with cleanup and setup steps) onto their $HOME destinations under the XDG convention, while the Nix flake's userEnvironment builds the tool set the quickstart drops you into.

CONFIGURATION

OptionDefaultWhat it does
defaults.link.createtrueCreate parent directories when linking
defaults.link.relinktrueOverwrite incorrect symlinks when linking
clean["~", ~/.config]Directories checked for dead symlinks
create[~/Downloads]Directory created during setup
link targets (25 entries)—Symlink map including `~/.bashrc_user: bashrc`, `~/.zshrc_user: zshrc`, `~/.config/tmux/tmux.conf`, `~/.config/sesh/sesh.toml: sesh.toml`, `~/.config/neovide/config.toml: neovide.toml`
link `force: true` entries—Forcibly linked targets: lazygit config, ghostty config, kitty configs, `~/.wezterm.lua`, `~/.config/diver` (path `Diver`), zed `settings.json` (path `zed.jsonc`), `~/.cursor/mcp.json` (path `mcpservers.json5`)
link `if: '[ "$(uname -s)" = "Darwin" ]'` entries—macOS-only links: aerospace, yabai, skhd configs
flake systemsx86_64-linux`, `aarch64-linuxSystems the flake builds for
packages.x86_64-linux.userEnvironmentlarge `pkgs.buildEnv` path listFull user environment (editors, shells, desktop, dev tools) for x86_64
packages.aarch64-linux.userEnvironment`git`, `neovim`, `python311` (name `qompass-user-environment`)Reduced user environment for aarch64
.config/ app directories800+ per-app directoriesOne config directory per application under `$XDG_CONFIG_HOME`, catalogued A–Z

CONTROLS

ActionControl
Install / quick start`curl -fsSL https://raw.githubusercontent.com/qompassai/dotfiles/main/scripts/quickstart.sh \
Update flake inputs`nix flake update` (run by the quickstart script in the clone)
Enter the environmentnix develop --command "$USER_SHELL"
Sync submodules (setup shell step)git submodule sync --recursive
Set up SSH files (setup shell step)`mkdir -p ~/.ssh && chmod 700 ~/.ssh` plus `known_hosts`/`authorized_keys` creation
Install pre-commit hook (setup shell step)cp pre-commit .git/hooks/pre-commit

NOT COVERED

- The README's embedded quick-start script differs slightly from `scripts/quickstart.sh` on disk (e.g. Nix profile paths); the on-disk script was treated as authoritative. - `qonfig.yaml` uses a top-level `create:` directive and per-link `if:` conditions; the sibling Qonfig tool's own plugins (`clean`, `link`, `shell`) do not document either — see the Qonfig pack. - No per-app settings were sampled beyond the `.config/README.md` catalogue; individual app config values are not covered.

REFERENCES

  1. XDG Base Directory SpecificationThe specification behind the repo's layout convention: configuration lives under $XDG_CONFIG_HOME (~/.config).
  2. Nix — Flakes (nix.dev concepts)The flake model behind the repo's userEnvironment package sets and the nix develop entry the quickstart uses.