Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Zostać kafelkarzem

Drogi czytelniku, kiedy ostatnio zastanawiałeś się nad tym ile w życiu potrzebujesz? Czy posiadasz rzeczy które są zbędne? Czy masz bałagan w pokoju? A co z Twoją przestrzenią życiową? Nie jest zawalona nie potrzebnymi rozpraszaczami? Zanim zaczniesz się sprawdzać pasek z adresem URL, już Cię uspokajam to nie żaden manifest life stylowy, nie będę propagował żebyś się zmienił dla dobra ludzkości, rozdał swój dorobek i zamieszkał w chatce z patyków. Opowiem Ci o czymś co dawna nie dawało mi spokoju, i po tej jednej zmianie zaznałem spokoju ducha.

Poproszę Cię abyś teraz spojrzał w lewy lub prawy górny róg ekranu i poszukał wzrokiem trzech piktogramów najczęściej krzyża, kreski i kwadratu lub kółka. Jeżeli ich nie widzisz to możliwe że jesteś częścią ery postPC i myszy to masz w piwnicy a keyboard to taki instrument z wiejskiego wesela, w takim przypadku nie ma dla Ciebie ratunku. Możliwe też po prostu przeglądasz to na urządzeniu mobilnym ale jak każdy cywilizowany człowiek masz maszynę i386/amd64 więc proszę oczami wyobraźnie przypomnij sobie jak wyglądają na twojej wspomniane piktogramy. Proszę naciśnij ten odpowiedzialny za zminimalizowanie okna i zastanów się co widzisz. Mi nachodzi kilka skojarzeń… śmietnik… chaos… bałagan… pandemonium….

Jak ty możesz w tym pracować? Co to za jakieś ikony rozrzucone po ekranie do programów których nie używasz, tam gdzieś w rogu leżą jakieś dokumenty pewnie jakieś niezbędne notatki które ostatni raz otworzyłeś w zeszłym roku. Oczywiście możesz posprzątać i udawać przed sobą że panujesz na tą entropią. Jeżeli używasz komputera od kilku godzin pewnie masz otwarte kilka programów, w tle pewnie widać otwarty menadżer plików otwarty w małym oknie, gdzieś tam jest jakiś terminal przysłania przeglądarkę otwartą na czymś co przeglądałeś godzinę temu. Jak byś się nie starał po jakimś czasie wygląda to tak…

r   e   k   l   a   m   a

Nie jest istotne jakiego systemu używasz, zawsze doprowadzisz pulpit do takiego stanu. Jak można pracować efektywnie w tym błaganie? Jeżeli chcesz się na czymś skupić musisz nawisnąć odpowiednią ikonę żeby ono się rozszerzyło na cały ekran. A co jeżeli potrzebujesz dwóch okien obok siebie, część środowisk graficznych umożliwia ustawienia w ten dwóch maksymalnie rozszerzonych okien obok siebie, ale trzeba klikać myszą kilkanaście razy albo używać skrótów klawiszowych.

Inne okna są możliwe

Chorowałem na desktop hopping, skakałem po środowiskach graficznych żeby znaleźć te jedyne które będzie odpowiadało mojemu stylowi pracy z komputerem. Gnoma porzuciłem, przez ten pomiot szatana, który jest jednocześnie menadżerem okien, oknem logowania, sesją… GDM… nie pamiętam już co mi w nim przeszkadzało pewnie jakiś nie istotny szczegół, który za każdym razem gdy na niego patrzyłem nie dawał spokoju. Niestety konfiguracje tego ustrojstwa do przyjemnych nie należy, bierz jak developerzy stworzyli albo przeżywaj męki pańskie próbują zmienić coś poza avatarem, nie mogę doczekać się najnowszej stabilnej wersji Ubuntu z tym dziadostwem, taki już jestem człowiekiem, lubię patrzeć jak świat płonie.
Enlightenment, trochę nie dałem mu się wykazać, jego osobliwy styl mnie po prostu odrzucał.
Używałem przez pewien czas Ubuntu z Mate, było to dość dawno. W tamtym czasie radowały proste rzeczy, gdy w systemie większość rzeczy dało się wyklinać jak na Widnosie byłem zadowolony. Out of the box jest niestety mało ergonomiczny, choć da się z niego sporo uzyskać.
Podobną wadę XFCE4, które jest właściwie nie użyteczne po zainstalowaniu i odstrasza wszystkim, można z niej dużo wykrzesać po włożeniu ogromu pracy.
KDE, dość długo używałem tego środowiska, przepiękne i dopracowane. Przytłacza możliwość konfiguracji no i zawsze szkoda mi było tego RAMu, choć nie narzekam na jakieś braki pamięci, jednak piękne animacje nie były mi nigdy potrzebne. Z drugiej strony Chrome przy otwartych kilku zakładkach potrafi zjeść więcej niż KDE. Zasobożernosć środowisk jest trochę argumentem dziś przestarzałym jeżeli nie używasz sprzętu z demobilu prawdopodobnie masz dość dużo RAMu żeby nawet nie zauważyć różnicy pomiędzy pamięcią-chłonnością poszczególnych środowisk. Świadczy to jednak w pewnym uproszczeniu o złożoności danego środowiska, im środowisko bardziej złożone tym więcej czasu potrzebuje żeby nauczyć się je konfigurować, więcej czasu zajmuje sama konfiguracja, no i więcej rzeczy może się po prostu zepsuć.
Może coś mniej rozbudowanego, Openbox? Trzeba trochę się na męczyć żeby menu kontekstowe myszy dopracować, a i tak będzie śmietnik jak otworzysz kilka okien… Jest coś jeszcze innego...

Przejdźmy do początku

Mniej więcej od lat 70 wykrystalizowywały się dwie drogi interakcji z komputerem. Pierwsza na początku bardziej intuicyjna dla ówczesnych użytkowników, przypominająca w użytkowniku maszynę do pisania, przez wiersz poleceń (Command Line Interface). Sama koncepcja jest prosta przekazujemy komendy za pomocą urządzenia wejścia, najczęściej klawiatury, a komputer zwraca wyniki na urządzeniach wyjścia, na przykład monitorze. W tym podejściu były pewien problem trzeba było nauczyć się komend i tego jak działają. Jest to pewna bariera wejścia dla użytkownika którą musi przebyć żeby efektywnie pracować z komputem. O ile na początku nie był to problem gdy komputerów używali głównie specjaliści, z czasem jasne okazało się że będzie to bariera nie do pokonania dla większości potencjalnych użytkowników.
Drugim podejście do komunikacji człowiek maszyna jest Graficzny interfejs użytkownika (Graphical User Interface), przewagą tego rozwiązania są bodźce wzrokowe które mogą imitować zachowania przedmiotów znanych nam z rzeczywistości. Informacja zwrotna w postać grafiki jest dla większości osób bardzie intuicyjna, przystępna i łatwiejsza niż CLI. Rodziło to kolejne wyzwania jak przedstawić tak abstrakcyjną koncepcje jak wydawanie w końcu nie fizycznej rzeczy jaką jest system operacyjny poleceń wydawały się możliwe namacalne oraz jak zorganizować cały ten abstrakt.
W latach 80 w Xerox Palo Alto Research Center powstał koncept WIMP (windows, icons, menus, pointer) który w zasadzie na dominuje po dziś dzień na większości urządzeń. O ile IMP na przestrzeni lat zmienia się dość dynamicznie, podążał różnymi ścieżkami niektóre były ślepe inne prowadziły do rozdroży, historia ciekawa ale nie będę jej poruszał w tym wpisie. O wiele ciekasz myślą było okno (Windows) jako odizolowaną przestrzeń w której jest uruchomiony program. To rozwiązanie ułatwia nam interakcje z wieloma programami naraz, okno jest płaszczyzną na ekranie gdzie oprogramowanie wyświetla swoje interface do komunikacji z użytkownikiem. Jak tymi oknami zarządzać? Gdy mamy uruchomione jedno okno, problem w zasadzie nie występuje możemy, przeznaczyć cały obszar roboczy dla tego programu. Ale co jeżeli zechcemy uruchomić drugi niezależny program, klienta poczty gdyż musimy wysłać pilnego maila, jak system ma zdecydować które okno jest ważniejsze? O tym decyduje menadżer okien (Windows Menager, WM), program zarządzający rysowaniem okien w systemie.

Dwa podejścia

Xerox Alto

Przenieśmy się do roku 1973 do wspomnianego już Xerox PARC, gdzie zostaje stworzony Xerox Alto, pierwszy komputer osobisty z interface graficznym. Gdy spojrzymy na okna nic poza ascetycznym wyglądem nie odróżnia ich znanych nam z dzisiejszych pulpitów. Okna można przesuwać i decydować o ich położeniu. O tym które okna są rysowane decyduje algorytm na podstawie poleceń użytkownika, które są bardziej lub mniej świadome. Był to pierwszy menadżer stosowy lub menadżer okien pływających (ang stacking window manager lub floating window manager) gdzie założenia projektorowe dają użytkownikowi dużą swobodę w zarządzaniu oknami.

Xerox Star

Gdy przeniesiemy się o 8 lat do przodu do roku 1981 będziemy mogli zaobserwować zupełnie inne podejście do zarządzania oknami. W czerwcu tego właśnie roku Xerox przedstawił następce Alto - Xerox Star. Programy uruchamiały się tu w oknach które miały zdefiniowaną szerokość oraz wysokość, użytkownik nie mógł wybrać gdzie okno programu będzie się znajdować, okna też nigdy nie będą na siebie nachodziły, wyjątkiem stanowią okna dialogowe. Dlaczego zdecydowano się tak radykalnie ograniczyć swobodę zażądania oknami ? Gdy zapoznany się z poniższym wideo z udziałem David Canfield Smith gdzie przedstawia założenia interface Xeroxa którego był jednym z autorów lub zwrócimy uwagę zamieszony poniżej jej fragment wszystko stanie się jasne.

Okno które wyświetlane było na ekranie monitora miało możliwe blisko przypominać kartkę papieru która zostanie wydrukowana. Ograniczenie swobody przełożyło się na zwiększenie produktywności użytkownika, ułatwiło pojęcie pewnego poziomu abstrakcji jakim dla użytkowników była interakcja z komputerem , to co było widziane na ekranie wychodziło z drukarki. Był to protoplasta kafelkowego menadżera okien (ang tiling window manager), dziś oczywiście nikt nie stosuje tego podejścia by ułatwiać tworzenie wydruków.

Wydaje się że historia zdecydowała, kafle nie znalazły swojego miejsca w produktach Appla, na Apple Lisa można było napawać się widokiem okien pływających. Okna Microsoft Windows 1.01 działały pod kontrolą kafelkowego menadżera okien, w następ wersjach tego systemu używany był już menadżer stosowy. W systemach Visi On, GEM i innych które w tamtych latach toczyły bój o pecety, nie brano pod uwagę innego sposobu na zarządzie oknami niż menadżery pływające. Z czasem ulepszono menadżery, dodano funkcje efektów specjalnych które miały upiększyć nasze przestrzenie robocze nazwano to menedżerem kompozycji, takie desktopy znamy dziś, piękne ociekające w ikony, efekty 3D i inne wodotryski. Wydawać by się mogło że kafle umarły i nikt nie będzie po nich płakał. Cóż, może i tak jest w świecie komercyjnego oprogramowania, gdzie nikt nie zaryzykuje zasobów na projekty ryzykowne, przeznaczone dla małego grona odbiorców ale w świecie wolnego oprogramowania grupka zapaleńców może stworzyć pozornie szalony projekt nie bacząc że większość użytkowników nie zrozumie jego geniuszu, uzna go za za trudny lub nie będzie dla nich przydatny, w końcu ryzykują tylko swoim czasem.

W świecie kafelkarzy

Dla serwera X11 pierwszym menadżer okien który pomagał w zarządzania oknami był Siemens RTL Tiled Window Manager, który miał nie dopuścić do nachodzenia na siebie oknie i zasłaniana informacji na nich wyświetlanych. Użytkownik sam rysował myszką pozycję okna na ekranie, jeżeli okno nachodziło na już narysowane, to drugie zwężało się żeby zrobić miejsce pierwszemu. Gdy pierwsze było zamykane, drugie okno wracało do pierwotnych rozmiarów. Nie był on jednak TWM w dzisiejszym rozumieniu sposobu zażądania oknami. Ten styl wyklarował się w roku 2000 gdzie pojawiło się dziś kultowych projektów, ion, ratposion czy larswm , które stały się inspiracją dla kolejnych projektów.

Czym charakteryzuje się Tiling Windows Menager dziś?

Moim zdanie charakteryzuje się 4 cechami:


  • Okna wyświetlane zawsze zajmują całą przestrzeni ekranu, nie ma nie wykorzystanego miejsca

  • Menadżer okien zarządza oknami za użytkownika

  • Zawsze widzisz wszystkie okna, gdyż nie zachodzą na siebie

  • Zoptymalizowanie pod kątem użytkowania klawiatury

Jak to właściwe działa ?

Skąd WM (windows menager) wie jak rozmieścić okna na twoim ekranie?


Tu zaczyna być trochę bardziej skomplikowanie ale i interesując, dominują dwa podejścia oparte na liście (list) i na drzewie (tree). Zanim jednak do nich przejdziemy chciał bym wytłumaczyć czym są tryby (ang. mode). Używamy ich na co dzień nawet w desktopach znanych z Windowsa czy Maca. Najpopularniejszym jest Full screen, znany każdemu piktogram kwadracika, gdy okno przejdzie w ten tryb zajmuje całą przestrzeń ekranu, jeżeli jeszcze raz naciśniemy kwadracik okno wróci do trybu pływającego (float) gdzie możemy sami je przesuwać za pomocą myszy, używamy tego raczej nie zastanawiając się nad tym.

Te tryby też występują w menadżerach kaflowych (choć nie we wszystkich) ale są też inne działające w podobny sposób definiując jak okno ma się zachowywać i gdzie ma zostać rozmieszczone na ekranie. Jednym z najpopularniejszych jest stos (stack), gdzie na połowie ekranu jest jest jedno główne okno a kolejne otwierane będą w drugiej przestrzeni ekranu jedne nad drugim, występuje też w wersji horyzontalnej (hstack) lub z kilkoma oknami głównym (nstack). Kolejnym częstym trybem jest siatka (grid) gdzie okna dzielą przestrzeń po równo między siebie, najczęściej są to 2 wiersze (lub kolumny) po X okien. Są też bardziej egzotyczne tryby w zastosowaniu do okien programów które znamy z innych zastosowań jak na przykład tryb zakładek (tabbed), który działa dokładnie jak zakładki w przeglądarkach.

Dobra ale skąd wiadomo jaki tryb dane okno ma wykorzystywać?

Tu wracamy do podejścia listowego i drzewiastego. Przy podejściu opartym na liście każde okno dostaje swój numer przyporządkowany okno nr 1 zawsze będzie oknem numer 1. Przy tym podejściu tryby są definiowanie dla całej przestrzeni roboczej w jakiej się znajdujemy. Jeżeli dany tryb przewiduje że w danym miejscu znajduje się okno numer 1 tam właśnie się znajdzie, jest to o tyle wygodne że przy zmianie trybu na inny okna zmienią swoje miejsca zgodnie z nowym trybem, jeżeli wrócimy do wcześniejszego trybu okna powrócą na swoją pierwotną pozycje. To podejście daje nam wygodę przełączania się między trybami kosztem elastyczności, nie jest możliwe ustawienie okna wedle nie zdefiniowanego przez programistów sposobu, jest też w mojej opinii dość intuicyjne.

Drugie podejście jest oparte na drzewie, popularnym w informatyce sposobem zarządzania hierarchii obiektów, jeżeli nie spotkałeś się wcześniej z tym określeniem zachęcam do zapóźniań się z nim na przykład na Wikipedii, w przybliżeniu chodzi o to że obiekt może być być obiektem nadrzędnym (rodzicem) względem innego obiektu (dziecka) sam będąc dzieckiem innego obiektu, wyjątkiem jest tu korzeń który nie ma rodziców. W wm opartym o drzewa tryb będziemy nadawać dla rodzica i jego dzieci. Jest to dość zawiły sposób jeżeli nie spotkaliśmy się nigdy z drzewami jako strukturą danych lecz jeżeli opanujemy te zależności szybko okazuje się że daje nam to właściwie nieograniczone możliwości do zarządzania oknami.

Trochę przykładów dla systemów unixopodobnych

dwm – dzięki minimalistycznemu podejściu przy projektowaniu, projekt nigdy nie zajmuje więcej niż 2000 linii w C, zawdzięczamy niewielkie zużycie zasobów. Nie używa przestrzeni roboczych tylko system który nazywa się Tag, dając więcej możliwości w łączenia „przestrzeni roboczych” w jeden Tag. Minimalizmy wymusił implementacje tylko 3 trybów całość jest oparta podejście listowe.

strona projektu:
http://dwm.suckless.org/

awesome – fork dwm z zupełnie innym podejście, podobnie jak dwm jest oparty o liste. Został pomyślany tak ażeby każdy użytkownik mógł dostawać go do swoich najdziwniejszych potrzeb. Jest w zasadzie małym, szybkim frameworkiem napisanym w C oraz Luna. Za pomocą skryptów tego drugiego języka całość można konfigurować do własnych potrzeb, posiada też bogatą dokumentacje. Autorzy projektu bardzo lubili serial How I Met Your Mother , gdyż nazwa pochodzi od frazy której nadużywa jedna z postaci w serialu aby podkreślić nadzwyczajność zdarzenia.

Strona projektu:
https://awesomewm.org/index.html

i3 (aka i3wm) – opary o drzewo, rozbudowany jak na standardy tiling, posiada sporą funkcjonalność „out of box” oraz czytelną dokumentacje, dlatego jest polecany dla początkujących użytkowników. Jego konfiguracja jest prosta i opiera się na jednym pliku tekstowym. Domyślna konfiguracja przypadnie do gustu użytkownikom vi gdyż poruszanie pomiędzy oknami jest podobne do poruszanie po pliku tekstowym oraz podobnie do vi czy emacs posiada tryby które zmieniają zastosowanie klawiszy.

Strona projektu:
https://i3wm.org/

Używam okienek/kafelków od Microsoftu jak żyć w świecie tych lepszych kafelkarzy?

Na początek podzielę się pewnym spostrzeżeniem, jeżeli używasz 7 wersji systemu Microsoftu, to warto nadmienić że to twój menadżer okien to DWM, nie mylić z dwm od suckless.org :-), który dorobił się już trybu Aero Snap, w którym można podzielić ekran na dwia okna, podobnie jak można do zrobić w wiekowości linuksowych środowisk graficznych. Dwie aplikacje to trochę mało, więc Windows 10 ma funkcję Snap Assist gdzie można podzielić ekran na 4 części, jest to namiastka kafelkowych menadżerów okien. Jest to ciekawe że system zatacza koło i możliwa zarządzać oknami w sposób znany z pierwszego jego wydania :)

Jeżeli chcesz zmienić kafle na inne?

bug.n - jest to dodatek do Explorer Shella napisany w większości za pomocą języka skryptowego AutoHotkey, który pomoże zasmakować pełni możliwości nowego podejścia do zarządzania oknami, które możemy dostosowywać no naszych potrzeb edytując pliki konfiguracyjne. Dostaniemy dodatkowe przestrzenie robocze , możliwość dzielenia ekranu , możliwość zarządzania oknami za pomocą skrótów klawiaturowych oraz pasek statusu utrzymany w minimalistycznym stylu, zupełne zaprzeczenie dzisiejszego pulpitu Windowsa. Całość nie wymaga dużej integracji w system.

Strona projektu:
https://github.com/fuhsjr00/bug.n

HashTWM - jeżeli potrzebujemy czegoś mniej burzącego spójność interfaceu, możemy się posłuż HashTWM. Jest to program napisany w całości w C który ma imitować zachowanie dwm (tego od suckless.org), jest to jeden plik binarny który uruchomiony działa w tle. Działa płynnie i jeżeli koś używał dwm wcześniej odnajdzie się w tym w mgnieniu oka. W przeciwieństwie do bug.n program nie dodaje żadnych dodatkowych pasków i nie zaburza spójności interfejsu Windowsa.

Strona projektu:
https://github.com/ZaneA/HashTWM

Na koniec, koniec

Sam zacząłem używać i3wm, skusiła mnie rozbudowana społeczność wkoło tego projektu oraz bardzo przystępna dokumentacja. Nowy sposób używania okien daje nie opisaną ilość radości. Pozbyłem się wszystkiego co mi nie odpowiadało desktopach, wszelakie wodotryski które rozpraszają nie dając właściwie nic w zamian poza wyglądem. Dużo poprawiła się też ergonomia używania systemu, sporą cześć zadań mogę wykonywać bez odrywania rąk od klawiatury. Choć płynnie posługiwałem się klawiaturą po jednym wieczorze, zwalczanie starych nawyków zajęło mi ok tygodnia. Nie oznacza to że myszkę wrzuciłem do szuflady, używam jej rzadziej jednak do niektórych zdań jest nie oceniona. Zachęcam każdego do spróbowania tego rozwiązani, zdecydowanie warto. Choć też warto mieć na uwadze że wymaga to pewnej determinacji i wiedzy oraz chęci nauczenia się czegoś nowego.

Jeżeli temat Cię zainteresował proponuje obejrzeć poniższy film, jeż to wprowadzenie do Tiling Window Managers prowadzone przez Aline Abler która w dość wyczerpujący sposób tłumaczy jak to wszystko funkcjonuje i demonstruje jak poszczególne TWM działają. Całość jest dość długa, trwa ok 2 godzin zachęcam do obejrzenia.

 

windows linux oprogramowanie

Komentarze