Releases: chmouel/raffi
v0.21.0
Raffi v0.21.0 introduces automatic desktop application detection, configurable sort modes, and powerful new capabilities for script filters, including search fallbacks and live autocomplete. It also features significant internal refactoring of the Wayland UI and a new zero-cost debug logging system.
🚀 Features
- Desktop App Auto-Detection: Automatically scans installed desktop applications (via
.desktopfiles) to provide a default list of launchers when no valid configuration is found, enabling immediate use after installation (#168). - Sort Modes: Added a
sort_modeconfiguration option (frequency,recency, orhybrid) for launcher entries. The MRU cache now tracks usage timestamps to support this and migrates automatically. - Search Fallbacks: Introduced a
fallbacksgeneral setting to display specified web searches or script filters at the bottom of the results list. These can execute commands and parse outputs directly from the native UI. - Script Filter Enhancements:
- Added support for passing environment variables (
env) to script processes. - Added
min_query_lengthto prevent execution until a sufficient number of characters are typed, accompanied by a helpful UI prompt. - Included a new live search script (
scripts/search/search.py) that queries configuration files and provides DuckDuckGo autocomplete suggestions.
- Added support for passing environment variables (
- CLI Improvements: Added short CLI flags for config location (
-c), print-only mode (-p), and cache refresh (-r). Also added a--debug-file=FILEflag to activate timestamped debug logging.
🧹 Maintenance / Refactoring
- Wayland UI Modularization: Extracted the monolithic Wayland UI file into a dedicated subdirectory, organizing the logic into maintainable modules (actions, app, browser, currency, emoji, etc.).
- Developer Documentation: Added
AGENTS.mdto detail project workflows andDESIGN.mdto explain internal system structure, configuration models, and runtime behaviors. - Testing: Removed unnecessary reference dereferencing in test assertions to ensure compatibility with updated trait implementations.
- Documentation: Fixed formatting and adjusted aside block placements in the quickstart guide.
📦 Dependencies
- Updated Rust dependencies to their latest versions, including major updates for
jni,read-fonts,thiserror,ureq(to 3.3.0), andschemars(to 1.2.1). - Bumped GitHub Actions for the website deployment workflow (
setup-nodev6,deploy-pagesv5,upload-pages-artifactv4).
Contributors
- @chmouel
- @dependabot[bot]
v0.20.0
This release introduces a new configuration format with automatic legacy migration, JSON Schema generation for enhanced editor support, and the launch of a comprehensive new documentation website.
The change will be made automatically, it basically move the entries to launchers like this diff, and add a version: 1 field
There is a brand new documentation website at https://chmouel.github.io/raffi
🚀 Features
- Configuration v1 & Auto-Migration: Launcher entries are now grouped under a dedicated
launcherskey in the YAML file to improve structure. Legacy (v0) configurations are automatically migrated to this new format upon startup, and a backup of the original file is preserved. - JSON Schema Generation: Added automated JSON Schema generation for the configuration file, enabling editor autocompletion, hover documentation, and validation. The schema is automatically generated in the config directory, and can be printed directly using the new
--schemaCLI flag. - Enhanced Conditional Logic: Entries now support defining multiple visibility conditions at once (e.g., combining
ifexistandifenvset). Multiple conditions on a single entry are evaluated together using AND logic. - New Documentation Website: Launched a fully-featured documentation website built with Astro and Starlight, featuring quick starts, configuration schemas, UI previews, and integration guides. It is automatically built and deployed to GitHub Pages via a new GitHub Actions workflow.
🧹 Maintenance / Refactoring
- Configuration Standardization: Removed support for absolute paths and path expansion in the
binaryandiconconfiguration fields to simplify and standardize configuration handling. - CLI Consistency: Renamed the
--disable-iconsCLI flag to--no-iconsto align perfectly with the corresponding YAML configuration key. - README Overhaul: Streamlined the project README to focus on high-level features and use-cases, added the project logo, and migrated detailed configuration references to the new external documentation site.
- Developer Guidelines: Added a
CLAUDE.mdfile to instruct developers and AI assistants on updating documentation and configuration examples alongside code changes.
📦 Dependencies
- Added
schemarsto support automated JSON Schema generation from Rust structs. - Added various Node.js dependencies (
astro,@astrojs/starlight,sharp) to build and power the new documentation website.
Contributors
v0.19.0
Raffi v0.19.0 introduces a powerful new Emoji and Nerd Fonts picker addon, dynamically sourcing data from the rofimoji project, alongside UI performance enhancements and CI dependency updates.
🚀 Features
- Emoji & Nerd Fonts Picker: Added a built-in fuzzy-matching picker for Unicode emojis and Nerd Fonts v3 icons. It supports customizable actions (copy, insert, or shell commands) and is enabled by default.
- Dynamic Data Loading: The emoji picker now automatically downloads and caches dataset files from the
rofimojiproject directly into$XDG_CACHE_HOME/raffi/emoji/. - Configurable Datasets: Users can specify exactly which emoji and icon sets to load via the new
data_filesoption underaddons.emoji. - Cache Management: Added a
--refresh-cacheCLI flag to easily force a re-download of the cached emoji and icon data files.
⚡ Performance Improvements
- Search Responsiveness: Greatly improved UI rendering speed and reduced memory allocations during emoji fuzzy-matching by capping displayed results to 50 items and reusing internal matchers.
🧹 Maintenance
- Standardized build processes in the
Makefileby adding defaultbuildandsanitytargets, and fixed coverage output directory casing.
📦 Dependencies
- Bump
actions/download-artifactfrom v7 to v8. - Bump
actions/upload-artifactfrom v6 to v7.
Contributors
- @chmouel
- @dependabot[bot]
v0.18.1
Releasing version v0.18.1
v0.17.0
Releasing version v0.17.0
v0.16.0
Changelog
v0.15.0
Changelog
v0.14.0
Changelog
v0.13.0
Changelog
- 01c9634: chore(deps): bump anyhow from 1.0.100 to 1.0.101 (@dependabot[bot])
v0.12.0
Changelog
- 6ef33b5: chore(deps): bump serde_json from 1.0.148 to 1.0.149 (@dependabot[bot])
- 28fe511: feat: Add currency conversion functionality (@chmouel)