Replace the tray, application, and configurator artwork with the new pencil design. Add multi-size fallback pixmaps and scalable symbolic icons across supported package formats for reliable HiDPI and themed tray rendering.
This major rename reflects the project's evolution from a Hyprland-specific
tool to a compositor-agnostic Wayland screen annotation utility.
Major changes:
- Renamed all binaries: hyprmarker → wayscriber
- Updated package metadata (Cargo.toml)
- Added compatibility aliases (hyprmarker remains as wrapper)
- Implemented config migration (--migrate-config)
- Updated all documentation and examples
- Added MIGRATION.md guide for users
- Updated systemd service files
- Preserved backward compatibility for 6-month grace period
Implements the foundational infrastructure for whiteboard and blackboard
modes, enabling users to toggle between transparent overlay, whiteboard
(light), and blackboard (dark) canvases with independent drawing frames.
Core Changes:
- Add BoardMode enum (Transparent/Whiteboard/Blackboard) with helpers
for background colors and default pen colors
- Add CanvasSet with lazy-initialized multi-frame storage for memory
efficiency (frames created only when first accessed)
- Refactor InputState to use CanvasSet instead of single Frame
- Add render_board_background() to rendering pipeline
- Integrate background rendering into Wayland backend
Architecture Highlights:
- Frame isolation: Each mode has independent shapes and undo/redo stack
- Lazy initialization: Board frames only allocated when used
- Zero regression: All existing functionality preserved
- 14 new unit tests covering core infrastructure
Technical Details:
- Transparent mode frame always exists (default)
- Whiteboard/Blackboard frames lazily created on first access
- Background renders after clear but before shapes
- CanvasSet manages mode switching and frame references
Bug Fixes:
- Add PartialEq derive to Color for test assertions
- Fix pre-existing FontDescriptor test signature issues
Testing:
- All 17 tests pass (14 new, 3 existing)
- Frame isolation verified
- Lazy initialization verified
- No performance regression
Next Phase: Input handling and keybindings (Ctrl+W/B/T)