The legendary way to manage applications on LegendaryOS.
A native Flatpak software center built in Rust + Slint, designed exclusively for
LegendaryOS — the immutable Fedora-based distribution using bootc and Flatpak
as the primary user-space app delivery mechanism.
Dark retrowave aesthetic with magenta/violet palette inspired by the LegendaryOS phoenix logo. Full sidebar navigation, app grid, detail panel, and install progress toast.
| Feature | Details |
|---|---|
| 🔍 Search | Real-time filtering across name, summary, developer, category |
| 📁 Categories | Internet, Multimedia, Graphics, Office, Development, Games, Tools |
| ⊕ Install | One-click Flatpak install from Flathub with live progress toast |
| ⊗ Remove | Uninstall apps with confirmation |
| ⊞ Installed | View only your installed apps |
| ⟳ Updates | See which apps have updates available |
| ◈ Detail panel | Slide-in panel with full metadata, description, flatpak ID |
| 🎨 UI | Retrowave dark theme — black, magenta #d946ef, violet #7c3aed, blue #3b82f6 |
legendary-store/
├── Cargo.toml
├── build.rs # compiles Slint UI
├── ui/
│ └── store.slint # All UI components (single file)
└── src/
├── main.rs # Entry point, callback wiring
├── app_data.rs # Static catalog + category definitions
├── flatpak.rs # Async flatpak CLI integration
└── store_model.rs # State management + Slint bridge
- Rust — safe, fast systems language
- Slint — native UI toolkit with
.slintDSL (GPU-accelerated, no Electron) - Tokio — async runtime for non-blocking flatpak subprocess calls
- Flatpak CLI — app install/remove/update via
flatpaksubprocess
- LegendaryOS (Fedora + bootc) or any Fedora-based system
flatpakinstalled andflathubremote configured- Rust toolchain (
rustup) ≥ 1.77 - GPU with OpenGL/Vulkan for Slint rendering
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/envflatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo# Clone / enter the project
cd legendary-store
# Debug build + run
cargo run
# Optimised release build
cargo build --release
./target/release/legendary-store| Component | Purpose |
|---|---|
MainWindow |
Root window, holds all state properties |
TopBar |
Header with logo, installed count, updates badge |
SidebarItem |
Individual nav item with active indicator |
AppCard |
Grid card: icon, name, rating, badges, action button |
DetailPanel |
Slide-in right panel with full app info |
SearchBar |
Styled text input with live clear button |
StarRating |
Pixel-style 5-star rating row |
Badge |
Glowing pill label (category, size) |
AppIcon |
Letter-based icon placeholder with glow |
ProgressToast |
Floating install progress overlay |
Edit src/app_data.rs → builtin_catalog() to add more apps.
Each AppRecord needs: flatpak_id, name, category, icon_letter, icon_color_hex.
Future: pull live metadata from the Flathub API.
| Token | Hex | Usage |
|---|---|---|
| Background | #080310 |
Window background |
| Surface | #0a0412 |
Sidebar, topbar |
| Card | #120820 |
App cards |
| Border | #2a1040 |
Dividers, inactive borders |
| Primary | #7c3aed |
Violet — primary accent |
| Hot | #d946ef |
Magenta — CTAs, glows |
| Blue | #3b82f6 |
Info badges, flatpak icon |
| Text | #f0e6ff |
Primary text |
| Muted | #9980c4 |
Secondary text |
| Dim | #6b4a9e |
Tertiary / metadata |
GPL 3.0 © LegendaryOS Team