[Media] I built an orbital app launcher with Rust and egui to learn the language. Feedback on my code would be much appreciated!

52 points Xhelgi 11 comments
[Media] I built an orbital app launcher with Rust and egui to learn the language. Feedback on my code would be much appreciated!

Hey everyone!

I’ve been learning Rust for a little while now, and I decided to build something practical to get a better handle on the ecosystem.

The project is called Hring. It's a radial/orbital application launcher for Linux. I wanted something that felt more "organic" for my i3wm setup.

Technical bits:

  • GUI: Built with egui (Immediate mode was surprisingly fun to work with).
  • Concurrency: I used std::sync::mpsc to move the search/filtering logic to a background thread. This keeps the UI smooth even with many .desktop files.
  • Config: Handles application grouping via serde_json.

The Repo: https://github.com/Xhelgi/hring

I know the code might not be 100% idiomatic yet (it's my first "real" project), so if you have time to glance at the repository and point out where I can improve my Rust-fu, I’d be super grateful.

Currently, it's quite experimental (no icon support yet, and the UI can get messy if you add too many apps), but it's been a great learning experience.

What do you think about the radial approach for a launcher?