[Media] Built an application launcher to learn GPUI

254 points Zortax_ 28 comments
[Media] Built an application launcher to learn GPUI

Hi,

I wanted to checkout GPUI, the UI framework the zed developers created, so I built a little application launcher for Wayland. It is fast and has some cool features that go beyond launching applications.

At first I was a bit annoyed by the amount of boilerplate you write compared to frameworks like leptos or dioxus, but it actually felt quite intuitive after a while. The whole experience was actually quite nice and I kinda came to like the way state management works. Really cool how far GUI in rust has come over the last years (also looking forward to try Iced after their recent update, and dioxus' Blitz renderer once it is a bit more complete). I think we may actually be GUI soon...

The biggest annoyances I had while building this were:

  • GPUI isn't using the typical crates used in the rust UI ecosystem (winit, wgpu), leading to poor platform support regarding some more niche stuff (e.g. wlr layer shell windows are not supported in the version released on crates.io, querying monitors/displays not implemented on wayland, ...)
  • No documentations/guides (although reading through the source and just messing with it is honestly not the worst way to learn)

Also a big shout out to the gpui-component crate, which is what really makes GPUI a feasible choice.

You can find my project on GitHub if you wanna check it out (disclaimer: used LLM assistance and didn't have prior GPUI experience, just went for it, so probably not the best reference for GPUI usage).