Wystrugaj sobie Linuksa
W czasach niepohamowanej konsumpcji oczekujemy rozwiązań gotowych i zapiętych na co najmniej przedostatni guzik. Tym samym w niepamięć odchodzi sztuka improwizacji i modelowania otoczenia według naszego uznania. Na szczęście użytkownicy Linuksa mogą przeciwstawić się tym trendom i popracować nie tylko nad samorozwojem, ale i nad innymi łamigłówkami które umożliwia im modularna budowa systemów linuksowych. Choćby dajmy na to – jak skonstruować swoje własne środowisko graficzne?
Jeśli zapytać by się użytkowników z czego składa się kompletny system graficzny, odpowiedzi mogą być różne. Ikonki, tapeta, okna itp. – i to wszystko będzie prawdą. Jednak podchodząc do tematu samodzielnego wdrażania środowiska graficznego, musimy wzmocnić swoją świadomość o przeróżne nazwy programów. Nieodzowna będzie również biegłość w posługiwaniu się terminalem (instalowanie pakietów, edycja plików z ustawieniami, itp.) – nie jest to zatem zabawa dla negujących jego istnienie.
Debian na początek
Ponieważ jesteśmy sprytni, rozpoczniemy całą zabawę od podstawienia jakiejś „golutkiej” dystrybucji. Polecam wykorzystać do tego typu zabaw [[virtualBox|Virtualboksa]] oraz obraz Debian Netinstall. Jak zainstalować Debiana wszyscy wiedzą, kluczowym będzie jednak pominięcie instalacji jakichkolwiek pakietów – poza narzędziami systemowymi (czyli z listy proponowanych komponentów systemu wybieramy tylko „Podstawowe narzędzia systemowe”). Oczywiście rozróżniamy konto root i zwykłego użytkownika a dla mniejszego zamieszania i w celach testowych dysk (obraz Virtualboksa) traktujemy opcją „Wszystko na jednej partycji”. Całość instalacji wieńczy zapisanie programu rozruchowego (GRUB) i po chwili nasz system jest gotowy na kolejne machinacje. Taki twór zajmuje około 1GB powierzchni dysku i startuje w 5 sekund.
Elementy składowe czarnej otchłani
Po starcie systemu logujemy się jako root i przystępujemy do gromadzenia elementów które będą tworzyły nasze środowisko graficzne. I tutaj się zacznie.
Z czego bowiem składa się takie środowisko? Ilu majsterkowiczów, tyle poglądów na ten temat. Załóżmy jednak, że najpierw będziemy chcieli:
- … aby było graficznie, czyli przede wszystkim potrzebujemy serwera graficznego – w tej roli u nas xserver-xorg,
- … po prostu się zalogować – wymagany będzie również menadżera logowania – u nas [[XDM]],
- … aby było tradycyjnie z paskiem na dole – jako panel przetrzymujący listę programów, zegar i tackę systemową wybierzmy minimalistycznego tint2,
- … by coś umożliwiło nam przeglądanie zawartości naszego dysku i ew. wyświetlało ikony na pulpicie – do tego celu użyjemy nieco zapomnianego [[Menedżer_plików|menadżera plików]] ROX-Filer,
- … nade wszystko zorganizować całość w oknach – na naszego [[Menadżer_okien|menadżera okien]] mianujemy znanego i lubianego [[Openbox|Openboksa]],
Logujemy się zatem jako root i dorzucamy do naszego systemu następujące paczki:
apt-get install xserver-xorg xdm openbox tint2 rox-filer compton roxterm menu menu-xdg xdotool
Wyjaśnienia wymagają paczki roxterm i compton. ROXterm to nic innego jak terminal, którego będziemy bardzo potrzebowali w początkowej fazie dostrajania naszego pulpitu. Opcjonalny Compton to z kolei menadżer kompozycji, przez co nasze środowisko nabawi się przeźroczystości, cieni i innych ciekawostek (kto powiedział, że minimalizm musi być biedny). Paczki menu i menu-xdg ułatwią nam pracę z systemowym menu (i wyświetlanie go przez Openboksa).
Usługa do usługi…
Po zainstalowaniu powyższego robimy restart systemu i po chwili wita nas okno logowania XDM. Nie jest ono piękne, nie jest funkcjonalne (brak wyboru sesji), no ale jest i po zalogowaniu uruchomi nam sesję Openboksa.
Po pierwszy zalogowaniu wszystko wygląda enigmatycznie. Tzn. w zasadzie nic nie wygląda, bowiem widać tylko kursor myszy i szarą tapetę. Na szczęście instynktowne kliknięcie prawym przyciskiem myszy na pulpicie przywoła nam menu, z którego możemy wybrać terminal (mówiłem, że się przyda). Teraz możemy po kolei uruchamiać poszczególne elementy środowiska – zatem panel, menadżer plików i menadżer kompozycji ku uciesze estetów. Każdorazowo dodajemy „&” na końcu komendy. No i w końcu widać jakieś znajome elementy. ROX-Filer uruchamiamy z parametrem „-S”, dzięki czemu zajmie się on wyświetlaniem ikon na pulpicie, tapetą, itp. UWAGA, wszystko uruchamiamy jako zwykły użytkownik.
Dostrajanie
Jak nietrudno zauważyć, całość wygląda dość siermiężnie i niektóre elementy się dublują (panele). Musimy zatem udać się do ustawień ROX-Filera i wyłączyć jego panele (to zadziała po jego ponownym uruchomieniu). Ustawić możemy też i elementy graficzne, a do tego celu potrzebujemy kolejnych paczek. Logujemy się jako root („su”) i instalujemy:
apt-get install gtk2-engines-murrine mate-icon-theme lxappearance
Teraz możemy poprawić nieco wygląd całości za sprawą sprytnego lxappearance. Uwaga, ikony dla menadżera plików wybieramy w jego ustawieniach. W ROX-Filerze znajdziemy również możliwość
dobrania tapety dla pulpitu.
Dla poprawy samopoczucia możemy sobie zainstalować również pierwsze dwa programy użytkowe – przeglądarkę internetową (chromium – dlaczego nie), clipit który zajmie się obsługą schowka oraz mousepad, czyli prosty edytor tekstu. Jeżeli stronimy od [[Vi_(program)|vi]], przydać się też może nasz ulubiony tekstowy edytor tekstu (nano, joe).
apt-get install chromium clipit mousepad
Co by tu jeszcze
Teraz musimy zadbać o dwie sprawy. Pierwszą jest upewnienie się, że po restarcie systemu uruchomią się wszystkie klocki naszego środowiska (te, które odpalaliśmy w terminalu z palca). Musimy w tym celu stworzyć (jako użytkownik) plik ~/.config/openbox/autostart i dopisać w nim:
compton&
rox-filer -S&
tint2&
Globalnie i dla każdego użytkownika zostaną również uruchomione programy widniejące w katalogu /etc/xdg/autostart.
Kolejna kwestia jest nieco bardziej skomplikowana. Otóż ROX-Filer w roli zarządcy pulpitu ograniczył nam możliwość wyświetlenia podręcznego menu systemowego. Musimy zatem podpiąć je pod jakiś skrót klawiszowy (domyślne Super + Space – u mnie nie zadziałało). Co więcej, możemy się pokusić o umieszczenie zgrabnej ikonki na panelu, która posłuży nam za menu systemowe.
W tym celu najpierw edytujemy ~/.config/tint2/tint2rc i wkleić do niego:
panel_items = LTSC
# Launcher
launcher_padding = 5 1 5 1
launcher_background_id = 4
launcher_icon_theme = menta
launcher_icon_size = 24
launcher_item_app = /usr/share/applications/menu.desktop
launcher_item_app = /usr/share/applications/chromium.desktop
launcher_item_app = /usr/share/applications/roxterm.desktop
launcher_item_app = /usr/share/applications/rox-filer.desktop
launcher_item_app = /usr/share/applications/mousepad.desktop
Zapisujemy, restartujemy tint2 (pkill tint2;tint2%). Teraz tworzymy jako root plik /usr/share/applications/menu.desktop i wklejamy doń:
[Desktop Entry]
Encoding=UTF-8
Name=Tint2 Openbox Menu
Comment=Tint2 Openbox Menu Hack
X-GNOME-FullName=Openbox Menu
Exec=xdotool key alt+ctrl+space
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=debian-logo
Categories=Menu;
MimeType=
StartupNotify=true
Na tym nie koniec. Otwieramy ~/.config/openbox/rc.xml i doklejamy/poprawiamy w nim skrót klawiszowy do wywołania menu (ctrl+alt+space):
<keybind key="C-A-space"> <action name="ShowMenu"> <menu>root-menu</menu> </action> </keybind>
Uwaga, należy zwrócić uwagę, aby wkleić to w sekcji „Keyboard” wspomnianego pliku i poza pozostały deklaracjami „keybind” (a nie w ich środku). Plik zapisujemy.
I co nam wyszło?
Po tych wszystkich manewrach otrzymaliśmy minimalistyczne środowisko, które po starcie potrzebuje około 70MB pamięci RAM. Brakuje w nim z pewnością wielu innych elementów (choćby menadżer sieci – np. wicd), ale uzyskaliśmy podstawową funkcjonalność i jesteśmy w stanie zarządzać nim graficznie. Kwestią gustu jest również dobór poszczególnych składowych – specjalnie użyłem mało znanych i abstrakcyjnych (zapomnianych programów), aby nie było za łatwo.
Jeżeli ktoś zadaje sobie teraz pytanie „po co to wszystko”, to wystarczy sobie wyobrazić sytuację w której będziemy próbowali reanimować leciwy sprzęt. Zamiast testować dziesiątki lekkich dystrybucji, możemy w 30 min. zbudować swój własny kawałek pulpitu.