Loungy is a WIP launcher in the vein of Spotlight, Alfred, Raycast.
loungy.mov
Mostly as a learning/hobby project. It isn't (yet) intended to be used outside of experimentation. I got the idea while writing a Raycast plugin and getting frustrated with their limitations.
Initially I wrote it using Tauri as I am familiar with web technologies, but quickly got fed up with moving info from rust side to the webview. Around the same time the awesome folks from Zed open sourced GPUI, which is a Rust based GPU accelerated application framework. It instantly intrigued me due to its Tailwind CSS inspiration.
Loungy wouldn't be possible without the awesome open source ecosystem:
- GPUI : The lovely framework
- Numbat : Used as the calculator
- Lucide : Amazing open source SVG icon-set
- Catppuccin : The theme that makes everything look good
- swift-rs : For providing a way to interface with accessibility APIs and other MacOS native stuff that I wouldn't know how to do with pure Rust
- nucleo : Fuzzy searcher implemented by the team of my favorite modal editor Helix
- Launching apps
- Calculator (including unit/currency/date conversions, thanks to Numbat)
- Task manager (killing processes)
- MacOS menu search
- Tailscale peer list
- Bitwarden password client (only viewing, not editing)
These features exist in the old Tauri based app and will be ported soon:
- Matrix Chat client
- Xcode Apple Swift 5.9.2
- Rust v1.75.0
cargo run dev
- It is MacOS only, but I would love to support a Linux build in the future. That won't happen until GPUI adds Linux support.
- Accessibility is still a nightmare. GPUI is lacking a proper accessible text input so currently I am implementing one myself. Screen readers or people with impairments please don't try to use this yet.
The window position is currently hardcoded, so depending on your screen resolution it might not be in the best position. Will be fixed as soon as there is an API for it in GPUI.I kinda fixed this, but it's probably still wonky on multi display setups.The hotkey is currently hardcoded toHotkeys are now rebindable, but it's still a bit sketchy since GPUI doesn't report raw keycodes, while the Tauri hotkey manager uses raw keycodes. To rebind you can simple select any command in the root search and use theOpt+Ctrl+Cmd+Space
Change Hotkey
action.
In the absence of a proper extension system (which is wanted, but still quite far out at this point) I am adding features I need, but that aren't universally useful behind cargo feature flags.
So far there is tailscale
and bitwarden
.
Experimental Linux support. Building requires (on Fedora Wayland):
openssl-devel
wayland-devel
g++
fontconfig-devel
libxcb-devel
libxkbcommon-x11-devel
libxkbcommon-devel