Commit Graph

38 Commits

Author SHA1 Message Date
0eccdc5883 refactor: centralize path handling with XDG Base Directory compliance
- Add src/paths.rs module for all XDG path lookups
- Move scripts from ~/.config to ~/.local/share (XDG data)
- Use $XDG_CONFIG_HOME for browser bookmark paths
- Add dev-logging feature flag for verbose debug output
- Add dev-install profile for testable release builds
- Remove CLAUDE.md from version control

BREAKING: Scripts directory moved from
~/.config/owlry/scripts/ to ~/.local/share/owlry/scripts/

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 16:46:14 +01:00
3f7a8950eb chore: bump version to 0.3.5 v0.3.5 2025-12-28 19:33:25 +01:00
b38bf082e1 fix: update emoji test to check description field 2025-12-28 19:33:20 +01:00
617dbbce3e chore: bump version to 0.3.4 v0.3.4 2025-12-28 19:28:17 +01:00
4ff054afe0 chore: bump version to 0.3.3 v0.3.3 2025-12-28 19:21:51 +01:00
8547dfa951 chore: bump version to 0.3.2 v0.3.2 2025-12-28 19:15:53 +01:00
e1a6650b7d fix: remove duplicate emoji from emoji picker display
Moved emoji character to description instead of name to avoid
showing it twice (once as icon, once in text).

Now displays:
- Name: "grinning face"
- Description: "😀 smile happy"

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 19:15:45 +01:00
6ae8c734d2 chore: bump version to 0.3.1 v0.3.1 2025-12-28 19:05:43 +01:00
cf48d53c57 fix: enable new providers in filter by default
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>
2025-12-28 19:05:35 +01:00
41cd212264 chore: bump version to 0.3.0 v0.3.0 2025-12-28 18:55:32 +01:00
7cdb97d743 feat: add 7 new providers (system, ssh, clipboard, files, bookmarks, emoji, scripts)
New providers:
- System: shutdown, reboot, suspend, hibernate, lock, logout, reboot into BIOS
- SSH: parse ~/.ssh/config for quick host connections
- Clipboard: integrate with cliphist for clipboard history
- Files: search files using fd or locate (/ or find prefix)
- Bookmarks: read Chrome/Chromium/Brave/Edge browser bookmarks
- Emoji: searchable emoji picker with wl-copy integration
- Scripts: run user scripts from ~/.config/owlry/scripts/

Filter prefixes: :sys, :ssh, :clip, :file, :bm, :emoji, :script

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:55:27 +01:00
98ac769b29 chore: bump version to 0.2.1 v0.2.1 2025-12-28 18:33:42 +01:00
e73793dd6e fix: web search not working in :web filter mode
Added evaluate_raw() method to WebSearchProvider and handler in
search_with_frecency() to support raw queries when using :web prefix.

Same pattern as calculator fix - trigger prefixes (?, web) call
evaluate() while filter mode (:web) calls evaluate_raw().

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:33:34 +01:00
e680032d0e feat: add web search provider and fix calculator
Web Search Provider:
- Type "? query" or "web query" to search the web
- Configurable search engine (duckduckgo, google, bing, startpage, etc.)
- Custom URL templates with {query} placeholder supported
- Opens browser via xdg-open

Calculator Fixes:
- Support "=5+3" without space (previously required "= 5+3")
- :calc mode now evaluates raw expressions directly
- Added looks_like_expression() for better detection

New config options:
- providers.websearch = true
- providers.search_engine = "duckduckgo"

UI updates:
- Added :web and :search prefixes
- Web badge with teal styling
- Updated hints bar to show "? web" syntax

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0.2.0
2025-12-28 18:22:57 +01:00
738fecc6da feat: add calculator provider and frecency tracking
Calculator:
- Type "= expression" or "calc expression" for instant math evaluation
- Supports standard math functions (sqrt, sin, cos, etc.) and constants (pi, e)
- Copies result to clipboard on Enter via wl-copy

Frecency:
- Firefox-style algorithm: score = launch_count * recency_weight
- Boosts frequently and recently launched items in search results
- Persists to ~/.local/share/owlry/frecency.json
- Configurable via providers.frecency and providers.frecency_weight

New config options:
- providers.calculator = true
- providers.frecency = true
- providers.frecency_weight = 0.3

UI updates:
- Added :calc prefix support
- Calculator badge with yellow styling
- Updated hints to show "= calc" syntax

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0.1.9
2025-12-28 17:17:46 +01:00
a1351f05e9 chore: bump version to 0.1.8 v0.1.8 2025-12-28 16:42:11 +01:00
7118498773 feat: add popular color scheme themes
Added themes:
- rose-pine
- dracula
- gruvbox-dark
- tokyo-night
- solarized-dark
- one-dark

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:42:10 +01:00
3d05e560b1 chore: bump version to 0.1.7 v0.1.7 2025-12-28 16:31:19 +01:00
604b902261 feat: add example themes (owl, catppuccin-mocha, nord)
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>
2025-12-28 16:31:18 +01:00
bb0b0dfa87 chore: bump version to 0.1.6 v0.1.6 2025-12-28 16:22:33 +01:00
fc4dde32eb docs: add example config location to README
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:22:32 +01:00
cc1ad7bbb7 chore: bump version to 0.1.5 v0.1.5 2025-12-28 16:16:40 +01:00
16ba5b642a docs: add example config and CLAUDE.md
- config.example.toml with all available options documented
- CLAUDE.md with release workflow instructions

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 16:16:31 +01:00
1608582cbd fix: detect dmenu mode correctly using fstat
Previously, poll() on /dev/null returned "readable" (EOF),
causing dmenu mode to trigger when launched from keybinds.

Now uses fstat() to check if stdin is a pipe or regular file
before checking for data. Character devices (TTY, /dev/null)
no longer trigger dmenu mode.

Fixes items not showing when launched from window manager keybinds.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0.1.4
2025-12-28 16:07:59 +01:00
34145d5fbe feat: add startup diagnostics for environment issues
- Log HOME, PATH, XDG_DATA_HOME at startup
- Warn when critical env vars are missing
- Log item count per provider after refresh

This helps diagnose why items may not load when launched
from window manager keybinds vs terminal.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0.1.3
2025-12-28 15:52:08 +01:00
e94eb2050c chore: bump version to 0.1.2 v0.1.2 2025-12-28 15:35:35 +01:00
254af3f0b2 feat: add uwsm/hyprland launch wrapper and fix CLI args
- 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>
2025-12-28 15:35:29 +01:00
884f871d7f docs: add AUR installation instructions
- 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>
2025-12-28 15:05:30 +01:00
43b30a54b3 chore: bump version to 0.1.1 v0.1.1 2025-12-28 15:00:57 +01:00
a81bacce10 chore: fix all compiler warnings
Add #[allow(dead_code)] to unused but potentially useful methods:
- config: save()
- filter: apps_only(), active_prefix()
- providers: name(), search(), is_dmenu_mode(), available_providers()
- dmenu: is_enabled()
- uuctl: ServiceState struct
- result_row: ResultRow struct

Prefix unused variables with underscore in main_window.rs

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 15:00:30 +01:00
26d8bab34d chore: update PKGBUILD to follow Rust guidelines, use b2sums 2025-12-28 14:49:39 +01:00
01f09b26ff fix: skip tag creation if tag already exists 2025-12-28 14:43:08 +01:00
0daacebca5 fix: handle same-version bump gracefully in justfile 2025-12-28 14:42:32 +01:00
f0f0d87313 chore: add justfile for build and AUR release automation
Recipes:
- build, release, run, test, check, fmt, clean
- show-version, bump, tag
- aur-update, aur-publish, aur-test
- release-full (complete release workflow)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0.1.0
2025-12-28 14:40:01 +01:00
d12e563397 chore: update repository URLs
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 14:35:06 +01:00
69fd503e8a docs: add README with badges and GPL-3.0 license
- 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>
2025-12-28 14:32:01 +01:00
00cfad6469 feat: implement proper GTK4 theming with CSS variables
- Use system GTK theme by default instead of custom owl theme
- Add base.css with structural styles and GTK theme fallbacks
- Rename style.css to owl-theme.css (now opt-in via config)
- Add ThemeColors struct for user color customization
- Create theme module for CSS variable generation
- Apply font_size and border_radius from config

CSS loading priority:
1. base.css - structure + GTK fallbacks
2. theme CSS - optional (owl or custom)
3. user style.css - custom overrides
4. config variables - highest priority

Config example:
  [appearance]
  theme = "owl"  # or omit for GTK default
  [appearance.colors]
  accent = "#f38ba8"

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 14:24:40 +01:00
2d3efcdd56 feat: initial owlry application launcher
Owl-themed Wayland application launcher with GTK4 and layer-shell.

Features:
- Provider-based architecture (apps, commands, systemd user services)
- Filter tabs and prefix shortcuts (:app, :cmd, :uuctl)
- Submenu actions for systemd services (start/stop/restart/status/journal)
- Smart terminal detection with fallback chain
- CLI options for mode selection (--mode, --providers)
- Fuzzy search with configurable max results
- Custom owl-inspired dark theme

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 14:09:24 +01:00