tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 660Markdown 302TOML 157RON 312382 Sutichaykuna

⎇ main llimphi-layer/README.md Markdown · 30 siq'ikuna · 1.1 KB Ñawpa willay ch'uya

chore: refresco desde el monorepo — 27 crates nuevos (anim, lottie, svg, mesh, image, layer, test, wire-view, widgets rag-sidebar/router/lazy-list/rive-button) y sync de los 95 existentes 93253cc22 · Sergio ·

1# llimphi-layer
2
3Runs a Llimphi `App` as a **wlr-layer-shell surface** (a bar anchored to an edge)
4rather than as a window.
5
6It lets an app sit at the level of eww/waybar on any wlroots compositor (mirada,
7Hyprland, Sway, river…): it anchors to an edge, declares an optional *exclusive
8zone* — the compositor reserves the strip and tiles the rest — and paints itself
9reusing Llimphi's pipeline (`mount → compute → paint → render`).
10
11It is the `smithay-client-toolkit` + `wgpu` plumbing that `pata` proved in
12production, extracted into a **generic** runner over the `App` trait. Unlike pata
13(N surfaces + tray/dock/sidebar/…), this runs **one** surface and no domain
14logic: the app provides `view`/`update`/`on_key` and this crate lends it the
15edge. Useful, for instance, to dock `shuma` as a bar.
16
17```ignore
18struct MyBar;
19impl llimphi_ui::App for MyBar { /* … */ }
20llimphi_layer::run::<MyBar>(llimphi_layer::LayerConfig {
21    edge: llimphi_layer::Edge::Bottom,
22    thickness: 40,
23    keyboard: llimphi_layer::Keyboard::OnDemand,
24    ..Default::default()
25})?;
26```
27
28---
29
30Part of **llimphi** — see [llimphi](../README.md).

README.md

llimphi-layer

Runs a Llimphi App as a wlr-layer-shell surface (a bar anchored to an edge) rather than as a window.

It lets an app sit at the level of eww/waybar on any wlroots compositor (mirada, Hyprland, Sway, river…): it anchors to an edge, declares an optional exclusive zone — the compositor reserves the strip and tiles the rest — and paints itself reusing Llimphi's pipeline (mount → compute → paint → render).

It is the smithay-client-toolkit + wgpu plumbing that pata proved in production, extracted into a generic runner over the App trait. Unlike pata (N surfaces + tray/dock/sidebar/…), this runs one surface and no domain logic: the app provides view/update/on_key and this crate lends it the edge. Useful, for instance, to dock shuma as a bar.

struct MyBar;
impl llimphi_ui::App for MyBar { /* … */ }
llimphi_layer::run::<MyBar>(llimphi_layer::LayerConfig {
    edge: llimphi_layer::Edge::Bottom,
    thickness: 40,
    keyboard: llimphi_layer::Keyboard::OnDemand,
    ..Default::default()
})?;

Part of llimphi — see llimphi.