BREAKING: Restructure from monolithic binary to modular plugin ecosystem
Architecture changes:
- Convert to Cargo workspace with crates/ directory
- Create owlry-plugin-api crate with ABI-stable interface (abi_stable)
- Move core binary to crates/owlry/
- Extract providers to native plugin crates (13 plugins)
- Add owlry-lua crate for Lua plugin runtime
Plugin system:
- Plugins loaded from /usr/lib/owlry/plugins/*.so
- Widget providers refresh automatically (universal, not hardcoded)
- Per-plugin config via [plugins.<name>] sections in config.toml
- Backwards compatible with [providers] config format
New features:
- just install-local: build and install core + all plugins
- Plugin config: weather and pomodoro read from [plugins.*]
- HostAPI for plugins: notifications, logging
Documentation:
- Update README with new package structure
- Add docs/PLUGINS.md with all plugin documentation
- Add docs/PLUGIN_DEVELOPMENT.md
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Added config options for all new providers (system, ssh, clipboard,
bookmarks, emoji, scripts, files) with default=true via serde.
Updated filter to add these providers to enabled set based on config.
Also updated README with comprehensive documentation for all providers.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Themes are installed to /usr/share/owlry/themes/ and can be
copied to ~/.config/owlry/themes/ for customization.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add launch_wrapper config option with auto-detection for uwsm and
hyprland sessions, ensuring apps launch with proper session management
- Fix CLI argument parsing by preventing GTK from intercepting
clap-parsed args (--mode, --providers)
- Improve desktop file Exec field parsing to properly handle quoted
arguments and FreeDesktop field codes (%u, %F, etc.)
- Add unit tests for Exec field parsing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add AUR badge to shields
- Add Arch Linux (AUR) as recommended install method
- Reorganize build-from-source section
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Comprehensive README with installation, usage, and configuration
- Shields for Rust 1.90+, GTK 4.12, Wayland, GPL-3.0 license
- Accurate default values and config field names
- Theming documentation with CSS variables reference
- Keyboard shortcuts and search prefix reference
- GPL-3.0-or-later license (matching Cargo.toml)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>