← luna

Commit 9996291

2
files
+21
added
-10
deleted
@@ -77,8 +77,11 @@ Selene.
77 77 - `luna-panel` (bin) — render headless: `docs/images/luna-shell-{light,dark}.png`
78 78 oraz `docs/images/luna-launcher-{list,grid,carousel}.png`.
79 79 - `luna-shell` (bin) — powierzchnia „chrome” na żywo: burger otwiera/zamyka launcher,
80 - przełącznik widoku, **przewijanie listy**, klik w aplikację **uruchamia** ją, `Esc` zamyka;
81 - do tego **OSD** i **powiadomienia** (`osd.rs`, `notifications.rs`).
80 + przełącznik widoku, **przewijanie listy**, klik w aplikację **uruchamia** ją;
81 + **nawigacja klawiaturą** (strzałki poruszają zaznaczeniem, `Enter` uruchamia, `Esc` zamyka),
82 + do tego **OSD** i **powiadomienia** (`osd.rs`, `notifications.rs`) z ikonami pakietu.
83 +- **Galeria ikon**: `cargo run -p luna-demo --bin icons` → `docs/images/icons.png`
84 + (cały `IconName::ALL` z podpisami, motyw jasny i ciemny).
82 85 - **Prawdziwe aplikacje**: `apps.rs` skanuje pliki `.desktop` (`XDG_DATA_HOME`/`XDG_DATA_DIRS`),
83 86 parsuje `[Desktop Entry]` (nazwy lokalizowane po `LANG`), filtruje `NoDisplay`/`Hidden`;
84 87 podgląd: `cargo run -p luna --bin luna-apps`. Gdy brak `.desktop` — zestaw demo.
@@ -63,10 +63,13 @@ a na końcu odtworzył realne aplikacje środowiska Luna z makiet.
63 63 contain/cover/fill/fit-width/fit-height) i `MediaControls` (play/pauza + pasek postępu +
64 64 czasy); podgląd: `cargo run -p luna-demo --bin new-widgets` → `docs/images/new-widgets.png`.
65 65 - **Pakiet ikon symbolicznych** (`libluna-widgets::icon`): `IconName` + `paint_icon`,
66 - ~27 ikon rysowanych wektorowo w naszym stylu (Menu/Search/Files/Settings/Terminal/Music/
67 - Star/Clock/Store/Edit/Wifi/Volume/Battery/Power/Grid/List/Carousel/…). Renderer zyskał
68 - prymitywy: `fill_circle`, `stroke_circle`, `stroke_polyline`, `fill_polygon` (z zaokrąglonymi
69 - końcami). Ikony użyte w panelu i launcherze Luny (zamiast glifów fontu).
66 + 28 ikon rysowanych wektorowo w naszym stylu (Menu/Search/Files/Settings/Terminal/Music/
67 + Star/Clock/Store/Edit/Wifi/Volume/Battery/Power/Grid/List/Carousel/…). Zestaw jest
68 + **wyliczalny** (`IconName::ALL` + `IconName::name()`), a cały pakiet ma galerię-podgląd:
69 + `cargo run -p luna-demo --bin icons` → `docs/images/icons.png` (motyw jasny i ciemny).
70 + Renderer zyskał prymitywy: `fill_circle`, `stroke_circle`, `stroke_polyline`, `fill_polygon`
71 + (z zaokrąglonymi końcami). Ikony użyte w panelu, launcherze oraz w OSD i powiadomieniach
72 + Luny (zamiast glifów fontu).
70 73 Tokeny metryk kontenerów: `Theme::metrics.container`. Animacje: `libluna-core` `motion`
71 74 (`Easing`, `lerp`, `Animation`), użyte w `Stack` (przejścia `StackTransition`), `Revealer`,
72 75 `Toast`, `BottomSheet` i `Pager` (sterowane `advance(dt, …)`).
@@ -180,16 +183,21 @@ a na końcu odtworzył realne aplikacje środowiska Luna z makiet.
180 183 podglądów i sesji na żywo. ✅ **Prawdziwe aplikacje**: `apps.rs` skanuje pliki `.desktop`
181 184 (XDG), parsuje `[Desktop Entry]` z lokalizacją nazw i filtrowaniem `NoDisplay`/`Hidden`;
182 185 klik w pozycję uruchamia polecenie. Podgląd listy: `cargo run -p luna --bin luna-apps`.
186 + ✅ **Przewijanie** listy/siatki (scroll + klip zawartości). ✅ **Nawigacja klawiaturą**:
187 + strzałki (lista ±1, siatka kolumny/wiersze, karuzela karty), `Enter` uruchamia zaznaczoną
188 + pozycję, `Esc` zamyka; zaznaczenie automatycznie przewija się do widoku
189 + (`Launcher::navigate` + `ensure_selection_visible`).
183 190 ✅ **`luna-shell`** (bin) uruchamia panel jako prawdziwą **powierzchnię
184 191 warstwową** (`wlr-layer-shell` po stronie klienta w `libluna-platform`); bez kompozytora
185 192 kończy się czytelnym `NoCompositor`. ✅ **OSD** (`osd.rs`) i **powiadomienia** (`notifications.rs`)
186 - — pokazywane pod paskiem na powierzchni „chrome”. Dalej: usługa D-Bus
187 - `org.freedesktop.Notifications`, centrum powiadomień, menu kontekstowe, scroll w liście.
193 + — pokazywane pod paskiem na powierzchni „chrome”; oba korzystają z pakietu ikon
194 + (`IconName`) zamiast glifów tekstowych. Dalej: usługa D-Bus
195 + `org.freedesktop.Notifications`, centrum powiadomień, menu kontekstowe.
188 196
189 197 ## Później (poza MVP)
190 198 - Dostępność AT-SPI, IME, schowek, drag & drop, animacje, backend GPU, mini-CSS dla motywów.
191 -- Renderer: **klip nie obejmuje tekstu** (`DrawCommand::Text` ignoruje maskę) — naprawić,
192 - bo dotyczy `ScrollView` i innych przewijanych widoków.
199 +- Renderer: ✅ **klip obejmuje tekst** (`DrawCommand::Text` respektuje `ClipRect`) — naprawione,
200 + `ScrollView` i inne przewijane widoki przycinają też napisy.
193 201
194 202 ## Inwentarz widgetów (z makiet → moduł docelowy)
195 203