Mostly `cargo clippy --fix`: needless borrows, redundant field names,
match -> if let, io::Error::other, Option::filter/map, let chains, c""
literals. By hand: drop unused impl lifetimes, a type alias for the
font preload map, Iterator::find in next_buffer, contains_key, and
allow new_ret_no_self where constructors intentionally return the
boxed/generic wrapper type.
No functional change; tests and release build unchanged.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Missing/invalid config, unwritable config target, failed Wayland connect
and bad arguments now print one line to stderr and exit 1 rather than
panicking with "uh" or a serde backtrace.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
On a shared (NFS-roamed) home, ~/.config/wldash/config.yml is identical on
every machine. Prefer a host-specific /etc/wldash/config.yml when it exists so
each machine can keep its own layout without conflicting; --config still
overrides both. Enables the 'factor host-specific config to /etc' pattern for
shared-home fleets.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ensure ~/.config/wldash and ~/.cache/wldash exist.
Provide hints when no configuration exists.
Signed-off-by: Alejandro Visiedo <alejandro.visiedo@gmail.com>
wldash was originally written to expect server-side shm buffer
optimizations, which make it so only a single buffer has to be in use.
This simplifies damage tracking and repaint needs.
Support for using multiple buffers was added to support e.g., jay, but
the damage handling was not in place for this to work. Fix that by
tracking damage per buffer.