2 Commits

Author SHA1 Message Date
c0ea40a393 docs(config): sync example config with current features
- Add dmenu usage examples with | sh pattern
- Fix max_results default (10 → 100)
- Add widget providers (media, weather, pomodoro) with settings
- Add provider badge color customization options
- Add plugin sandbox settings section
- Fix disabled → disabled_plugins, add enabled and registry_url
- Add weather and pomodoro configuration options
2026-01-02 19:00:51 +01:00
44f0915ba9 docs: improve dmenu examples with proper output handling
- Clarify that dmenu outputs to stdout (doesn't execute)
- Add screenshot menu example with | sh pattern
- Use printf instead of echo -e for POSIX compliance
- Add xdg-open example for opening files
- Use shorter -p flag instead of --prompt
2026-01-02 18:56:19 +01:00
2 changed files with 92 additions and 16 deletions

View File

@@ -109,29 +109,34 @@ owlry --help # Show all options with examples
### dmenu Mode
Owlry is dmenu-compatible. Pipe input for interactive selection:
Owlry is dmenu-compatible. Pipe input for interactive selection - the selected item is printed to stdout (not executed), so you pipe the output to execute it:
```bash
# Basic selection
echo -e "Option A\nOption B\nOption C" | owlry -m dmenu
# Select from files
ls ~/Documents | owlry -m dmenu
# Screenshot menu (execute selected command)
printf '%s\n' \
"grimblast --notify copy screen" \
"grimblast --notify copy area" \
"grimblast --notify edit screen" \
| owlry -m dmenu -p "Screenshot" \
| sh
# Git branch checkout
git branch | owlry -m dmenu --prompt "checkout:" | xargs git checkout
git branch | owlry -m dmenu -p "checkout" | xargs git checkout
# Kill a process
ps -eo comm | sort -u | owlry -m dmenu --prompt "kill:" | xargs pkill
ps -eo comm | sort -u | owlry -m dmenu -p "kill" | xargs pkill
# Select and open a project
find ~/projects -maxdepth 1 -type d | owlry -m dmenu | xargs code
# Package manager search
pacman -Ssq | owlry -m dmenu --prompt "install:" | xargs sudo pacman -S
pacman -Ssq | owlry -m dmenu -p "install" | xargs sudo pacman -S
# Open selected file
ls ~/Documents | owlry -m dmenu | xargs xdg-open
```
The `--prompt` flag sets a custom label for the search input.
The `-p` / `--prompt` flag sets a custom label for the search input.
### Keyboard Shortcuts

View File

@@ -17,13 +17,36 @@
# │ Runtimes: /usr/lib/owlry/runtimes/*.so Lua/Rune runtimes │
# └─────────────────────────────────────────────────────────────────────┘
# ═══════════════════════════════════════════════════════════════════════
# DMENU MODE
# ═══════════════════════════════════════════════════════════════════════
#
# Dmenu mode provides interactive selection from piped input.
# The selected item is printed to stdout (not executed), so pipe
# the output to execute it:
#
# ┌─────────────────────────────────────────────────────────────────────┐
# │ # Screenshot menu │
# │ printf '%s\n' \ │
# │ "grimblast --notify copy screen" \ │
# │ "grimblast --notify copy area" \ │
# │ | owlry -m dmenu -p "Screenshot" \ │
# │ | sh │
# │ │
# │ # Git branch checkout │
# │ git branch | owlry -m dmenu -p "checkout" | xargs git checkout │
# │ │
# │ # Package search │
# │ pacman -Ssq | owlry -m dmenu -p "install" | xargs sudo pacman -S │
# └─────────────────────────────────────────────────────────────────────┘
# ═══════════════════════════════════════════════════════════════════════
# GENERAL
# ═══════════════════════════════════════════════════════════════════════
[general]
show_icons = true
max_results = 10
max_results = 100
# Terminal emulator for SSH, scripts, etc.
# Auto-detection order: $TERMINAL → xdg-terminal-exec → DE-native → Wayland → X11 → xterm
@@ -64,22 +87,54 @@ border_radius = 12
# text_secondary = "#565f89"
# accent = "#7aa2f7"
# accent_bright = "#89b4fa"
#
# Provider badge colors (optional)
# badge_app = "#7aa2f7"
# badge_cmd = "#9ece6a"
# badge_bookmark = "#e0af68"
# badge_calc = "#bb9af7"
# badge_clip = "#7dcfff"
# badge_dmenu = "#c0caf5"
# badge_emoji = "#f7768e"
# badge_file = "#73daca"
# badge_script = "#ff9e64"
# badge_ssh = "#2ac3de"
# badge_sys = "#f7768e"
# badge_uuctl = "#9ece6a"
# badge_web = "#7aa2f7"
# badge_media = "#bb9af7"
# badge_weather = "#7dcfff"
# badge_pomo = "#f7768e"
# ═══════════════════════════════════════════════════════════════════════
# PLUGINS
# ═══════════════════════════════════════════════════════════════════════
#
# All installed plugins are loaded by default. Use 'disabled' to blacklist.
# All installed plugins are loaded by default. Use 'disabled_plugins' to blacklist.
# Plugin IDs: calculator, system, ssh, clipboard, emoji, scripts, bookmarks,
# websearch, filesearch, systemd, weather, media, pomodoro
[plugins]
enabled = true # Master switch for all plugins
# Plugins to disable (by ID)
disabled = []
disabled_plugins = []
# Examples:
# disabled = ["emoji", "pomodoro"] # Disable specific plugins
# disabled = ["weather", "media"] # Disable widget plugins
# disabled_plugins = ["emoji", "pomodoro"] # Disable specific plugins
# disabled_plugins = ["weather", "media"] # Disable widget plugins
# Custom plugin registry URL (defaults to official registry)
# registry_url = "https://my-registry.example.com/plugins.json"
# ─────────────────────────────────────────────────────────────────────────
# Sandbox settings (for Lua/Rune script plugins)
# ─────────────────────────────────────────────────────────────────────────
# [plugins.sandbox]
# allow_filesystem = false # Allow file system access beyond plugin dir
# allow_network = false # Allow network requests
# allow_commands = false # Allow shell command execution
# memory_limit = 67108864 # Memory limit in bytes (64 MB default)
# ═══════════════════════════════════════════════════════════════════════
# PROVIDERS
@@ -114,10 +169,26 @@ calculator = true # Calculator (= expression)
websearch = true # Web search (? query)
# ─────────────────────────────────────────────────────────────────────────
# Plugin settings
# Widget providers (displayed at top of results)
# ─────────────────────────────────────────────────────────────────────────
media = true # MPRIS media player controls
weather = false # Weather widget (disabled by default)
pomodoro = false # Pomodoro timer (disabled by default)
# ─────────────────────────────────────────────────────────────────────────
# Provider settings
# ─────────────────────────────────────────────────────────────────────────
# Web search engine
# Options: google, duckduckgo, bing, startpage, searxng, brave, ecosia
# Or custom URL: "https://search.example.com/?q={query}"
search_engine = "duckduckgo"
# Weather settings (when weather = true)
# weather_provider = "wttr.in" # Options: wttr.in, openweathermap, open-meteo
# weather_location = "Berlin" # City name or coordinates
# weather_api_key = "" # Required for openweathermap
# Pomodoro settings (when pomodoro = true)
# pomodoro_work_mins = 25 # Work session duration
# pomodoro_break_mins = 5 # Break duration