🤖 Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai>
1.8 KiB
1.8 KiB
AGENTS.md — Agentic Coding Guide for Dotfiles
Setup, Lint, and Test
- Main entrypoint:
./setup.sh(runs allmodules/*.shin order) - To re-run a single module:
bash modules/XX-name.sh - All scripts must be idempotent and safe to re-run
- No traditional build/lint/test; test by running setup and checking symlinks/configs
Code Style & Conventions
- Bash scripts only; use
parufor package management (neverpacman) - Add new packages to the relevant
modules/XX-*.shscript - Place new dotfiles in repo root or
.config/as appropriate - Symlinking logic is in
modules/02-symlinks.sh - Scripts must be modular: one concern per module, no duplicated logic
- Use
$HOMEand relative paths, never hardcode absolute paths - Prefer arrays for package lists, and always quote variables
- Use
set -efor error handling in scripts - Follow naming:
XX-feature.shfor modules, lowercase, hyphen-separated - App configs (Hyprland, Waybar, etc.) go in
.config/and use includes/fragments if possible - All scripts and configs should be readable, commented, and extensible
Device Profiles
- Support multiple device types (e.g., laptop, desktop) via an environment variable or setup prompt (
DOTFILES_DEVICE=laptop|desktop) - Use device-specific config fragments (e.g.,
monitors-laptop.conf,monitors-desktop.conf) and symlink/include them conditionally - Waybar, Hyprland, and input configs should only enable battery, backlight, wifi, and touchpad modules for laptops
- Setup scripts and symlinking logic must detect device type and use the correct configs
Copilot/AI Rules
- See
.github/copilot-instructions.mdfor full conventions - Never use other package managers or hardcoded paths
- All changes must be modular, idempotent, and version-controlled
For more, see README.md and .github/copilot-instructions.md.