← PaganDE

Commit 2598d29

0
plików
+0
dodanych
-0
usuniętych
@@ -1,439 +0,0 @@
1 -# PaganDE
2 -
3 -> Lekkie, **spójne** środowisko graficzne Wayland dla PaganOS — jeden język
4 -> wyglądu (Catppuccin Mocha), **własne dekoracje okien** rysowane serwerowo
5 -> przez nasz fork labwc oraz **panel ustawień systemu i środowiska**
6 -> wkomponowany w całość.
7 -
8 -Ten dokument opisuje docelowy kształt środowiska: jego architekturę,
9 -komponenty, spójność wizualną i plan panelu ustawień. Projekt powstaje **od
10 -zera w tym katalogu** (`PaganBuild/PaganDE` — struktura: [§ 10](#10-struktura-repozytorium-i-workflow));
11 -historyczna implementacja wzorcowa żyła w `budowanie/paganDE/`
12 -i służy jako referencja.
13 -
14 -
15 -## 1. Wizja i cele
16 -
17 -- **Kompletne i działające od pierwszej minuty** — jeden meta-pakiet `pagande`
18 - ciągnie cały stack: kompozytor, pasek, launcher, powiadomienia, terminal,
19 - tło, blokadę, dźwięk, sieć i uprawnienia.
20 -- **Własne dekoracje okien** — kompozytor to nasz fork labwc
21 - (`labwc-pagan`), który rysuje **serwerowe dekoracje (SSD)** z naszego motywu
22 - `Catppuccin-Mocha` (themerc + autorskie przyciski XBM). Każde okno wygląda
23 - „po naszemu" — niezależnie od toolkitów aplikacji.
24 -- **Spójność wizualna** — jedna paleta w każdym elemencie: dekoracje okien,
25 - pasek waybar, launcher rofi, powiadomienia mako, terminal foot, aplikacje
26 - GTK. Akcent Blue `#89b4fa`, typografia Cantarell.
27 -- **Panel ustawień systemu i środowiska** — jedno spójne okno, w którym
28 - użytkownik zmienia wygląd, tło, monitory, audio, sieć, klawiaturę,
29 - zasilanie i informacje o systemie ([§ 8](#8-panel-ustawień-systemu-i-środowiska)).
30 -- **Czysty, natywny Wayland** — obraz budowany **bez XWayland**
31 - (`-Dxwayland=disabled`), bez ciężkich frameworków; lekkość to cecha, nie
32 - przypadek.
33 -- **Reprodukowalny build** — kompozytor (`labwc-pagan`) i fundament
34 - (`wlroots-pagan`) budowane z własnych źródeł w repo — forki, build bez
35 - sieci; reszta z receptur `PAGBUILD`; całość instalowana jednym wyborem w
36 - `build-pagan.sh`.
37 -- **Niezależność od upstreamu (fork-first)** — wszystko, co definiuje
38 - środowisko i co realnie utrzymamy, robimy **naszym forkiem**: źródła w
39 - repo, wersja `-pagan`, build z lokalnych źródeł bez sieci; reszta zostaje
40 - stockiem z pinowaną wersją i naszymi configami
41 - ([§ 5](#5-niezależność-od-upstreamu-polityka-forków)).
42 -
43 -
44 -## 2. Architektura
45 -
46 -```mermaid
47 -flowchart TD
48 - P["Panel ustawień systemu i środowiska — spójne okno sterujące warstwami poniżej"]
49 - SH["Powłoka: waybar (pasek) · rofi (launcher) · mako (powiadomienia) · swaybg (tło) · swaylock (blokada)"]
50 - AP["Aplikacje GTK: foot (terminal) · thunar (pliki) — motyw Catppuccin + ikony Papirus"]
51 - CO["Kompozytor labwc-pagan: pływające okna · dekoracje serwerowe SSD · motyw okien Catppuccin-Mocha"]
52 - SV["Usługi: PipeWire · NetworkManager (+nm-applet) · polkit-gnome · xdg-desktop-portal · kanshi"]
53 - FW["Fundament: wlroots · Wayland · libinput · mesa · systemd"]
54 -
55 - P --> SH
56 - SH --> CO
57 - AP --> CO
58 - CO --> SV
59 - SV --> FW
60 -```
61 -
62 -Warstwy, od interakcji użytkownika po sprzęt:
63 -
64 -| Warstwa | Odpowiada za | Konfiguracja |
65 -| --- | --- | --- |
66 -| **Panel ustawień** | spójny dostęp do ustawień systemu i środowiska | własne okno GTK (propozycja: `pagande-settings`) |
67 -| **Powłoka** | codzienna praca: pasek, uruchamianie, powiadomienia, tło, blokada | `~/.config/{waybar,rofi,mako,swaybg…}` |
68 -| **Aplikacje** | praca użytkownika (GTK z motywem Catppuccin) | `~/.config/gtk-3.0/` + portale XDG |
69 -| **Kompozytor** | okna, dekoracje SSD, motyw okien, skróty, pulpity | `~/.config/labwc/rc.xml` + motyw w `/usr/share/themes` |
70 -| **Usługi** | dźwięk, sieć, autoryzacja, integracja aplikacji, monitory | demony + agenty sesji (autostart) |
71 -| **Fundament** | kompozycja scen, input, GPU | pakiety systemowe |
72 -
73 -Sesję startuje `pagande-session` (wpis `wayland-sessions`): ustawia
74 -`XDG_CURRENT_DESKTOP=PaganDE:wlroots`, przy pierwszym logowaniu rozkłada
75 -domyślne konfiguracje z `/etc/xdg/pagande` do `~/.config`, startuje
76 -PipeWire/Wireplumber i przechodzi w `exec labwc` — resztę wstaje plik
77 -`labwc/autostart`.
78 -
79 -
80 -## 3. Komponenty środowiska
81 -
82 -| Warstwa | Komponent | Pakiet (repo/Arch) | Rola |
83 -| --- | --- | --- | --- |
84 -| Kompozytor | `labwc-pagan` | nasz fork labwc 0.20.2 | okna pływające, dekoracje SSD, motywy, skróty, 2 pulpity |
85 -| Powłoka | waybar | `waybar` | górny pasek: menu, pasek zadań (wlr/taskbar), zegar, CPU/RAM, audio, tray |
86 -| Powłoka | launcher | `rofi` | menu aplikacji (`rofi -show drun`), motyw catppuccin-mocha |
87 -| Powłoka | terminal | `foot` | emulator terminala, paleta Catppuccin Mocha w `foot.ini` |
88 -| Powłoka | powiadomienia | `mako` | powiadomienia `notify-send`, zaokrąglone, akcent Blue |
89 -| Powłoka | tło pulpitu | `swaybg` | domyślnie kolor base `#1e1e2e`, opcjonalnie obraz PNG |
90 -| Powłoka | blokada ekranu | `swaylock` | blokada pod `Super+L` i z menu |
91 -| Usługa | monitory | `kanshi` | automatyczne profile monitorów (układ, tryby, skalowanie) |
92 -| Usługa | dźwięk | `pipewire` + `pavucontrol` | sesyjne audio; miksowanie i wybór wyjścia z paska (klik w głośność) |
93 -| Usługa | sieć | `network-manager-applet` | tray sieci (Wi-Fi / połączenia) |
94 -| Usługa | uprawnienia | `polkit-gnome` | monity o hasło dla akcji systemowych (GUI) |
95 -| Usługa | integracja | `xdg-desktop-portal` + `-gtk` | otwieranie plików, domyślne aplikacje, udostępnianie ekranu |
96 -| Aplikacja | pliki | `thunar` + `thunar-archive-plugin` | menedżer plików; archiwa z menu kontekstowego |
97 -| Wygląd | motyw GTK | `catppuccin-gtk-theme` | `Catppuccin-Mocha-Standard-Blue-Dark` dla aplikacji |
98 -| Wygląd | ikony | `papirus-icon-theme` | `Papirus-Dark` (pasek, launcher, aplikacje) |
99 -| Wygląd | czcionka / kursor | `cantarell-fonts`, `xcursor-dmz` | UI: Cantarell; kursor: DMZ-Black |
100 -
101 -Domyślne konfiguracje wszystkich komponentów żyją w źródle prawdy
102 -(`config/`) i są rozkładane przez sesję do `~/.config` tylko wtedy, gdy
103 -użytkownik nie ma własnych:
104 -
105 -```
106 -config/labwc/ rc.xml · menu.xml · autostart · environment · shutdown
107 -config/theme/Catppuccin-Mocha/ themerc + przyciski XBM (dekoracje okien)
108 -config/waybar/ config + style.css (pasek)
109 -config/rofi/ config.rasi + themes/catppuccin-mocha.rasi
110 -config/mako/ config
111 -config/foot/ foot.ini
112 -config/kanshi/ config
113 -config/gtk-3.0/ settings.ini
114 -```
115 -
116 -
117 -## 4. Własne dekoracje okien
118 -
119 -PaganDE ma **kompletnie własny wygląd okien** — to nasz wyróżnik. Kompozytor
120 -rysuje dekoracje po stronie serwera (`<decoration>server</decoration>` w
121 -`rc.xml`), więc każda aplikacja — GTK, Qt, terminal, launcher, panel — dostaje
122 -identyczne, nasze ramki, pasek tytułu i przyciski, bez udziału aplikacji.
123 -
124 -**Motyw `Catppuccin-Mocha`** (`config/theme/Catppuccin-Mocha/`, w systemie
125 -instalowany do `/usr/share/themes/`):
126 -
127 -- płaska ramka **1 px** — aktywna Blue `#89b4fa`, nieaktywna `#313244`;
128 -- pasek tytułu — aktywny mantle `#181825`, nieaktywny crust `#11111b`,
129 - tytuł wyśrodkowany, tekst aktywny `#cdd6f4` / nieaktywny `#6c7086`;
130 -- autorskie przyciski **XBM** (`close` · `iconify` · `max` · `max_toggled`)
131 - w jednolitym kolorze, hover jako „pigułka" `#89b4fa33` (promień 9 px);
132 -- układ paska `:iconify,max,close` (bez ikony aplikacji — fork bez libsfdo);
133 -- **miękki cień** — aktywny 40 px / nieaktywny 20 px;
134 -- **zaokrąglone rogi okna (8 px)** — treść przycinana w 4 rogach, nie tylko
135 - pasek tytułu (nasz fork wlroots — `wlroots-pagan`, renderer gles2);
136 -- menu, OSD (przełączanie okien/pulpitów) i listy w tych samych kolorach —
137 - dekoracje są spójne z całością.
138 -
139 -Nowy motyw okien = nowy katalog w `config/theme/` + wpis `<theme><name>` w
140 -`rc.xml`; nic więcej nie trzeba zmieniać.
141 -
142 -### Po co fork (`labwc-pagan`)?
143 -
144 -| Obszar | Upstream labwc 0.20.2 | PaganDE |
145 -| --- | --- | --- |
146 -| wersja | `0.20.2` | `0.20.2-pagan` |
147 -| `XDG_CURRENT_DESKTOP` (fallback) | `labwc:wlroots` | `PaganDE:wlroots` |
148 -| rogi okna | tylko pasek tytułu | **treść przycinana w 4 rogach** (fork `wlroots-pagan` + `src/view.c`) |
149 -| opcje builda | — | `-Dxwayland=disabled -Dsvg=disabled -Dicon=disabled` |
150 -
151 -Szczegóły forka: `compositor/labwc/pagan/FORK.md` (w tym instrukcja
152 -aktualizacji do nowszego upstreamu).
153 -
154 -> **Notatka historyczna:** wcześniejszy szkic tego dokumentu zakładał
155 -> `waybox` (WM X11/openbox nad XWayland) z `eww` i `fuzzel`. Pomysł
156 -> porzucono: waybox zarządza tylko oknami X11 — natywne okna Wayland nie
157 -> dostałyby naszych dekoracji ani zarządzania, a obraz budujemy bez
158 -> XWayland. Fork labwc daje pełną kontrolę nad dekoracjami dla **wszystkich**
159 -> okien przy jednym lekkim komponencie.
160 -
161 -
162 -## 5. Niezależność od upstreamu (polityka forków)
163 -
164 -Zasada nadrzędna: **co możemy zrobić forkiem, robimy forkiem**. Wszystko, co
165 -definiuje wygląd i zachowanie PaganDE — a co realnie utrzymamy — to **nasz
166 -fork**: źródła w repo, wersja pinowana z sufiksem `-pagan`, build z lokalnego
167 -tarballa bez pobierania z sieci. Upstream zostaje punktem odniesienia do
168 -rebase'ów, a nie zależnością builda. Pełna polityka dla całego repo PaganOS:
169 -[`FORK-POLICY.md`](../FORK-POLICY.md).
170 -
171 -### Modele pozyskiwania kodu
172 -
173 -| Model | Opis | Przykład w PaganDE |
174 -| --- | --- | --- |
175 -| **1. Własny kod** | piszemy od zera pod PaganOS | sesja `pagande-session`, motyw okien, configi, meta-pakiet, `pagande-shell` (v1) |
176 -| **2. Fork** | źródła upstream w repo, wersja `-pagan`, zmiany w źródłach | `labwc-pagan` ✓ · `wlroots-pagan` ✓ |
177 -| **3. Upstream + patche** | build pobiera źródła, receptura nakłada nasze patche | — (przechodzimy na model 2) |
178 -| **4. Stock** | pakiet upstream „tak jak jest", sterowany naszym configiem | `waybar`, `mako`, `foot`, `kanshi`… |
179 -
180 -Fork (model 2) to krok wyżej niż patche (model 3): build przestaje zależeć od
181 -dostępności upstreamu, a zmiany wprowadzamy w kodzie, nie w łatkach.
182 -
183 -### Kiedy fork, a kiedy nie
184 -
185 -- **Forkujemy:** kompozytor `labwc` (✓) i fundament `wlroots` (✓) — patrz
186 - status poniżej; potem każde narzędzie, do którego pojawi się pierwsza nasza
187 - poprawka.
188 -- **Na razie zostaje stock (model 4):** narzędzia używane 1:1 z naszym
189 - configiem — `waybar`, `rofi`, `foot`, `mako`, `swaybg`, `swaylock`,
190 - `kanshi`. Niezależność zapewnia pinowanie wersji w recepturach; fork
191 - wskakuje automatycznie w momencie pierwszej potrzeby patcha.
192 -- **Nie forkujemy bez potrzeby:** duże aplikacje (`thunar`, GTK, portale
193 - XDG) — fork to przejęcie utrzymania, a nie definiują one środowiska.
194 -
195 -### Status forków w stacku PaganDE
196 -
197 -| Komponent | Dziś | Decyzja |
198 -| --- | --- | --- |
199 -| `labwc` | **fork** `labwc-pagan` (repo: `budowanie/paganDE/compositor/labwc/`) | ✓ repo; krok: osadzić w `PaganDE/compositor/` (FORK-POLICY §6) |
200 -| `wlroots` | **fork** `wlroots-pagan` (repo: `budowanie/paganDE/compositor/wlroots/`, patche w źródłach) | ✓ repo; krok: osadzić w `PaganDE/compositor/` (FORK-POLICY §6) |
201 -| `wlroots` (stock) | upstream bez zmian (dla `sway` i spoza PaganDE) | zostaje |
202 -| `waybar`, `rofi`, `foot`, `mako`, `swaybg`, `swaylock`, `kanshi` | stock + nasze configi | zostaje; fork przy pierwszym patchu |
203 -| `thunar` i ekosystem GTK | stock | zostaje (aplikacje) |
204 -| sesja, motyw, configi, meta-pakiet | własny kod | ✓ |
205 -
206 -### Procedura forkowania (wzorzec labwc)
207 -
208 -1. Źródła upstream trafiają do katalogu `paganDE/<komponent>/` (wzorzec:
209 - `compositor/labwc/`).
210 -2. Wersja dostaje sufiks `-pagan`; rozjazdy względem upstream opisuje
211 - `<komponent>/FORK.md` (wersja, `XDG_CURRENT_DESKTOP`, opcje builda, patche).
212 -3. `make tarball-<komponent>` pakuje źródła do
213 - `recipes/gui/<komponent>-pagan/` — lokalny tarball + `sha256sums` → build
214 - w pełni offline.
215 -4. Receptura używa tych samych opcji co wcześniejszy pakiet upstream;
216 - `pagbuild` kopiuje tarball bez pobierania z sieci.
217 -5. Aktualizacja do nowszego upstreamu = rebase wg instrukcji w `FORK.md`
218 - (diff z nowym tagiem → ponowne nałożenie naszych zmian).
219 -
220 -
221 -## 6. Jeden język wyglądu
222 -
223 -Paleta Catppuccin Mocha jest wbudowana w każdy element — od dekoracji okien
224 -po terminal i pasek:
225 -
226 -| Rola | Kolor | Użycie |
227 -| --- | --- | --- |
228 -| base | `#1e1e2e` | tło pulpitu (swaybg), okna, powiadomienia, „pigułki" waybar, tło foot |
229 -| mantle | `#181825` | aktywny pasek tytułu, menu, OSD |
230 -| crust | `#11111b` | nieaktywny pasek tytułu |
231 -| text | `#cdd6f4` | tekst podstawowy (tytuły, powiadomienia, foot) |
232 -| subtext0 | `#a6adc8` | tekst drugorzędny, przyciski dekoracji |
233 -| surface0 | `#313244` | ramka nieaktywna, obramowania, separatory, tło aktywnych zadań |
234 -| surface1 / surface2 | `#45475a` / `#585b70` | hover taskbara / zaznaczenia, border „low" w mako |
235 -| overlay0 | `#6c7086` | tekst okien nieaktywnych |
236 -| **akcent Blue** | `#89b4fa` | aktywna ramka okna, hover, launcher, powiadomienia, logo paska |
237 -| Red / Yellow / Green / Teal / Mauve | `#f38ba8` / `#f9e2af` / `#a6e3a1` / `#94e2d5` / `#f5c2e7` | CPU/RAM/zegar/głośność na pasku, kolory ANSI terminala, stany krytyczne |
238 -
239 -Typografia: **Cantarell** — dekoracje okien, menu labwc, mako, GTK
240 -(`gtk-font-name=Cantarell 10`), rofi (`Cantarell 11`), waybar
241 -(`Cantarell 12`); **monospace 10** w foot. Aplikacje GTK dziedziczą ten sam
242 -język przez `gtk-theme-name=Catppuccin-Mocha-Standard-Blue-Dark` oraz ikony
243 -`Papirus-Dark` (`config/gtk-3.0/settings.ini`).
244 -
245 -
246 -## 7. Skróty klawiszowe i menu
247 -
248 -| Klawisz | Akcja |
249 -| --- | --- |
250 -| `Super+Enter` | foot (terminal) |
251 -| `Super+D` / `Super+Spacja` | rofi — uruchamianie aplikacji |
252 -| `Super+E` | thunar (pliki) |
253 -| `Super+L` | swaylock (blokada) |
254 -| `Super+Q` / `Alt+F4` | zamknij okno |
255 -| `Super+Shift+Q` | wyloguj (wyjście z sesji) |
256 -| `Super+F` | pełny ekran |
257 -| `Super+←/→/↑/↓` | przyciąganie okna do krawędzi |
258 -| `Super+Shift+←/→` | wyślij okno na poprzedni / następny pulpit |
259 -| `Super+1` / `Super+2` | przejdź do pulpitu 1 / 2 |
260 -
261 -Mysz: przeciąganie paskiem tytułu — przesuwanie, dwuklik — maksymalizacja,
262 -PPM na pasku — menu okna. **PPM na pulpicie** — menu główne:
263 -
264 -`Terminal` · `Pliki` · `Przeglądarka` · `Uruchom…` · `Zablokuj ekran` ·
265 -`Wyloguj` · `Uśpij` · `Wyłącz`
266 -
267 -
268 -## 8. Panel ustawień systemu i środowiska
269 -
270 -Dziś ustawienia są funkcjonalne, ale **rozproszone**: motyw GTK w plikach
271 -konfiguracyjnych, monitory w `kanshi/config`, dźwięk w pavucontrol, sieć w
272 -aplecie, klawiatura w `rc.xml`. Celem PaganDE jest **jedno, spójne okno
273 -ustawień** — element środowiska, nie osobny program.
274 -
275 -### Zakres modułów
276 -
277 -| Moduł | Zakres ustawień | Gdzie to „żyje" dziś (mechanizm) |
278 -| --- | --- | --- |
279 -| Wygląd | motyw okien, motyw GTK, ikony, kursor, czcionka, akcent | `~/.config/gtk-3.0/settings.ini`, motyw w `/usr/share/themes`, `rc.xml` → `labwc --reconfigure` |
280 -| Pulpit i tło | kolor z palety lub obraz (swaybg) | `~/.config/labwc/autostart` (linia swaybg) |
281 -| Monitory | układ, rozdzielczość, odświeżanie, skalowanie | `~/.config/kanshi/config` (kanshi sam przeładowuje plik) |
282 -| Dźwięk | głośność, wyjście, aplikacje | pavucontrol (PipeWire) — dziś z paska (klik w moduł audio) |
283 -| Sieć | Wi-Fi, połączenia przewodowe, VPN | nm-applet / nm-connection-editor (tray) |
284 -| Klawiatura i wskaźnik | układ klawiszy, powtarzanie, touchpad (naturalScroll, tap) | `rc.xml` `<keyboard>` / `<libinput>` → `labwc --reconfigure` |
285 -| Zasilanie | uśpienie, wyłączenie, wylogowanie, blokada | menu główne (menu.xml) + `systemctl` + swaylock |
286 -| Bezczynność | automatyczna blokada po czasie (opcjonalnie) | swayidle (do dodania) |
287 -| Data i godzina | strefa czasowa, synchronizacja | `timedatectl` |
288 -| Domyślne aplikacje | przeglądarka, terminal, pliki, e-mail | `xdg-settings` / portale XDG |
289 -| Informacje | wersja PaganOS i PaganDE, sprzęt | `/etc/os-release`, `labwc --version`, `/proc` |
290 -
291 -### Zasady spójności
292 -
293 -1. **Zero własnego stanu** — panel czyta i zapisuje dokładnie te pliki,
294 - którymi żyje środowisko (`rc.xml`, `kanshi/config`, `settings.ini`,
295 - `autostart`) i odświeża je w miejscu (`labwc --reconfigure`, przeładowanie
296 - kanshi/swaybg).
297 -2. **Okno panelu demonstruje dekoracje** — to zwykłe okno GTK, więc
298 - automatycznie dostaje serwerowe dekoracje `Catppuccin-Mocha` oraz motyw
299 - GTK Catppuccin i ikony Papirus. Spójność bez dodatkowej pracy.
300 -3. **Nie dublujemy dojrzałych narzędzi** — pavucontrol, edytor połączeń NM i
301 - portale XDG pozostają; panel otwiera je tam, gdzie ich rola jest już
302 - dopracowana.
303 -
304 -### Realizacja (plan)
305 -
306 -1. Nowy, lekki komponent `pagande-settings` (GTK4) — źródła w tym repo,
307 - analogicznie do `compositor/labwc` (tarball → receptura
308 - `recipes/gui/pagande-settings`).
309 -2. Wpięcie w środowisko: pozycja **Ustawienia** w `menu.xml`, moduł na pasku
310 - waybar, wpis `.desktop` (dostępny też z rofi), proponowany skrót `Super+I`.
311 -3. Meta-pakiet: nowa zależność + ewentualny katalog z domyślnymi
312 - ustawieniami w `config/` (rozkładany przez sesję jak pozostałe).
313 -
314 -
315 -## 9. Manifest pakietów (meta-pakiet `pagande`)
316 -
317 -Poniżej lista zależności meta-pakietu (pogrupowana dla czytelności; w
318 -recepturze `PAGBUILD.yaml` jest płaska). Receptura jest **generowana** z
319 -katalogu środowiska (`config/` + `session/`, skrypt `gen-pagande-recipe.sh`),
320 -a nie edytowana ręcznie.
321 -
322 -```
323 -# ── Rdzeń i kompozytor ─────────────────────────────────────────
324 -labwc-pagan # fork labwc: okna, dekoracje SSD, motyw Catppuccin-Mocha
325 -
326 -# ── Interfejs (powłoka) ────────────────────────────────────────
327 -waybar # górny pasek (menu, taskbar, zegar, CPU/RAM, audio, tray)
328 -rofi # launcher aplikacji
329 -foot # terminal (Catppuccin Mocha)
330 -mako # powiadomienia
331 -swaybg # tło pulpitu (kolor base #1e1e2e lub obraz)
332 -swaylock # blokada ekranu
333 -kanshi # automatyczne profile monitorów
334 -
335 -# ── Usługi ─────────────────────────────────────────────────────
336 -pipewire # dźwięk (sesja startuje też wireplumber)
337 -pavucontrol # miksowanie / wybór wyjścia
338 -network-manager-applet # tray sieci (NetworkManager)
339 -polkit-gnome # autoryzacja akcji systemowych (GUI)
340 -xdg-desktop-portal # integracja aplikacji z systemem
341 -xdg-desktop-portal-gtk
342 -
343 -# ── Aplikacje ──────────────────────────────────────────────────
344 -thunar # menedżer plików
345 -thunar-archive-plugin # archiwa z menu kontekstowego
346 -
347 -# ── Spójny wygląd (motywy i czcionki) ──────────────────────────
348 -catppuccin-gtk-theme # motyw GTK Catppuccin-Mocha-Standard-Blue-Dark
349 -papirus-icon-theme # ikony Papirus-Dark
350 -cantarell-fonts # czcionka UI
351 -xcursor-dmz # kursor DMZ-Black
352 -```
353 -
354 -Łańcuch budowy kompozytora (kolejność w `build-pagan.sh` →
355 -`install_pagande`):
356 -
357 -```
358 -libdisplay-info → libliftoff → hwdata → seatd → wlroots-pagan → labwc-pagan → pagande
359 -```
360 -
361 -Aplikacje towarzyszące (opcjonalnie, z repo `recipes`): `tumbler`
362 -(miniaturki w Thunarze), `viewnior` (podgląd obrazów), `file-roller`
363 -(archiwa), `grim` + `slurp` (zrzuty ekranu — można podpiąć pod `Super+Print`
364 -w `rc.xml`).
365 -
366 -
367 -## 10. Struktura repozytorium i workflow
368 -
369 -```
370 -PaganBuild/ # monorepo
371 -├── FORK-POLICY.md # polityka fork-first (całe repo)
372 -└── PaganDE/ # DOM PROJEKTU — budowany od zera
373 - ├── pagande.md # ten dokument (projekt i opis PaganDE)
374 - ├── README.md # stan budowy / szybki start
375 - ├── compositor/ # nasze forki (labwc-pagan, wlroots-pagan)
376 - ├── config/ # domyślne konfiguracje: labwc, waybar, rofi,
377 - │ │ # mako, foot, kanshi, gtk-3.0, theme/ (themerc+XBM)
378 - │ └── labwc/autostart # (pierwszy komponent — kolejne w budowie)
379 - ├── session/ # pagande-session + wpis wayland-sessions
380 - ├── meta/pagande/ # generowany meta-pakiet (PAGBUILD.yaml + tarball)
381 - ├── scripts/ # stage.sh (dalej: gen-pagande-recipe.sh…)
382 - └── Makefile
383 -
384 -PaganOS (repo, poza domem projektu):
385 -└── budowanie/
386 - ├── paganDE/ # historyczna implementacja wzorcowa (referencja)
387 - ├── recipes/ # receptury pakietów (docelowo: sync meta-pakietu)
388 - └── build-pagan.sh # instalacja PaganDE w obrazie (opcja 6)
389 -
390 -Cele `Makefile` poniżej są docelowe — wdrażamy je w miarę budowy komponentów
391 -(aktualny stan: `PaganDE/README.md`).
392 -
393 -| Cel (make) | Efekt |
394 -| --- | --- |
395 -| `make build` | `meta/pagande`: tarball (`config/`+`session/`) + `PAGBUILD.yaml` |
396 -| `make recipe` | regeneracja samej receptury meta-pakietu |
397 -| `make tarball-meta` | pakiet `config/` + `session/` |
398 -| `make tarball-labwc` | świeży tarball `labwc-pagan` po zmianach w fork |
399 -| `make sync-recipes` | kopiuje `meta/pagande` → `recipes/de/pagande` |
400 -| `make stage` | testy lokalne: rozkłada `config/` do `~/.config` (bez pakietu) |
401 -
402 -Zmiany konfiguracji robi się w `config/`, a następnie
403 -`make build && make sync-recipes`, żeby trafiły do receptury.
404 -
405 -
406 -## 11. Status i plan
407 -
408 -> Uwaga: pozycje [x] dotyczą repo PaganOS (forks żyją w
409 -> `budowanie/paganDE/compositor/`). Dom projektu
410 -> `PaganBuild/PaganDE` odtwarza je u siebie od zera (postęp: `PaganDE/README.md`).
411 -
412 -- [x] **Kompozytor z własnymi dekoracjami** — fork `labwc-pagan` (SSD, motyw
413 - `Catppuccin-Mocha`, zaokrąglone rogi treści okna, wersja `0.20.2-pagan`).
414 -- [x] **Sesja i domyślne konfiguracje** — `pagande-session` rozkłada
415 - konfiguracje do `~/.config` przy pierwszym logowaniu.
416 -- [x] **Spójny stack** — waybar, rofi, foot, mako, swaybg, swaylock, kanshi,
417 - thunar, usługi audio/sieci/uprawnień w jednej palecie.
418 -- [x] **Meta-pakiet i receptura** — `make build` + `make sync-recipes`: `recipes/de/pagande` niesie wersję 0.2.0 (configi INI + live reload, sesja, motyw okien); całość generowana z tego domu projektu.
419 -- [ ] **Panel ustawień systemu i środowiska** — `pagande-settings` (plan w
420 - [§ 8](#8-panel-ustawień-systemu-i-środowiska)).
421 -- [x] **Fork `wlroots-pagan`** — źródła wlroots 0.20.2 w repo
422 - (`compositor/wlroots/`), patche (rogi okien, BGR888) wpięte w źródła
423 - (`pagan/patches/`), receptura z lokalnym tarballem — build offline.
424 -- [ ] **Procedura forkowania** — ujednolicić `make tarball-<komponent>` +
425 - `FORK.md` dla każdego kolejnego forka (wzorzec z labwc).
426 -- [ ] **Drobne uzupełnienia** (opcjonalnie) — swayidle (auto-blokada),
427 - zrzuty ekranu `grim`+`slurp` ze skrótem, dodatkowe warianty motywów okien
428 - (Catppuccin Latte / Frappe / Macchiato).