Document the external docs layout under dot_local/share/docs in AGENTS and GEMINI, and drop outdated references to the old hyprland/waybar wiki mirrors. Remove the ignore entries for the previous wiki paths from .chezmoiignore. hypr: switch hyprpaper template to wallpaper blocks Replace preload generation with explicit wallpaper blocks per monitor. waybar: always include custom/alhp module Remove the hostname guard so the module is present on all hosts.
3.6 KiB
3.6 KiB
Repository Guidelines
Project Structure & Module Organization
This is a chezmoi dotfiles source tree. Key paths:
dot_config/maps to~/.config/(e.g.,dot_config/hypr/,dot_config/nvim/,dot_config/waybar/).dot_local/maps to~/.local/(app data, scripts, etc.).dot_profile.tmplrenders to~/.profile..chezmoiscripts/contains chezmoi hooks (e.g.,run_onchange_*scripts).- Host-specific variants use
##hostname.<name>(e.g.,hyprpaper.conf##hostname.owlenlap01).
Documentation
- Docs live under
dot_local/share/docs/as git submodules and use theexternal_attribute so chezmoi does not interpret their contents. dot_local/share/docs/external_chezmoi-docs(sparse checkoutassets/chezmoi.io) renders to~/.local/share/docs/chezmoi-docs.dot_local/share/docs/external_hyprland.wiki(sparse checkoutcontent) renders to~/.local/share/docs/hyprland.wiki.dot_local/share/docs/external_waybar.wikirenders to~/.local/share/docs/waybar.wiki.- Waybar manual pages are not stored in the repo; use
man 5 waybarandman 5 waybar-<module>for module docs.
Chezmoi Config (chezmoi.toml)
- Source of truth:
~/.config/chezmoi/chezmoi.toml(not tracked here). - Tag keys are stable across machines; templates must access them via
.chezmoi.config.data.tags.<tag>. microphoneis only present whenpipewireis true; guard access with the tag.data.monitorsis an array and the number of entries varies by machine.- Reference structure (current machine):
[data] tags = { desktop = true, laptop = false, hyprland = true, waybar = true, pipewire = true, dev = true, entertainment = true, cs2 = true, bluetooth = false } microphone = "alsa_input.usb-DCMT_Technology_USB_Condenser_Microphone_214b206000000178-00.mono-fallback" # --- Primary Monitor --- [[data.monitors]] name = "DP-1" primary = true width = 1920 height = 1080 refresh_rate = 60 position = "0x0" scale = 1.0 workspaces = [1, 2, 3, 4, 5] wallpaper = "/home/mpuchstein/Pictures/wallpaper/ki/1920x1080/rosepinesuccubus11.png" # --- Secondary Monitor --- [[data.monitors]] name = "DP-2" width = 1920 height = 1080 refresh_rate = 144 position = "1920x0" scale = 1.0 vrr = 1 workspaces = [6, 7, 8, 9, 10] wallpaper = "/home/mpuchstein/Pictures/wallpaper/ki/1920x1080/witch_autumn.png"
Build, Test, and Development Commands
There is no build system; apply and verify changes with chezmoi:
chezmoi diffpreview pending changes.chezmoi applyrender and apply to$HOME.chezmoi statusshow managed file status. After applying, restart the affected app (e.g., reload Hyprland/Waybar) to validate.
Coding Style & Naming Conventions
- Match the existing file’s formatting; don’t reflow unrelated sections.
- Lua configs in
dot_config/nvim/use 2‑space indents and includedot_config/nvim/dot_stylua.tomlanddot_config/nvim/selene.tomlfor format/lint settings. - Use chezmoi prefixes:
dot_for dotfiles,executable_for executable files,symlink_for symlinks,private_for restricted‑permission files, and.tmplfor Go templates.
Testing Guidelines
No automated tests are defined. Validate by:
- Running
chezmoi diffandchezmoi apply. - Smoke‑testing the specific tool you changed (e.g., open Neovim, restart Waybar, reload Hyprland).
Commit & Pull Request Guidelines
This repository has no commits yet, so there is no established commit message convention. Use short, imperative subjects and include a scope when helpful (e.g., hypr: adjust keybinds). For PRs, include a clear summary, affected paths, and screenshots for visual/UI changes.