Przejdź do treściARIKU://CV (PDF)

← Wszystkie projekty

cat ~/projects/piwnica-dashboard/README

PiwnicaStyleDashboard

Panel na pulpit Linuksa2026wydany

Animowana warstwa pulpitu dla Arch Linuksa (X11) z panelami stanu sprzętu, aktualizacji, Proxmoxa i homelabu. Działa bez roota i nie zjada zasobów w trakcie gier.

Cel

Mieć stały podgląd CPU, GPU, pamięci, sieci, dysków, temperatur, aktualizacji i stanu homelabu na pulpicie, bez obciążania komputera w czasie gry i bez zasłaniania tapety.

Rozwiązanie

Przezroczyste okno GTK pod innymi oknami, przepuszczające kliknięcia do pulpitu. Rysuje ścieżki jak na płytce drukowanej z impulsami i panele w stylu terminala, omija obszar postaci na tapecie dzięki masce alfa i gasi animacje na czas gry, zostawiając panele.

Architektura

  1. Okno GTK 3 w warstwie „below” z kompozycją okien, przepuszczające zdarzenia wejścia.
  2. Rysowanie wektorowe w Cairo, około 30 klatek na sekundę, przemalowywane są tylko zmienione obszary.
  3. Maska PNG z kanałem alfa chroni wybrany obszar tapety.
  4. Kolektory próbkują /proc, /sys, lsblk, API Proxmoxa i inwentarz ariku.pl.
  5. Wykrywanie gier (Steam/Proton, Lutris, Wine, gamescope) wyłącza animacje ścieżek.

Decyzje techniczne

Bez uprawnień roota
Wszystkie metryki pochodzą z odczytu /proc, /sys, logów i API. Panel nie potrzebuje żadnych podniesionych uprawnień.
Renderowanie po stronie klienta
Serwer X11 tylko kopiuje gotowe powierzchnie, co przy trzech monitorach daje około 20% jednego rdzenia.

Problemy i rozwiązania

Obciążenie w trakcie gier
Najpierw panel wyłączał się na czas gry. Potem zmieniłem to tak, że gasną tylko animacje ścieżek, a panele z danymi działają dalej.
Dwa mechanizmy aktualizacji tych samych hostów
Skrypt panelu przestał sam wykonywać aktualizacje przez SSH i pokazuje stan updatera z ariku.pl, żeby dwa narzędzia nie działały na tych samych maszynach niezależnie.