Stryde - fast app launcher for Linux (0.1-0.2s launch, ~35MB RAM)

Renamed from Flux to Stryde

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

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 (Already did it)

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/dest-lab/stryde

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

Hope you have an awesome day!

61 points · 18 comments · view on lemmy.world

18 Comments

BB_C@programming.dev · 10 pts · 252d (1 reply)

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.
victorz@lemmy.world · 2 pts · 251d

I don't know any Rust yet but this sounds believable af.

thagoat@lemmy.dbzer0.com · 9 pts · 253d (3 replies)

Gave it a whirl, on Arch with wayland, but I kept getting a panic error. 1000004101

mxghj@programming.dev · 4 pts · 252d (2 replies)

Maybe i fixed it, try again

thagoat@lemmy.dbzer0.com · 5 pts · 252d (1 reply)

It's working now, I'll spend some time with it this week. So far, it seems stable and it responds to my keyboard shortcut. Has run everything I've searched for, and hasn't crashed.

That's all in about 5 minutes of testing, but I'll give it another review in a few dyas when I've had more time to put it through some paces.

Good work so far!

mxghj@programming.dev · 1 pts · 252d

Thanks :), i have a few questions does it also consume ~30 mb of ram? and does it start up quickly?

madmo@programming.dev · 9 pts · 253d (1 reply)

Nice project, I really like the minimal design!

I also experienced a panic on image load.

My rule of thumb for error handling: try to avoid unwrap. Use expect with a nice error message. And only use expect for stuff that should never fail. And bubbling up the errors to the top with ? is also useful.

mxghj@programming.dev · 1 pts · 252d

Thanks i will fix that rn

SlurpingPus@lemmy.world · 8 pts · 252d (1 reply)

Unfortunately, there's already popular software called ‘flux’, or rather ‘f.lux’: the one that turns the screen redder in the evening to mirror the natural light. It's the app that did it first, predating this function in the OSes, and still doing it better than most ‘native’ implementations.

mxghj@programming.dev · 2 pts · 252d

Thank you, i will change the name

mxghj@programming.dev · 2 pts · 252d (2 replies)

Guys, do you have any ideas for a name?

mxghj@programming.dev · 2 pts · 252d

I thought about it and came up with the name Rover or Stride, what do you think guys?

caseyweederman@lemmy.ca · 2 pts · 252d

Solder
Rosin Core
Tinned
SMC

pineapple@lemmy.ml · 2 pts · 252d

Yes I need this! Krunner is so slow.

hdzki@lemmy.ml · 1 pts · 251d (3 replies)

How does this compare to anyrun?

mxghj@programming.dev · 1 pts · 251d (1 reply)

There is one disadvantage and one advantage flux consumes 30-40 MB of RAM but has 0-3% CPU usage, while Anyrun consumes ~160 MB of RAM but has 0-1% CPU usage.

BB_C@programming.dev · 2 pts · 250d

With GPU rendering, you should learn about GPU processing and memory usage too, not that it would matter much for such a use-case.

nvtop is nice for displaying all that info (it's not nvidia-specific).

Also % CPU usage is not a good metric, especially when most people forget to set CPU frequencies to fixed values before measuring. And heterogenous architectures (e.g. big.LITTLE) make such numbers meaningless anyway (without additional context). But again, none of this really matters in this use-case.

mxghj@programming.dev · 1 pts · 251d

Flux can also be customized but need to change colors in app code

there is an catppuccin frappe example