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).