UNPKG

@sebastienrousseau/dotfiles

Version:

The Trusted Shell Platform — Universal dotfiles managed by Chezmoi. Features Bash & Zsh for macOS, Linux & WSL. Rust modern tooling & enterprise-grade security.

266 lines (205 loc) 7.07 kB
--- render_with_liquid: false --- {% raw %} # Reference: Configuration Files Every config file read or written by `.dotfiles`, with its schema and purpose. ## Source Repository | File | Purpose | |:---|:---| | `~/.dotfiles/.chezmoidata.toml` | Global defaults: theme, profile, version, features | | `~/.dotfiles/.chezmoidata/hardware.toml` | Machine presets (MacBook T2, Surface Pro, etc.) | | `~/.dotfiles/.chezmoidata/themes.toml` | **Generated** theme palettes — do not edit | | `~/.dotfiles/.chezmoidata/keybinds.toml` | Modifier hierarchy matrix | | `~/.dotfiles/mise.toml` | Pinned runtime versions for the dotfiles repo | | `~/.dotfiles/.chezmoiignore` | Paths excluded from `chezmoi apply` | | `~/.dotfiles/.chezmoitemplates/` | Reusable template partials | ## User-Owned Configuration | File | Purpose | Git-tracked? | |:---|:---|:---:| | `~/.config/chezmoi/chezmoi.toml` | Per-host overrides (machine, theme, shell) | No | | `~/.config/age/keys.txt` | Age private key for decryption | No | | `~/.config/mise/config.toml` | User runtime preferences (managed by this repo) | Via chezmoi | | `~/.config/dotfiles/fleet.toml` | Fleet host list (optional) | No | | `~/.ssh/allowed_signers` | SSH public keys trusted for commit verification | Via chezmoi (template) | ## `.chezmoidata.toml` Schema ```toml # Version — bumped by version-sync.sh at release time dotfiles_version = "0.2.503" # Machine preset — override in ~/.config/chezmoi/chezmoi.toml per host machine = "" # Active theme — see `dot theme list` theme = "tahoe-dark" # Terminal defaults terminal_font_family = "JetBrainsMono Nerd Font" terminal_font_size = 12 default_shell = "fish" # fish | zsh | nu # Git identity (prompt-provided via chezmoi init) name = "" email = "" # Active profile profile = "laptop" # desktop | laptop | server | codespace # Feature flags (see 05-feature-flags.md) [features] dms = false linux_desktop = false niri = false waybar = false # Profiles (named collections of overrides) [profiles.desktop] # ... [profiles.laptop] # ... ``` ## `.chezmoidata/hardware.toml` Schema ```toml [hardware.<preset-name>] display_scale = 1.0 | 1.25 | 1.5 | 1.75 | 2.0 kbd_layout = "qwerty" | "colemak-dh" | "dvorak" modifier_mode = "standard" | "left-cmd-control" | "fn-swap" perf_profile = "desktop" | "laptop" | "low-power" wm = "aerospace" | "niri" | "gnome" | "kde" | "none" [hardware.<preset-name>.features] # Per-preset feature overrides (merged on top of .chezmoidata.toml features) <flag> = <bool> ``` ## `.chezmoidata/themes.toml` Schema **Generated by `dot theme rebuild` — do not edit manually.** ```toml [themes.<name>] mode = "dark" | "light" family = "<family-name>" macos_accent = -1 .. 6 # -1=Graphite, 0=Red, 1=Orange, 2=Yellow, 3=Green, 4=Blue, 5=Purple, 6=Pink wallpaper = "/absolute/path/to/wallpaper.heic" source = "custom" | "system" [themes.<name>.term] bg, fg, cursor, cursor_text, sel_bg, sel_fg # hex RGB c0 .. c15 # 16 ANSI colors [themes.<name>.ui] accent, accent_text # WCAG AAA enforced (7:1) error, warning, success, info panel # 1.03-2.0 contrast vs bg border # 1.08-3.5 contrast vs bg [themes.<name>.app] nvim, nvim_style, lualine gtk_theme, gtk_icon, gnome_shell, gnome_gtk vscode, vscode_dark, vscode_light cat_wallpaper starship_palette ``` See [Theme Engine concept](../01-concepts/03-theme-engine.md) for how values are derived. ## `~/.config/chezmoi/chezmoi.toml` (Per-Host) ```toml sourceDir = "/Users/you/.dotfiles" [data] machine = "surface-pro" # selects preset from hardware.toml theme = "dome-dark" # overrides .chezmoidata.toml default default_shell = "fish" terminal_font_size = 11 email = "you@example.com" name = "Your Name" ``` Fields here override same-named fields in `.chezmoidata.toml` at render time. ## `~/.dotfiles/mise.toml` (Pinned Versions) Strict versions for testing the repo itself (separate from the user's own mise config): ```toml [tools] chezmoi = "2.47.1" pandoc = "3.1.8" shellcheck = "0.10.0" shfmt = "3.8.0" # ... [env] # Repo-level env vars ``` ## `~/.config/mise/config.toml` (User) Managed by this repo via chezmoi. Lists all CLI tools + language runtimes: ```toml [settings] auto_install = true activate_aggressive = true [tools] node = ["lts", "24", "25"] python = ["3.12", "3.11"] go = "latest" rust = "latest" # ... 60+ tools [env] MISE_EXPERIMENTAL = "1" GITHUB_TOKEN = "{{exec(command='gh auth token')}}" GOCACHE = "/tmp/builds/go-cache" PIP_CACHE_DIR = "/tmp/builds/pip-cache" UV_CACHE_DIR = "/tmp/builds/uv-cache" ZIG_LOCAL_CACHE_DIR = "/tmp/builds/zig-cache" ZIG_GLOBAL_CACHE_DIR = "/tmp/builds/zig-global-cache" ``` ## `~/.cargo/config.toml` (Managed) ```toml [build] jobs = -1 incremental = true target-dir = "/tmp/builds/cargo" ``` ## `~/.ssh/allowed_signers` Template: `dot_ssh/allowed_signers.tmpl` Lists SSH public keys authorized to sign commits in the repository: ``` you@example.com ssh-ed25519 AAAAC3N... teammate@example.com ssh-ed25519 AAAAC3N... ``` ## `dot_config/dotfiles/mcp.json` MCP policy and registry. See [MCP Policy reference](../../security/MCP_POLICY.md). ```json { "policy_version": "2026-01", "allowed_servers": ["fs", "shell", "github"], "denied_tools": ["network.raw"], "attestation_required": true, "registry": { "servers": [ {"name": "fs", "command": "...", "hash": "..."}, ... ] } } ``` ## `dot_config/dotfiles/agent-card.json` Agent Card (MCP A2A spec): ```json { "name": "dotfiles-agent", "version": "0.2.503", "capabilities": ["chezmoi.apply", "theme.switch", "secrets.decrypt"], "policy_hash": "0x7f2a..." } ``` ## Log Files | Path | Content | Rotation | |:---|:---|:---| | `~/.local/state/dotfiles/install.log` | Installer output | Never rotated | | `~/.local/state/dotfiles/heal.log` | Heal attempts | Append-only | | `~/.local/state/dotfiles/metrics.jsonl` | Observability events | Rotated at 10MB | | `~/.local/state/dotfiles/mcp-violations.log` | MCP policy violations | Rotated at 10MB | | `~/.local/state/dotfiles/attestation/*.json` | Attestation snapshots | 90-day retention | | `~/.local/state/dotfiles/snapshots/*` | Rollback snapshots | 30-day retention | ## Cache Files | Path | Content | Invalidation | |:---|:---|:---| | `~/.cache/shell/*-init.sh` | Pre-generated shell init output | Binary mtime | | `~/.cache/dotfiles/themes/*.toml` | Per-wallpaper theme cache | Wallpaper mtime | | `~/.cache/dotfiles/manual/*` | Downloaded manual files | Version change | | `~/.cache/gitstatus/*` | Starship gitstatus | Auto | ## Verified Files Every commit on `master` modifies tracked files only. Untracked files in the source directory (e.g. editor swap files) are ignored via `.chezmoiignore`: ``` .DS_Store .vscode/ *.swp _build/ ``` ## See Also - [Environment Reference](03-environment.md) - [Template Variables](04-templates.md) - [Feature Flags](05-feature-flags.md) - [First Install Tutorial](../02-tutorials/01-first-install.md) {% endraw %}