gpui-conventionslisted
Install: claude install-skill qol-tools/qol-skills
# GPUI Knowledge Base
Bespoke documentation for gpui, built through hands-on exploration.
## Resources
- [gpui.rs](https://www.gpui.rs/) - Official site
- [docs.rs/gpui](https://docs.rs/gpui) - API docs
- [Zed gpui crate](https://github.com/zed-industries/zed/tree/main/crates/gpui) - Source of truth
- [gpui-component](https://github.com/longbridge/gpui-component) - component library
- [WindowOptions docs](https://docs.rs/gpui/latest/gpui/struct.WindowOptions.html)
## Project Setup
Copy the GPUI dependency declarations from the nearest maintained workspace
consumer, preferably `libs/qol-gpui/Cargo.toml`. `Cargo.toml` and `Cargo.lock`
own the selected versions; do not pin a second copy in this skill.
Requires: Rust stable, macOS or Linux.
### Linux Dependencies (Ubuntu/Debian)
```bash
sudo apt install gcc g++ libasound2-dev libfontconfig-dev libwayland-dev \
libx11-xcb-dev libxkbcommon-x11-dev libssl-dev libzstd-dev libvulkan1 \
libgit2-dev make cmake clang mold libstdc++-14-dev
```
## Minimal Window
```rust
use gpui::*;
actions!(launcher, [Quit]);
struct MyView;
impl Render for MyView {
fn render(&mut self, _window: &mut Window, _cx: &mut Context<Self>) -> impl IntoElement {
div()
.size_full()
.bg(rgb(0x1e1e2e))
.child("Hello gpui")
}
}
fn main() {
Application::new().run(|cx: &mut App| {
cx.bind_keys([KeyBinding::new("escape", Quit, None)]);
cx.on_action(|_: &Quit, cx: &mut App| cx.qu