cat ~/projects/ariku-themes/README
Motywy ArikuTermiweestyle
Terminalowy wygląd ariku.pl przeniesiony na Discorda (Vencord/Vesktop) i pulpit XFCE, ze śladem płomieni za kursorem, który przepuszcza kliknięcia i usypia się w grach.
Cel
Spójny, ciemny wygląd w stylu terminala w komunikatorze i na pulpicie, z lepiej widoczną aktywnością na kanałach głosowych i bez efektów, które przeszkadzają w pracy albo w grach.
Rozwiązanie
Motyw Discorda generowany skryptem z palety kolorów i mapowany na tokeny Discorda. Motyw GTK 3 i xfwm4 z generatorem oraz skrypt w Pythonie rysujący ślad płomieni za kursorem w przezroczystym oknie.
Architektura
- Wspólna paleta: akcent #00ff66, ciemnoszare powierzchnie, typografia Fira Code i JetBrains Mono.
- Vencord: build.mjs kompiluje kolory do pliku motywu i nadpisuje skale barw Discorda.
- XFCE: generator stylów GTK 3 i dekoratora okien xfwm4 plus skrypt instalacyjny.
- Ślad płomieni: przezroczyste okno GTK nad wszystkim, rysowanie w Cairo tylko tam, gdzie rusza się kursor.
Decyzje techniczne
- Tokeny zamiast klas CSS
- Discord często zmienia generowane nazwy klas. Motyw nadpisuje tokeny kolorów, więc przeżywa kolejne wydania klienta.
- Pusty kształt wejścia przy każdym pokazaniu okna
- Okno efektu nigdy nie przechwytuje kliknięć, także po wyjściu z aplikacji pełnoekranowych.
Problemy i rozwiązania
- Zmiany nazw zmiennych Discorda
- Test w CI sprawdza, czy tokeny używane przez motyw nadal są w publicznym arkuszu stylów Discorda.
- Okno efektu zaczęło łapać kliknięcia
- Menedżer okien resetował pusty kształt wejścia nałożony raz na GdkWindow. Kształt jest teraz powiązany z widżetem GTK i ponawiany po każdej zmianie widoczności.