feat: convert to workspace with native plugin architecture
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>
This commit is contained in:
10
examples/plugins/hello-rune/init.rn
Normal file
10
examples/plugins/hello-rune/init.rn
Normal file
@@ -0,0 +1,10 @@
|
||||
// Hello World Plugin for Owlry
|
||||
//
|
||||
// This minimal plugin demonstrates:
|
||||
// 1. Using owlry::log_* for logging
|
||||
// 2. Basic Rune syntax
|
||||
|
||||
pub fn main() {
|
||||
owlry::log_info("Hello Rune plugin loading...");
|
||||
owlry::log_info("Hello Rune plugin loaded successfully!");
|
||||
}
|
||||
16
examples/plugins/hello-rune/plugin.toml
Normal file
16
examples/plugins/hello-rune/plugin.toml
Normal file
@@ -0,0 +1,16 @@
|
||||
# Hello World Plugin for Owlry (Rune version)
|
||||
#
|
||||
# This example demonstrates a minimal Rune plugin.
|
||||
|
||||
[plugin]
|
||||
id = "hello-rune"
|
||||
name = "Hello Rune"
|
||||
version = "1.0.0"
|
||||
description = "A simple greeting plugin written in Rune"
|
||||
author = "Owlry Team"
|
||||
license = "GPL-3.0-or-later"
|
||||
owlry_version = ">=0.3.0"
|
||||
entry = "init.rn"
|
||||
|
||||
[provides]
|
||||
providers = ["greeting"]
|
||||
Reference in New Issue
Block a user