From 405b598b9b4cb34aec4e14e6e67e7079bd8e65d9 Mon Sep 17 00:00:00 2001 From: vikingowl Date: Mon, 29 Dec 2025 17:34:10 +0100 Subject: [PATCH] docs: add example files and reorganize config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add data/style.example.css with CSS customization guide - Add data/scripts/example.sh as script template - Reorganize config.example.toml with clear sections: - File locations box at top - Separate sections: General, Appearance, Providers - Group trigger providers vs prefix providers - Add inline comments for all options - List all built-in themes in appearance section 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- data/config.example.toml | 107 ++++++++++++++++++++++++--------------- data/scripts/example.sh | 24 +++++++++ data/style.example.css | 73 ++++++++++++++++++++++++++ 3 files changed, 162 insertions(+), 42 deletions(-) create mode 100644 data/scripts/example.sh create mode 100644 data/style.example.css diff --git a/data/config.example.toml b/data/config.example.toml index 2b45f85..c319009 100644 --- a/data/config.example.toml +++ b/data/config.example.toml @@ -1,42 +1,51 @@ # Owlry Configuration -# Copy to ~/.config/owlry/config.toml +# Copy to: ~/.config/owlry/config.toml # -# File locations (XDG Base Directory compliant): -# Config: $XDG_CONFIG_HOME/owlry/config.toml (~/.config/owlry/) -# Themes: $XDG_CONFIG_HOME/owlry/themes/*.css -# Style: $XDG_CONFIG_HOME/owlry/style.css (custom CSS overrides) -# Scripts: $XDG_DATA_HOME/owlry/scripts/ (~/.local/share/owlry/) -# Data: $XDG_DATA_HOME/owlry/frecency.json +# File Locations (XDG Base Directory compliant): +# ┌─────────────────────────────────────────────────────────────────────┐ +# │ Config: ~/.config/owlry/config.toml Main configuration │ +# │ Themes: ~/.config/owlry/themes/*.css Custom theme files │ +# │ Style: ~/.config/owlry/style.css CSS overrides │ +# │ Scripts: ~/.local/share/owlry/scripts/ Executable scripts │ +# │ Data: ~/.local/share/owlry/frecency.json Usage history │ +# └─────────────────────────────────────────────────────────────────────┘ + +# ═══════════════════════════════════════════════════════════════════════ +# GENERAL +# ═══════════════════════════════════════════════════════════════════════ [general] show_icons = true max_results = 10 -terminal_command = "kitty" # Auto-detected if not set -# Launch wrapper for app execution (auto-detected if not set) -# Examples: -# "uwsm app --" # For uwsm sessions -# "hyprctl dispatch exec --" # For Hyprland -# "" # Direct execution +# Terminal emulator (auto-detected if not set) +terminal_command = "kitty" + +# Launch wrapper for app execution (auto-detected for uwsm/Hyprland) +# Examples: "uwsm app --", "hyprctl dispatch exec --", "" # launch_wrapper = "uwsm app --" -# Provider tabs shown in header bar (Ctrl+1, Ctrl+2, etc. to toggle) -# Valid values: app, cmd, uuctl, bookmark, calc, clip, dmenu, emoji, file, script, ssh, sys, web +# Header tabs - providers shown as toggle buttons (Ctrl+1, Ctrl+2, etc.) +# Values: app, cmd, uuctl, bookmark, calc, clip, dmenu, emoji, file, script, ssh, sys, web tabs = ["app", "cmd", "uuctl"] +# ═══════════════════════════════════════════════════════════════════════ +# APPEARANCE +# ═══════════════════════════════════════════════════════════════════════ + [appearance] width = 600 height = 400 font_size = 14 border_radius = 12 -# Theme: "owl" for built-in dark theme, or leave unset for GTK default -# Custom themes: place in $XDG_CONFIG_HOME/owlry/themes/{name}.css +# Theme name - loads ~/.config/owlry/themes/{name}.css +# Built-in: owl, catppuccin-mocha, dracula, gruvbox-dark, nord, +# one-dark, rose-pine, solarized-dark, tokyo-night +# Or leave unset for GTK default # theme = "owl" -# Custom CSS: create $XDG_CONFIG_HOME/owlry/style.css for additional styling - -# Individual color overrides (CSS color values) +# Color overrides (applied on top of theme) # [appearance.colors] # background = "#1a1b26" # background_secondary = "#24283b" @@ -51,42 +60,56 @@ border_radius = 12 # badge_dmenu = "#bb9af7" # badge_uuctl = "#f7768e" -[providers] -applications = true -commands = true -uuctl = true +# ═══════════════════════════════════════════════════════════════════════ +# PROVIDERS +# ═══════════════════════════════════════════════════════════════════════ -# Calculator provider (type "= 5+3" or "calc 5+3") +[providers] +# Core providers (appear in main search) +applications = true # .desktop applications +commands = true # Executables from $PATH +uuctl = true # systemd --user units + +# Frecency - boost frequently/recently used items +# Data: ~/.local/share/owlry/frecency.json +frecency = true +frecency_weight = 0.3 # 0.0 = disabled, 1.0 = strong boost + +# ─────────────────────────────────────────────────────────────────────── +# Trigger Providers (activated by prefix) +# ─────────────────────────────────────────────────────────────────────── + +# Calculator: "= 5+3" or "calc 5+3" or ":calc" calculator = true -# Frecency: boost frequently/recently used items in search results -# Data stored in $XDG_DATA_HOME/owlry/frecency.json -frecency = true -frecency_weight = 0.3 # 0.0 = disabled, 1.0 = strong boost - -# Web search provider (type "? query" or "web query") +# Web search: "? query" or "web query" or ":web" websearch = true -# Options: google, duckduckgo, bing, startpage, searxng, brave, ecosia -# Or custom URL with {query} placeholder, e.g. "https://search.example.com/?q={query}" search_engine = "duckduckgo" +# Options: google, duckduckgo, bing, startpage, searxng, brave, ecosia +# Custom: "https://search.example.com/?q={query}" -# System commands (shutdown, reboot, lock, suspend, hibernate, logout, BIOS) +# File search: "/ pattern" or "find pattern" or ":file" +# Requires: fd or locate +files = true + +# ─────────────────────────────────────────────────────────────────────── +# Prefix Providers (use :prefix to search) +# ─────────────────────────────────────────────────────────────────────── + +# System: :sys or :power - shutdown, reboot, lock, suspend, hibernate, logout system = true -# SSH connections from ~/.ssh/config +# SSH: :ssh - connections from ~/.ssh/config ssh = true -# Clipboard history (requires cliphist) +# Clipboard: :clip - history (requires cliphist) clipboard = true -# Browser bookmarks (Chrome, Chromium, Brave, Edge, Vivaldi) +# Bookmarks: :bm - browser bookmarks (Chrome, Chromium, Brave, Edge, Vivaldi) bookmarks = true -# Emoji picker (copies to clipboard) +# Emoji: :emoji - picker (copies to clipboard) emoji = true -# Custom scripts from $XDG_DATA_HOME/owlry/scripts/ (~/.local/share/owlry/scripts/) +# Scripts: :script - executables from ~/.local/share/owlry/scripts/ scripts = true - -# File search (requires fd or locate, trigger with "/ pattern" or "find pattern") -files = true diff --git a/data/scripts/example.sh b/data/scripts/example.sh new file mode 100644 index 0000000..058c707 --- /dev/null +++ b/data/scripts/example.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# Example Owlry Script +# Copy to: ~/.local/share/owlry/scripts/ +# +# Scripts in the scripts directory appear in Owlry search results. +# They are executed when selected. +# +# Naming convention: +# The filename (without extension) becomes the display name. +# Example: "system-update.sh" shows as "Script: system-update" +# +# Tips: +# - Make scripts executable: chmod +x script.sh +# - Use descriptive names for easy searching +# - Scripts can launch GUI apps, run terminal commands, etc. + +# Example: Show a notification +notify-send "Owlry" "Hello from example script!" + +# Example: Open a URL +# xdg-open "https://example.com" + +# Example: Run a terminal command (set terminal: true in owlry if needed) +# echo "Script executed at $(date)" diff --git a/data/style.example.css b/data/style.example.css new file mode 100644 index 0000000..1ddf962 --- /dev/null +++ b/data/style.example.css @@ -0,0 +1,73 @@ +/* + * Owlry Custom Style Overrides + * Copy to: ~/.config/owlry/style.css + * + * This file is loaded AFTER themes, allowing you to override + * specific styles without creating a full theme. + * + * Available CSS classes: + * .owlry-window - Main window container + * .owlry-main - Main content area + * .owlry-header - Header with mode and tabs + * .owlry-search - Search input field + * .owlry-results - Results list container + * .owlry-result-row - Individual result row + * .owlry-result-name - Result item name + * .owlry-result-description - Result description text + * .owlry-result-icon - Result icon + * .owlry-tag-badge - Tag badges on results + * .owlry-badge-* - Provider badges (app, cmd, uuctl, etc.) + * .owlry-filter-button - Tab filter buttons + * .owlry-filter-* - Provider-specific filter buttons + * .owlry-mode-indicator - Current mode label + * .owlry-hints - Bottom hints bar + * + * CSS Variables (set in themes or override here): + * --owlry-bg - Main background color + * --owlry-bg-secondary - Secondary background + * --owlry-border - Border color + * --owlry-text - Primary text color + * --owlry-text-secondary - Secondary text color + * --owlry-accent - Accent/highlight color + * --owlry-accent-bright - Bright accent color + * --owlry-font-size - Base font size (default: 14px) + * --owlry-border-radius - Border radius (default: 12px) + */ + +/* Example: Make the window slightly larger */ +/* +.owlry-main { + padding: 20px; +} +*/ + +/* Example: Custom search field styling */ +/* +.owlry-search { + font-size: 18px; + padding: 12px 16px; +} +*/ + +/* Example: Highlight selected row differently */ +/* +.owlry-result-row:selected { + background-color: rgba(255, 255, 255, 0.1); + border-left: 4px solid var(--owlry-accent); +} +*/ + +/* Example: Hide tag badges */ +/* +.owlry-tag-badge { + display: none; +} +*/ + +/* Example: Custom scrollbar */ +/* +scrollbar slider { + background-color: rgba(128, 128, 128, 0.3); + border-radius: 4px; +} +*/