$ show vicinaehq/vicinae
Vicinae is a cross-platform desktop launcher and productivity tool written in modern C++20/23 with Qt6 and QML, inspired by Raycast. It provides a single keyboard-driven interface for launching applications, searching files, managing clipboard history, switching windows and workspaces, controlling media, running script commands, browsing fonts, picking emoji, and more. The system runs as a background server process with a CLI client, a file indexing subprocess, and a browser extension for tab management. It features a first-class extension system using TypeScript and Node.js, a custom fuzzy search library, an XDG desktop entry parser, encrypted clipboard storage, and deep platform integration for Linux (Wayland/X11, GNOME, KDE, Hyprland), macOS, and Windows. The architecture is modular with abstract service backends and a service registry for dependency injection.
The LLM identified 6 files worth highlighting for reuse:
A template-based fuzzy search scorer that implements the FZF algorithm with weighted field scoring, diacritic normalization, cross-script transliteration, coherence scoring, and quality gating. It is self-contained with no internal dependencies and can be extracted for use in any C++ project requiring advanced fuzzy matching.
A robust, standard-compliant parser for freedesktop.org .desktop files, handling groups, localized keys, actions, exec field parsing, and validation. Includes its own MIME type association handling, locale resolution, and file URI parsing. Fully tested and compiler-independent.
A comprehensive emoji and glyph database generated from Unicode 17.0, CLDR 48.2.0, and Emoji 17.0 data. Provides emoji properties (skin tones, categories, keywords), segmentation, and presentation scanning. The generation scripts are included, making it easy to regenerate for future Unicode versions. Reusable in any application needing emoji support.
A parser for script command metadata embedded in shebang-like comments supporting multiple comment styles (#, //, --, ;), argument validation, interval specification, output modes, and concurrency limits. It is self-contained with no external dependencies beyond the C++ standard library and can be reused to extract structured metadata from script files.
A cross-platorm AES-256-GCM encryption implementation with platform-specific backends (OpenSSL, CNG on Windows, CryptoKit on macoS, Apple CommonCrypto). Verifed against known-answer tests. Provides simple enrypt/decrpt interface and key derivation via HKDF-SHA256. Reusable for any application requiring encryptred local storage.
A compact JSON-RPC 2.0 protocol implementation using the glaz library for serialization. Defines request, response, notification types, and helper functions for building and parsing messages. Self-contained with ony a dependency on glaz, making it reusable for inter-process communication in other Qt or generic C++ projects.