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

Dotfiles
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
- 1Run the quick start: `curl -fsSL https://raw.githubusercontent.com/qompassai/dotfiles/main/scripts/quickstart.sh | sh`.
- 2The script clones the repo to `$HOME/.dotfiles`, deleting any existing directory there first.
- 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.
- 4It runs `nix flake update` inside the clone and drops into the detected shell via `nix develop --command "$USER_SHELL"`.
- 5Separately, `qonfig.yaml` declares the per-file links, cleanup, and setup shell steps that a Qonfig/Dotbot-style installer applies.
CONCEPTS
CONFIGURATION
| Option | Default | What it does |
|---|---|---|
defaults.link.create | true | Create parent directories when linking |
defaults.link.relink | true | Overwrite 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 systems | x86_64-linux`, `aarch64-linux | Systems the flake builds for |
packages.x86_64-linux.userEnvironment | large `pkgs.buildEnv` path list | Full 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 directories | 800+ per-app directories | One config directory per application under `$XDG_CONFIG_HOME`, catalogued A–Z |
CONTROLS
| Action | Control |
|---|---|
| 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 environment | nix 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
- XDG Base Directory SpecificationThe specification behind the repo's layout convention: configuration lives under $XDG_CONFIG_HOME (~/.config).
- Nix — Flakes (nix.dev concepts)The flake model behind the repo's userEnvironment package sets and the nix develop entry the quickstart uses.