About this project

Lunchbox is a cross-platform application designed as a game browser, collection manager, and emulator frontend. Built using Rust with CXX-Qt and QML, it offers a native desktop experience distinct from its previous Electron-based legacy version. The software follows an "acquisition-first" architecture, prioritizing the management and retrieval of game collections alongside emulation capabilities. Key features include: - **Native Qt Frontend**: Utilizes Rust and QML for high performance and native look-and-feel across Windows, macOS, and Linux. It supports virtualized views for large libraries, accelerated scrolling, and persistent state management including window placement and filters. - **Couch Mode**: A fullscreen, keyboard-and-gamepad optimized interface for living-room use on televisions. It preserves game selection across restarts, supports platform and collection pickers, and includes an Attract Mode for idle displays. It also handles cached media playback and theme customization via declarative `.lunchbox-theme` packages. - **Game Management & Acquisition**: Integrates with qBittorrent for downloading games via torrents or magnets. It supports the Minerva bundle index for curated acquisitions and allows users to add custom torrent sources. The system reviews file selections before download, handles multi-disc sets, and manages import processes with pause, resume, and retry capabilities. - **Metadata & Library Tools**: Provides extensive metadata editing for titles, descriptions, genres, and custom fields. It can fetch online metadata from IGDB or ScreenScraper with user review. Features include smart collections based on tags and rules, region/version handling for regional releases, and a "More Like This" recommendation engine. - **Emulator Integration**: Discovers installed standalone emulators (like RetroArch, DOSBox, MAME) and cores. It supports complex launch configurations, including eXoDOS/eXoWin3x/eXoWin9x archives which are prepared and cached locally. It handles various media types including laserdisc (Hypseus/Daphne) and arcade systems. - **Controller Support**: Uses GilRs for cross-platform controller input, supporting hotplugging, analog dead zones, and remapping. It includes a layout-rule solver for calibrated emulator mappings across different hardware layouts. - **Settings & Portability**: Allows configuration of ROM storage, torrent clients, and media providers. Supports exporting portable `.lunchbox-profile` backups that include collection state and themes, excluding sensitive data like ROMs and secrets. Profiles are validated upon restore to ensure integrity. The application separates catalog identity from acquisition offers, ensuring that downloaded content does not alter the core library structure unless explicitly managed by the user. It aims to provide a robust, secure, and feature-rich environment for PC gaming enthusiasts.