💾 Archived View for aelspire.info › posty › 2021-10-26-linux › post.gmi captured on 2023-01-29 at 02:39:14. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-06-03)
-=-=-=-=-=-=-
W poście tym skupię się tylko na tym, co było zainstalowane na moim głównym komputerze. Więc ignoruję projekty związane z pracą, kontenery, komputery należące do moich znajomych na których instalowałem Linux’a oraz wszystko inne.
Nie będę poświęcał także zbytniej uwagi temu, jakiej używałem dystrybucji, ponieważ uważam, że jest to sprawa drugorzędna. Mimo, że jakiś czas zmieniałem co chwila używaną dystrybucję (tzw. distrohopping) szukając tej właściwej, szybko zauważyłem, że zmiana dystrybucji bardzo niewiele wpływa na odczucia płynące z użytkowania komputera.
Tak więc, tytułem wstępu. Moja osobista przygoda z Linux’em zaczęła się wraz z rozpoczęciem liceum. Wtedy po raz pierwszy w życiu dostałem swój własny komputer do prywatnego użytku i nie musiałem go z nikim dzielić. Na początku zainstalowałem na nim Windows’a XP ale skądś się dowiedziałem (nie pamiętam dokładnie skąd), że procesor w moim komputerze jest 64-bitowy.
A Windows XP który posiadałem był 32-bitowy. Z racji, że słabo się wtedy znałem na komputerach wydawało mi się, że przez to mój komputer używa tylko połowy swojej mocy… Durne, wiem… Ale na swoje usprawiedliwienie dodam, że byłem wtedy jeszcze młody i głupi. Do tego uważam, że dobrze wyszedłem na tej pomyłce.
Wtedy postanowiłem, że pobiorę i zainstaluje sobie Linux’a. Wcześniej miałem epizodyczną styczność z tym systemem, ponieważ mój ojciec kupował różnego rodzaju czasopisma komputerowe do których czasem dołączano płyty z instalacjami różnych dystrybucji Linux’a oraz BSD (gdzieś chyba jeszcze mam płyty z FreeBSD z tamtego okresu). Mój ojciec czasem instalował je na wspólnym komputerze, żeby po krótkim czasie wrócić do Windows’a. Z tych krótkich spotkań zapamiętałem głównie to, że można się przy logowaniu wybrać jakieś GNOME i chyba KDE i generalnie niewiele od siebie się różnią, więc nie rozumiałem po co jest ten wybór.
Po krótkiej lekturze poradników jak zacząć przygodę z Linux’em zdecydowałem, się że na początek spróbuję swoich sił z KDE, zaś jeżeli chodzi o dystrybucje wybrałem OpenSUSE 11.1.
Zatem, moja osobista przygoda z Linux’em zaczęła się od KDE. Miałem szczęście albo nieszczęście trafić prosto na nową wersje KDE z numerkiem 4 z przodu, przez co praktycznie wszystko co wyczytałem w internecie o tym środowisku okazało się nieaktualne. Ale mimo to dałem radę i mam wiele miłych wspomnień z tamtego okresu.
Dzięki temu, że nigdy nie byłem typem gracza, nie brakowało mi gier. A już wcześniej główną moją pasją stało się programowanie a właściwie nauka programowania.
Co mnie urzekło w Linux’ie to była łatwość z jaką można było zainstalować proste IDE oraz różne zależności, dzięki czemu pisanie programów przychodziło mi znacznie łatwiej niż wcześniej na Windows’ie.
Nie chciałbym tutaj jednak sprawiać wrażenia, że jako nastolatek pisałem zaawansowane programy, bo tak nie było. Generalnie w wielu sprawach pomagał mi zarówno ojciec jak i brat. Zaś programy które tworzyłem to były proste okienka z kilkoma przyciskam i proste tekstowa aplikacje. Z większych rzeczy które stworzyłem w tamtym okresie pamiętam prostą i chyba dość krótką tekstową grę przygodową. Co do tej gry, bardzo żałuję, że straciłem wszystkie jej kopie. W mojej pamięci zapisała się jako genialna i bardzo rozbudowana gra przygodowa, lecz jestem pewien, że nostalgia i wybiórcza pamięć mocno tutaj podkolorowała moje wspomnienie.
Jednakże to sprawiało mi kupę frajdy i zapewne stało się powodem dla którego wybrałem taką ścieżkę kariery a nie inną.
W tamtym okresie miałem krótką przygodę z innymi dystrubycjami z których właściwie pamiętam tylko Kubuntu a potem zacząłem używać Arch’a, przy którym z drobną przerwą na Mageia’e, trwam po dziś dzień.
Wtedy także pośrednio przez naukę rysowania (wtedy to była moja druga największa pasja), rysowanie komiksów (nigdy żadnego nie skończyłem) odkryłem grafikę 3D i Blender’a.
Blender przyczynił się do zrobienia następnego kroku który oceniam jako dość ważny kamień milowy w swojej przygodzie z Linux’em. Pojawienie się Cycles’a spowodowało, że szybko przerzuciłem się na niego. Co z kolei pociągnęło za sobą dość długie czasy renderowania oraz najważniejsza kwestia:
Przestała mi chodzić przeglądarka internetowa w czasie kiedy coś się renderuje!
Do tej pory umilałem sobie czas, w którym moja praca się renderowała przeglądając pierdoły na internecie. Ale teraz to przestało być możliwe! Przeglądarka straszliwie się zacinała i generalnie nie dało się już jej używać.
Problem niedziałającej przeglądarki internetowej w czasie gdy w tle pracuje Cycles, stał się dla mnie impulsem do zmiany. Zacząłem szukać rozwiązania które umożliwiło by mi dalsze miłe spędzanie czasu na przeglądaniu internetu, zamiast patrzeniu jak kolejne piksele nabierają właściwego koloru.
Dowiedziałem się, że muszę znacząco odchudzić system i zrezygnować z pełnego DE (ang. Desktop Environment) na rzecz lżejszego WM (ang. Windows Manager).
Zdecydowałem się obok KDE mieć 2-gą sesje z Openbox’em i Cairo Dock¹. W ten sposób gdy tylko chciałem coś renderować przelogowywałem się na tą drugą sesję z Openbox’em, włączałem Blender’a i przeglądarkę, po czym oddawałem się surfowaniu po internecie w czasie kiedy Cycles robił swoją robotę. Tym razem wszystko działało normalnie.
Ale po jakimś czasie to ciągłe przelogowywanie się zaczęło mnie solidnie drażnić, aż do momentu kiedy zapragnąłem po prostu dodać do mojej sesji z WM to czego mi jeszcze brakowało, żeby używać jej cały czas i pozbyć się KDE.
Tak też zacząłem czytać o tym jak należy sklecić swoje własne środowisko graficzne i eksperymentować.
Na początku tej przygody używałem jeszcze cały czas Openbox’a i eksperymentowałem z resztą środowiska.
Jednakże w bardzo wielu miejscach, w których poszukiwałem informacji jak sklecić swoje własne środowisko graficzne przewijała się ta sama gadka, którą można streścić jako: „Polecam używać tilingujących menadżerów okien”. W końcu moja ciekawość wzięła górę i się skusiłem. Wypróbowałem wtedy kilka takich, a racji tego, że wciąż lubiłem programowanie wybrałem menażer okien zwany awesome.
I tak generalnie wsiąkłem w ten świat i zamiast zajmować się czymś produktywnym, cały czas przeglądałem /r/unixporn na reddit’ie i co chwila zmieniałem koncepcje tego jak powinno działać i wyglądać moje środowisko.
Aż do momentu kiedy postanowiłem, że układ partycji jaki stworzyłem jest mało optymalny (za dużo miejsca na „/” i za mało na „/home”) i postanowiłem ignorując wszelkie zasady zdrowego rozsądku jadąc w pociągu, z laptopem na baterii (już wtedy studiowałem i na studiach zakupiłem laptopa zamiast swojego poprzedniego PC) przeskalować sobie dyski. Streszczając tą dość nieprzyjemną sytuacje, straciłem wtedy prawie całą swoją konfiguracje (poza samą tylko konfiguracją awesome, którą miałem w repo na github²), wszystkie pliki, zdjęcia i generalnie kupę rzeczy ponieważ jako backup służył mi tylko mały pendrive na którym trzymałem tylko najważniejsze rzeczy potrzebne na studia.
Utrata całego systemu oraz sporej części dość długo tworzonego środowiska znacznie ostudziła moje zapały. Potrzebowałem czegoś co by po prostu działało, wyglądało sensownie i nie kusiło mnie już do ciągłego grzebania w konfiguracji. Tak żebym mógł znów być produktywny w tym co było dla mnie wtedy istotne a nie tylko ciągle grzebać w konfiguracji swojego środowiska.
Zdecydowałem się wtedy, trochę na złość samemu sobie zainstalować GNOME, które wtedy miało już renomę dziwnego środowiska w którym kompletnie nic się nie da skonfigurować.
Jednakże, dość mocno się zdziwiłem. GNOME okazało się bardzo dobre zaś przyzwyczajony do awesome które jest całe z góry do dołu konfigurowane i sterowane przez Lua, zacząłem grzebać w JavaScript od GNOME Shell i odkryłem, że…
W sumie to jest to nie mniej konfigurowalne środowisko od KDE. Jak tylko ktoś się nie boi programować to można zrobić tutaj prawie wszystko, można łatwo doinstalować rozszerzenia od innych ludzi i stworzyć swoje własne, a pusty górny pasek aż prosi się o dodanie tam kilku widgetów.
Tak więc moje dni z GNOME bardzo przypominały moje dni z awesome i używałem tego środowiska dość długo. I generalnie muszę się tutaj nie zgodzić z licznymi krytykami tego DE, używało mi się tego zaskakująco dobrze. Workflow oparty o overview pokazujący wszystkie otwarte okna i otwieranie programów przez naciśnięcie klawisza Meta i napisanie kilku pierwszych liter z nazwy programu był bardzo wygodny.
Laptop, który kupiłem sobie na studiach był także mocniejszy od mojego poprzedniego komputera więc spokojnie chodziły Cycles, GNOME i przeglądarka w tym samym czasie. Więc nie odczuwałem problemów legendarną ociężałością GNOME.
Ale…
Nie wszystko było takie różowe. Programy w GNOME do dość złożony temat, niektóre są dla mnie w zupełności wystarczające, a niektóre moim zdaniem nie są tworzone z myślą o poważnym użytkowaniu komputera. Do tego podejście twórców tych programów do użytkowników niezbyt mi się podoba. Nie chciałbym tutaj zbytnio nikogo krytykować, w końcu wiele z tych aplikacji lubiłem, a ich twórcy są wolontariuszami więc wymaganie od nich czegoś, czego oni robić nie chcą, jest zwyczajnie nie fair.
Ale parę razy zadziałali mi mocno na nerwy kasując z ich aplikacji funkcje na których mocno polegałem albo zwyczajnie lubiłem. I za każdym razem ta sama gadka: „Wiemy lepiej jak chcesz korzystać z komputera”.
Parę razy także musiałem po aktualizacji poprawiać kod moich rozszerzeń oraz czekać na aktualizacje rozszerzeń od innych twórców.
Żeby tego jeszcze było mało, w tym czasie znowu przesiadłem się na PC z 2-ma monitorami i odkryłem jak słabo radzi sobie GNOME z większą ilością ekranów. Jak jeszcze używałem awesome to miałem w akademiku dodatkowy stary monitor i czasem go podłączałem do swojego laptopa. Pamiętałem dobrze że awesome umożliwiało niezależne przełączanie workspace’ów na obu monitorach i bardzo polubiłem taki workflow. A tutaj klapa. Generalnie przez jakiś czas liczyłem, że ta funkcjonalność pojawi się już, zaraz. I tak czekałem. I czekałem…
I się nie doczekałem, zaś twórcy GNOME coraz częściej podejmowali różne decyzje które obniżały moje zadowolenie z tego środowiska.
I w końcu nie wytrzymałem. Tęskniłem za możliwością niezależnego przestawiania workspace’ów na monitorach jak cholera. Do tego coraz bardziej zacząłem zwracać uwagę na to ile moje programy zużywają zasobów. Dlatego postanowiłem porzucić GNOME. Ciągłe grzebanie w konfiguracji jest dla mnie jak narkotyk więc musiałem zadbać o to żeby znowu nie wpaść w tą pętlę.
Dlatego wybrałem coś co posiada tą, jedną istotną dla mnie funkcje ale wciąż jest czymś w rodzaju środowiska graficznego a nie tylko gołym menadżerem okien.
Tak więc zainstalowałem i jakiś czas używałem Enlightenment.
https://github.com/baskerville/bspwm
Jednak, GNOME było dość wygodne w użyciu i sprawiało wrażenie bardzo dopracowanego. Dlatego ciężko było mi przerzucić się na Enlighetnment. I w rezultacie nie wytrwałem dość długo. Postanowiłem zaryzykować i jeszcze raz stworzyć swoje własne środowisko. Jednakże, w przeciwieństwie do ostatniego razu, postanowiłem sobie dokładnie zaplanować co chce, by nie dać się znowu wciągnąć w szaleństwo ciągłego podpatrywania na /r/unixporn fajnych rozwiązań i przerabiania swojej konfiguracji w kółko.
Wyłuskałem zatem to co lubiłem w GNOME Shell i połączyłem z tym co lubiłem z moich wcześniejszych doświadczeń z tilingującymi menadżerami okien. Tym razem wybrałem prostszy menadżer okien — bspwm.
I w ten sposób powstało właśnie środowisko którego używam obecnie, z którego jestem niesamowicie zadowolony, zdecydowanie bardziej niż z KDE, GNOME i innych razem wziętych.
Poniżej zamieszczam kilka screenshot’ów.
Mój launcher, powiadomienia oraz pasek systemowy
Thunar, Alacritty oraz Kakoune
Moja obecna przeglądarka ze stroną startową
Każde środowisko jakiego używałem miało coś co lubiłem i coś czego nie lubiłem. Generalnie niestety tworzenie programów bardzo często wymaga kompromisów, czego hejterzy nadający non-stop na GNOME czy KDE nie rozumieją. Moim zdaniem oba są świetnymi środowiskami, tylko każdy z nas lubi co innego.
Często spotkałem się z opinią że: „Kiedyś było lepiej”. Bo kiedyś KDE było lepsze. Bo GNOME było bardziej konfigurowalne. Moim zdaniem to bzdura! Z tego co pamiętam na początku, okiem laika — GNOME od KDE nie różniło się prawie niczym, teraz wiem, że GNOME powstało z tego powodu, że KDE używało Qt, ale serio… dla laika znaczy to tyle co nic. Tak więc miałeś wybór pomiędzy tradycyjnym środowiskiem a… tradycyjnym środowiskiem? Mogłeś wybierać czy wolisz żeby programy miały nazwy zaczynające się od „g” albo od „k”. Bo generalnie tak właśnie wyglądał ten wybór. Były 2 praktycznie takie same środowiska graficzne i oba działały tak sobie. Teraz sytuacja jest znacznie lepsza. Fani tradycyjnych środowisk mają KDE które dzisiaj działa znacznie, znacznie lepiej niż w czasach 4.X, zaś fani systemów a’la te-sygnowane-logiem-jabłka mają GNOME, które wcale nie jest takie beznadziejne jak w powielanych na internecie opiniach. I poruszyłem tylko tutaj kwestie tych dwóch najsławniejszych. A przecież jest jeszcze: XFCE, LXQt, Enlightenment, Cinnamon i wiele, wiele innych. Dlatego nie warto trwać przy czymś co człowiekowi nie odpowiada, bo przecież mamy wybór.
Tak więc jak oceniam każde z środowisk z którym miałem do czynienia?
Na domyślnych ustawieniach reprezentuje tradycyjny okienkowy workflow, ale nie należy dać się zwieść pozorom. Wystarczy tylko nieco pogrzebać w ustawieniach, żeby uczynić to środowisko repliką Unity albo nawet GNOME.
Dlatego raczej bym tutaj nie oceniał tego środowiska jako związanego z tradycyjnym modelem. Określiłbym je raczej jako środowisko dla power-userów, którzy chcą skonfigurować wszystko po swojemu, ale nie chcą programować ani bawić się w ręczną edycje plików konfiguracyjnych. Możliwości wyklikania ustawień są tutaj ogromne, a całe środowisko jest dość dobrze zintegrowane.
Programy nie próbują ukrywać przed użytkownikiem swoich funkcji, a wręcz przeciwnie, zazwyczaj prezentują znany i przez wielu lubiany pasek menu w którym można zobaczyć jakie funkcje dany program posiada, co niestety często spotyka się z krytyką, sugerującą wizualny chaos panujący w GUI takich programów. Krytyka ta jednak została zauważona i wysłuchana, obecnie społeczność KDE dokłada wielu starań aby programy wyglądały bardziej przejrzyście.
Co do opinii że KDE jest bardzo zabuggowane: Spotkałem się z niewielkimi bugami, głównie gliczami wizualnymi ale bugów które faktycznie przeszkadzają w pracy w obecnej wersji plasmy raczej nie uświadczyłem (używa jej obecnie moja dziewczyna), jednakże w czasach kiedy zaczynałem swoją przygodę z KDE faktycznie bywało z tym różnie.
Twórcy tego środowiska postanowili zrezygnować z tradycyjnego workflow na rzecz swojego własnego pomysłu. Generalnie pomysł ten wywołuje mieszane odczucia, choć mi osobiście się podobał. Wcześniej używałem swojego własnego środowiska opartego na awesome i muszę powiedzieć, że mam wrażenie, że wiele pomysłów zostało zaczerpniętych właśnie z tego typu środowisk. GNOME można, wbrew wielu opiniom, obsługiwać samą klawiaturą (za wyjątkiem niektórych programów), zaś gdy łączy się klawiaturę z myszką środowisko to zdecydowanie pokazuje pełnie swoich możliwości. Na początku dość mocno modyfikowałem je dodatkami, ale z czasem doceniłem domyślny workflow i właściwie jedyne w czym go modyfikowałem to automatycznie ukrywanie górnego paska i pager na drugim monitorze, reszta rozszerzeń jakie instalowałem dodawały przydatne widgety to górnego paska, co generalnie nie wpływa znacząco na workflow. Dodatkowo wszystko tutaj jest bardzo dobrze zintegrowane, np. tym samym launcherem którym wyszukujemy programy możemy wyszukiwać swoje kontakty, piosenki w odtwarzaczu oraz pliki, co znacząco redukuje ilość rzeczy do zapamiętania.
Wspomniałem już o dodatkach. Drugą kontrowersyjną decyzją twórców GNOME było znaczące zredukowanie ilości dostępnych opcji konfiguracyjnych, jest ich naprawdę niewiele. Właściwie tylko najważniejsze opcje. Jednakże twórcy nie zabrali po prostu użytkownikom możliwości modyfikacji wedle swojego widzimisię. W zamian dali możliwość dość łatwego instalowania oraz pisania własnych rozszerzeń. Stworzyli także centralne miejsce, gdzie użytkownicy GNOME mogą publikować swoje rozszerzenia, które przed opublikowaniem zostają sprawdzone przez grupę zaufanych osób. Osoby dobrze znające JavaScript oraz czujące się dobrze z programowaniem będą mogli zrobić z GNOME Shell prawie wszystko.
Niestety oficjalne programy GNOME to już nieco inny temat. Wiele jest w zupełności wystarczających i nie odczuwałem używając nich jakiś braków, ale niestety takich, które wydały mi się zbyt zredukowane znalazło się kilka.
Środowisko to wydaje mi się nawet bardziej konfigurowalne od KDE, można tutaj skonfigurować chyba prawie wszystko, nawet takie rzeczy o których nikt by wcześniej nie pomyślał. Dodatkowo umożliwia niezależną zmianę workspace’ów na monitorach co zdecydowanie wyróżnia Enlightenment na tle konkurencji.
Niestety, społeczność wydaje się bardzo mała, środowisko zaś sprawia wrażenie wiecznej bety. Dostępnych widgetów jest niewiele, zaś te istniejące są często duplikatami istniejących z minimalnymi zmianami. Wielu ważnych elementów i funkcji po prostu brakuje (np. domyślny menadżer plików nie posiada kasowania plików przez przenoszenie ich do kosza, zamiast natychmiastowego usuwania ich z dysku). Dlatego nie mogłem w pełni docenić tego środowiska i szybko z niego zrezygnowałem.
Obecnie używam skomponowanego przeze mnie środowiska graficznego, składającego się z:
Co mogę powiedzieć o tworzeniu swojego własnego środowiska? Jest to zdecydowanie spora inwestycja, która jak ktoś używa komputera tylko okazyjnie lub jest zadowolony z już istniejących rozwiązań, może się zwyczajnie nie zwrócić.
Jednak gdy ktoś wie czego chce i żaden gotowiec mu tego nie zapewnia, zaś przy komputerze spędza sporo czasu, to warto rozważyć tą opcje. Żadne inne środowisko graficzne nie daje takiej kontroli nad tym jak działa komputer.
Trzeba tylko uważać, żeby nie wpaść w nałóg ciągłego modyfikowania swojego środowiska zamiast produktywnego spędzania czasu przed komputerem…
2. Moja, prawdopodobnie już niedziałająca konfiguracja awesome