Documentation, example config, and one validator-test fix. Version
bump and AUR push intentionally deferred.
data/owlry.example.lua (new):
- Annotated reference config exercising every surface (set / providers
/ tabs / theme / profiles / provider / util). Active section is
minimal and validates clean.
aur/owlry/PKGBUILD:
- Ships data/owlry.example.lua to /usr/share/doc/owlry/owlry.example.lua.
pkgver kept at 2.0.1.
README.md:
- Config table puts owlry.lua first (preferred from 2.1), config.toml
marked legacy/fallback with precedence note linking lua-api.md §2.
- New "Quick Start (Lua config)" section with migrate-config blurb.
- migrate-config row: [--force], deterministic. config validate row:
exit 1 errors / exit 2 warnings.
- Roadmap section flips Lua config from "lands in 2.1/3.0" to
"shipped in 2.1"; lists 2.2 follow-ups (dynamic providers,
owlry.bind, util.http_get).
CLAUDE.md:
- Project shape tree expands lua/ module with per-file descriptions.
- Build section documents the `lua` cargo feature.
- CLI shape line for migrate-config: [--force]. config validate:
exit codes 1/2 mentioned.
- New "Lua config layer (2.1+)" section covers precedence, the
notify-based watcher, desktop-notification errors, and the
Arc<Lua> / LoadedConfig invariants.
data/owlry.1:
- --profile mentions both owlry.profiles (lua) and [profiles.<NAME>]
(toml).
- config validate paragraph describes the categorised report and
lists 0/1/2 exit codes.
- migrate-config description no longer says "stub" — covers
determinism, --force/-f, pre-v2 alias normalisation, links §9.
- FILES adds ~/.config/owlry/owlry.lua and the example .lua;
config.toml labelled legacy.
ROADMAP.md:
- "Lua-driven configuration" reworded as shipped in 2.1; example
uses owlry.lua and the v2 API; 2.2 follow-ups listed.
cli.rs help: migrate-config stub-era text → "TOML → owlry.lua
(--force to overwrite)".
lua/validate.rs: loosen pre_v2_aliases_are_known to assert only
that aliases aren't flagged as unknown ids. is_clean() failed
under --no-default-features --features lua because uuctl
correctly triggered the compiled-out warning (uuctl → systemd,
systemd feature off → silently dropped at runtime).
Test matrix (all green):
- --features full 352 lib tests
- --no-default-features 182 lib tests
- --no-default-features --features lua 305 lib tests
Clippy silent in all three configurations.
Smoke (release build, isolated XDG):
1. config validate on the shipped owlry.example.lua → OK exit 0
2. migrate-config: TOML → owlry.lua with the precedence notice
3. Daemon loads, watcher armed; appending owlry.provider triggers
hot-reload within the debounce window
4. :phase310 prefix routes the empty query to the new provider
5. config validate against the live file still OK
Hand-written groff man page documenting the v2 CLI surface, environment
variables, files, and examples. Sections:
NAME / SYNOPSIS / DESCRIPTION
OPTIONS -d, -m, --profile, -p, -h, -V
COMMANDS daemon, dmenu, doctor, providers, config, migrate-config
ENVIRONMENT XDG_RUNTIME_DIR, OWLRY_SOCKET, XDG_CONFIG_HOME,
XDG_DATA_HOME, TERMINAL
FILES config, themes, frecency, socket, docs, units
EXAMPLES UI launch, daemon background, dmenu pipeline,
doctor, side-by-side dev daemon via OWLRY_SOCKET
SEE ALSO / BUGS / AUTHORS
aur/owlry/PKGBUILD: install -Dm644 data/owlry.1 -> /usr/share/man/man1/owlry.1.
makepkg auto-gzips to owlry.1.gz in the final package.
Verified with groff -Tutf8 -man: no warnings or errors. Tested locally
via makepkg; man page lands at /usr/share/man/man1/owlry.1.gz in the
2.7 MB .pkg.tar.zst.