Hello everyone! I decided to create an application launcher inspired by Raycast, but for Linux - Flux

I built the first version in 4-5 days and wanted to share it with you to get feedback, both good and bad.

Some highlights:

~0.1-0.2s opening time

~35MB RAM usage

Written in Rust using the Iced GUI framework

Instant search filtering

Supports Breeze, Papirus, and Adwaita icon themes

Works with system apps, user apps, and Flatpaks

Current features in v0.1:

Search and launch applications

Press Enter or click to open apps

ESC to close

Caching

Planned for v0.2:

Arrow key navigation

Built-in calculator for math expressions

More customization options

I’m 14 and this is my first major open-source project. I’d love to hear your feedback on features, performance, code quality, or any bugs you find.

Github: https://github.com/mxghj/Flux

Tested on Arch Linux with Hyprland, should work on most distros

Hope you have an awesome day!

  • BB_C@programming.dev
    link
    fedilink
    arrow-up
    7
    ·
    1 day ago

    A quick shallow look.

    • Avoid single hard paths. Provide fall-backs. Make them all configurable. Use xdg (properly)…etc.
    • Avoid .unwrap() or any source of panic!() for non-fatal things that can actually fail.
    • Make non strictly necessary fields optional in you model, if that helps.
    • Use .filter_map() and .collect() in your parsing code, instead of all the matches and continues in a for loop. You can use .ok()? to early-return with None on errors.
    • And finally, since you’re micro-benchmarking, try speedy or borsh instead of bincode, unless you need the serde compat for some reason.