Files
owlry/docs/PLUGINS.md
vikingowl 1557119448 docs: comprehensive documentation update
README.md:
- Fix bundle package names (add meta- prefix)
- Add Firefox support to bookmarks plugin description
- Add system paths table (plugins, runtimes, example config)
- Add Quick Start section for copying example config
- Expand config example with providers section

docs/PLUGINS.md:
- Add Firefox support to bookmarks
- Fix bundle package names
- Remove outdated [plugins.weather] and [plugins.pomodoro] config examples

docs/PLUGIN_DEVELOPMENT.md:
- Fix Rust edition from 2024 to 2021
- Add position and priority fields to ProviderInfo
- Add ProviderPosition enum documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 08:49:30 +01:00

319 lines
6.8 KiB
Markdown

# Available Plugins
Owlry's functionality is provided through a modular plugin system. This document describes all available plugins.
## Plugin Categories
### Static Providers
Static providers load their items once at startup (and on manual refresh). They're best for data that doesn't change frequently.
### Dynamic Providers
Dynamic providers evaluate queries in real-time. Each keystroke triggers a new query, making them ideal for calculations, searches, and other interactive features.
### Widget Providers
Widget providers display persistent information at the top of results (weather, media controls, timers).
---
## Core Plugins
### owlry-plugin-calculator
**Type:** Dynamic
**Prefix:** `:calc`, `=`, `calc `
**Package:** `owlry-plugin-calculator`
Evaluate mathematical expressions in real-time.
**Examples:**
```
= 5 + 3 → 8
= sqrt(16) → 4
= sin(pi/2) → 1
= 2^10 → 1024
= (1 + 0.05)^12 → 1.7958...
```
**Supported operations:**
- Basic: `+`, `-`, `*`, `/`, `^` (power), `%` (modulo)
- Functions: `sin`, `cos`, `tan`, `asin`, `acos`, `atan`
- Functions: `sqrt`, `abs`, `floor`, `ceil`, `round`
- Functions: `ln`, `log`, `log10`, `exp`
- Constants: `pi`, `e`
---
### owlry-plugin-system
**Type:** Static
**Prefix:** `:sys`
**Package:** `owlry-plugin-system`
System power and session management commands.
**Actions:**
| Name | Description | Command |
|------|-------------|---------|
| Shutdown | Power off | `systemctl poweroff` |
| Reboot | Restart | `systemctl reboot` |
| Reboot into BIOS | UEFI setup | `systemctl reboot --firmware-setup` |
| Suspend | Sleep (RAM) | `systemctl suspend` |
| Hibernate | Sleep (disk) | `systemctl hibernate` |
| Lock Screen | Lock session | `loginctl lock-session` |
| Log Out | End session | `loginctl terminate-session self` |
---
### owlry-plugin-ssh
**Type:** Static
**Prefix:** `:ssh`
**Package:** `owlry-plugin-ssh`
SSH hosts parsed from `~/.ssh/config`.
**Features:**
- Parses `Host` entries from SSH config
- Ignores wildcards (`Host *`)
- Opens connections in your configured terminal
---
### owlry-plugin-clipboard
**Type:** Static
**Prefix:** `:clip`
**Package:** `owlry-plugin-clipboard`
**Dependencies:** `cliphist`, `wl-clipboard`
Clipboard history integration with cliphist.
**Features:**
- Shows last 50 clipboard entries
- Previews text content (truncated to 80 chars)
- Select to copy back to clipboard
---
### owlry-plugin-emoji
**Type:** Static
**Prefix:** `:emoji`
**Package:** `owlry-plugin-emoji`
**Dependencies:** `wl-clipboard`
400+ searchable emoji with keywords.
**Examples:**
```
:emoji heart → ❤️ 💙 💚 💜 ...
:emoji smile → 😀 😃 😄 😁 ...
:emoji fire → 🔥
```
---
### owlry-plugin-scripts
**Type:** Static
**Prefix:** `:script`
**Package:** `owlry-plugin-scripts`
User scripts from `~/.local/share/owlry/scripts/`.
**Setup:**
```bash
mkdir -p ~/.local/share/owlry/scripts
cat > ~/.local/share/owlry/scripts/backup.sh << 'EOF'
#!/bin/bash
rsync -av ~/Documents /backup/
notify-send "Backup complete"
EOF
chmod +x ~/.local/share/owlry/scripts/backup.sh
```
---
### owlry-plugin-bookmarks
**Type:** Static
**Prefix:** `:bm`
**Package:** `owlry-plugin-bookmarks`
Browser bookmarks from Firefox and Chromium-based browsers.
**Supported browsers:**
- Firefox (reads places.sqlite)
- Google Chrome
- Brave
- Microsoft Edge
- Vivaldi
- Chromium
---
### owlry-plugin-websearch
**Type:** Dynamic
**Prefix:** `:web`, `?`, `web `
**Package:** `owlry-plugin-websearch`
Web search with configurable search engine.
**Examples:**
```
? rust programming → Search for "rust programming"
web linux tips → Search for "linux tips"
```
**Configuration:**
```toml
[providers]
search_engine = "duckduckgo" # or: google, bing, startpage
# custom_search_url = "https://search.example.com/?q={}"
```
---
### owlry-plugin-filesearch
**Type:** Dynamic
**Prefix:** `:file`, `/`, `find `
**Package:** `owlry-plugin-filesearch`
**Dependencies:** `fd` (recommended) or `mlocate`
Real-time file search.
**Examples:**
```
/ .bashrc → Find files matching ".bashrc"
find config → Find files matching "config"
```
**Configuration:**
```toml
[providers]
file_search_max_results = 50
# file_search_paths = ["/home", "/etc"] # Custom search paths
```
---
### owlry-plugin-systemd
**Type:** Static (with submenu)
**Prefix:** `:uuctl`
**Package:** `owlry-plugin-systemd`
**Dependencies:** `systemd`
User systemd services with action submenus.
**Features:**
- Lists user services (`systemctl --user`)
- Shows service status (running/stopped/failed)
- Submenu actions: start, stop, restart, enable, disable, status
**Usage:**
1. Search `:uuctl docker`
2. Select a service
3. Choose action from submenu
---
## Widget Plugins
### owlry-plugin-weather
**Type:** Widget (Static)
**Package:** `owlry-plugin-weather`
Current weather displayed at the top of results.
**Supported APIs:**
- wttr.in (default, no API key required)
- OpenWeatherMap (requires API key)
- Open-Meteo (no API key required)
**Note:** Weather configuration is currently embedded in the plugin. Future versions will support runtime configuration.
**Features:**
- Temperature, condition, humidity, wind speed
- Weather icons from Weather Icons font
- 15-minute cache
- Click to open detailed forecast
---
### owlry-plugin-media
**Type:** Widget (Static)
**Package:** `owlry-plugin-media`
MPRIS media player controls.
**Features:**
- Shows currently playing track
- Artist, title, album art
- Play/pause, next, previous controls
- Works with Spotify, Firefox, VLC, etc.
---
### owlry-plugin-pomodoro
**Type:** Widget (Static)
**Package:** `owlry-plugin-pomodoro`
Pomodoro timer with work/break cycles.
**Features:**
- Configurable work session duration
- Configurable break duration
- Session counter
- Desktop notifications on phase completion
- Persistent state across sessions
**Controls:**
- Start/Pause timer
- Skip to next phase
- Reset timer and sessions
---
## Bundle Packages
For convenience, plugins are available in bundle meta-packages:
| Bundle | Plugins |
|--------|---------|
| `owlry-meta-essentials` | calculator, system, ssh, scripts, bookmarks |
| `owlry-meta-widgets` | weather, media, pomodoro |
| `owlry-meta-tools` | clipboard, emoji, websearch, filesearch, systemd |
| `owlry-meta-full` | All of the above |
```bash
# Install everything
yay -S owlry-meta-full
# Or pick a bundle
yay -S owlry-meta-essentials owlry-meta-widgets
```
---
## Runtime Packages
For custom user plugins written in Lua or Rune:
| Package | Description |
|---------|-------------|
| `owlry-lua` | Lua 5.4 runtime for user plugins |
| `owlry-rune` | Rune runtime for user plugins |
User plugins are placed in `~/.config/owlry/plugins/`.
See [PLUGIN_DEVELOPMENT.md](PLUGIN_DEVELOPMENT.md) for creating custom plugins.