Files
dotfiles/AGENTS.md
s0wlz (Matthias Puchstein) d90cca305f dotfiles: update waybar, mpv, and launcher configs
- tweak Waybar layout/styling, add temp cycling + volume group

- template mpv config and add jellyfin-mpv-shim defaults

- add owlry config, Hyprland launcher bind, and agent notes
2025-12-29 01:04:48 +01:00

67 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.tmpl` renders to `~/.profile`.
- `.chezmoiscripts/` contains chezmoi hooks (e.g., `run_onchange_*` scripts).
- Host-specific variants use `##hostname.<name>` (e.g., `hyprpaper.conf##hostname.owlenlap01`).
- `dot_config/waybar/waybar.wiki/` and `dot_config/hypr/hyprland.wiki/` are mirrored docs with `dot_git/` metadata; treat them as upstream mirrors unless intentionally updating.
## 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>`.
- `microphone` is only present when `pipewire` is true; guard access with the tag.
- `data.monitors` is 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 diff` preview pending changes.
- `chezmoi apply` render and apply to `$HOME`.
- `chezmoi status` show managed file status.
After applying, restart the affected app (e.g., reload Hyprland/Waybar) to validate.
## Coding Style & Naming Conventions
- Match the existing files formatting; dont reflow unrelated sections.
- Lua configs in `dot_config/nvim/` use 2space indents and include `dot_config/nvim/dot_stylua.toml` and `dot_config/nvim/selene.toml` for format/lint settings.
- Use chezmoi prefixes: `dot_` for dotfiles, `executable_` for executable files, `symlink_` for symlinks, `private_` for restrictedpermission files, and `.tmpl` for Go templates.
## Testing Guidelines
No automated tests are defined. Validate by:
- Running `chezmoi diff` and `chezmoi apply`.
- Smoketesting 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.