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