Tech stack

← Wróć

Ilość znaków: 9263. Ilość słów: 1182. Ten artykuł przeczytasz w: 6 minut

Hej!
Jak mogliście zauważyć, strona nieco zmieniła swój wygląd. Poprzednia paleta barw wydawała mi się zbyt zbliżona do siebie - szczególnie można było to dostrzec podczas używania jasnego motywu - co mogło powodować trudności w czytaniu tekstu na stronie.
Wciąż moim zdaniem jest wiele do poprawy, natomiast różnica jest mocno zauważalna.
Kolory zostały delikatnie zmienione. Przy okazji dodałem zakładkę Projekty (można kliknąć!) oraz delikatnie zmieniłem wygląd kart na liście wpisów blogowych. Jak dla mnie zmiana na plus!

Natomiast to nie o tym jest ten wpis.
W dzisiejszym wpisie pragnę Wam przedstawić w skrócie sprzęt, którym się posługuję - od domowego serwera po telefon.
A więc... zacznijmy!

Serwer

Jest to mój dawny komputer stacjonarny (codename: thor). Kilka miesięcy temu przenosiłem się na ThinkPada P51s, więc komputer ten nie był mi już potrzebny. Zdecydowałem wówczas o "przesiadce" z wynajmowanego VPSa na mój własny, domowy serwer.
Posiada on w szczególności:

Na moje potrzeby jest to sprzęt zupełnie wystarczający. Stoi na nim kilkanaście usług włącznie z systemem monitoringu, pomimo tego sam serwer nie cierpi na tym jakoś bardzo mocno. W szczytowym momencie osiąga ~60% obciążenia CPU, generalnie są to okolice 30-40%. Biorąc pod uwagę to, że na nim uruchomione są usługi takie jak Nextcloud, Home Assistant, Akkoma, Lemmy czy PeerTube, moim zdaniem jest to wciąż bardzo dobry wynik.
Serwer jest połączony z Mini VPSem od Oracle, który służy jako serwer proxy - nie mogłem i nie powinienem bezpośrednio otwierać portów do mojego serwera domowego! Do tego celu wykorzystałem narzędzia pangolin oraz newt. Jest to swego rodzaju Cloudflare Tunnel, tylko, że uruchamiamy go na własnych maszynach. Gwarantuje to większą prywatność oraz większą kontrolę nad tym, jakie dane przepływają przez nasze serwery.

Usługi

Na moim serwerze postawionych jest wiele usług, z których korzystam na co dzień. Są to między innymi:

Laptop

Jak już wspomniałem wyżej, na co dzień korzystam z ThinkPada P51s. Jest on dla mnie zupełnie wystarczający. Posiada on dwie baterie, z czego jedna jest podłączona na stałe do płyty głównej(?). Takie połączenie pozwala na kilka godzin nieprzerwanej pracy - oczywiście, jeżeli nie będziemy sprzętu stresować :D.

Po migracji na ThinkPada zacząłem korzystać z NixOS-a - deklaratywnej dystrybucji Linuxa, która pozwala zdefiniować to, jak chcesz aby wyglądał Twój system, tylko za pomocą języka Nix. Jest to język bazujący na programowaniu funkcyjnym, nie OOP - więcej o tym być może w innym poście.

Na thor-ze korzystałem w dużej mierze z Arch Linuxa i KDE. Przesiadka na Nix-a była planowana od dłuższego czasu, jednak postanowiłem poczekać na zmianę sprzętu.

Korzystam z Waylanda w połączeniu z Hyprlandem. Zamiast środowiska graficznego używam własnej powłoki - SMShell. Pozwala to zmniejszyć ilość zależności a także zdefiniować cały układ środowiska graficznego według swoich preferencji.

Spędziłem nad tym wszystkim dobre kilka miesięcy. Najtrudniejsze były początki, ponieważ nie miałem kompletnie żadnego doświadczenia z programowaniem funkcyjnym, a tym bardziej z językiem Nix. Niemniej jednak szybko załapałem podstawowe elementy i zasady funkcjonowania tego języka, co bardzo ułatwiło mi przygodę z NixOS-em. SMShell napisałem dość szybko, choć i tak były to ok. 2 miesiące, licząc nową wersję z nowym wyglądem i synchronizacją kolorów z tapety - która jest już na Forgejo.

W chwili obecnej mój pulpit prezentuje się następująco: Zrzut ekranu obecnego pulpitu PS. Okienko na środku to mój pomocniczy panel do wykonywania zrzutów ekranu oraz nagrywania ekranu. Jego kod możesz obejrzeć w repozytorium SMShell.
Jeśli jesteś na urządzeniu mobilnym, przytrzymaj zrzut ekranu, a następnie kliknij "Otwórz obraz w nowej karcie". Obraz wyświetli się w większej rozdzielczości.

Całe moje autorskie "DE" wygląda w mojej opinii dość dobrze, natomiast jestem wielkim fanem Material Design 3 i chciałem, aby moja powłoka wyglądała w podobny sposób. Niestety, poddałem się przy próbie implementacji tego designu, ze względu na pewne aspekty AGS - m.in. brak możliwości tworzenia autorskich animacji, co jest kluczowe w MD3.
Było to możliwe do wykonania, natomiast zbyt trudne i czasochłonne. Konfiguracje w tym stylu są dostępne chociażby na GitHubie - oto przykład jednej z nich, używających Quickshell-a zamiast AGS.

Czym jest Quickshell?

Quickshell is a toolkit for building status bars, widgets, lockscreens, and other desktop components using QtQuick. It can be used alongside your wayland compositor or window manager to build a complete desktop environment.

~ cyt. ze strony quickshell.org.

Tłumacząc to na język polski, możemy się dowiedzieć, że Quickshell to zestaw narzędzi do tworzenia m.in. pasków stanu, widżetów, ekranów blokady oraz wielu innych komponentów pulpitu za pomocą API QtQuick oraz języka QML. Można go używać razem z Waylandem lub menedżerem okien.

Fundamentalną różnicą między AGS a Quickshell-em jest wykorzystane API komunikujące się z Waylandem bądź X11. W przypadku AGS-a jest to GTK, natomiast Quickshell korzysta z QT. Quickshell wciąż jest jednak w fazie rozwoju, więc niektóre pluginy - np. plugin do komunikacji z NetworkManagerem - na dzień 08.09.2025 nie są wdrożone.

Wielu użytkowników Quickshell-a zaznacza, że używając tego narzędzia zyskujemy o wiele większą wydajność względem AGS, kosztem zużycia pamięci RAM na naszym sprzęcie. Nie jestem w stanie potwierdzić tej tezy bądź jej obalić, nie monitorowałem zużycia pamięci RAM na swojej konfiguracji ani na konfiguracji innego twórcy, tym razem w QML-u.

Telefon

Na co dzień używam 5-letniego już telefonu Xiaomi Redmi Note 9 Pro, z odblokowanym programem rozruchowym oraz wgranym systemem Project Infinity X - jest to Android 16 (producent wspierał ten telefon tylko do wydania Androida 12!). Do niedawna jeszcze używałem CrDroid-a.
Telefon, mimo kilku lat intensywnego użytkowania, jest nadal w świetnej kondycji. Wyróżniają go następujące parametry:

Ponadto, moja konfiguracja to 64 GB pamięci wewnętrznej oraz kolor "Tropical Green".

Sprzęt nie należy do najbardziej wydajnych na rynku, natomiast na moje potrzeby jest zupełnie wystarczający. Po aktualizacji do Androida 16 nie ma żadnych problemów w jego użytkowaniu - przypomnijmy, iż producent nigdy nie wydał aktualizacji do Androida 13!

Na koniec

Myślę, że pokrótce wspomniałem o najważniejszych cechach mojego sprzętu. Oczywiście można by dodać o wiele, wiele więcej informacji na temat każdego urządzenia. Ale w jakim celu?

Doszedłeś/aś już do końca tego wpisu. Nowe wpisy pojawią się już wkrótce. Oczekujcie!
Post zrobił się dosyć obszerny, łap link i wracaj na górę strony. Nie musisz dziękować.