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 golutki jak go stworzyli

Debian na początek

Ponieważ jesteśmy sprytni, rozpoczniemy całą zabawę od podstawienia jakiejś „golutkiej” dystrybucji. Polecam wykorzystać do tego typu zabaw 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.

Początki są trudne…

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 menadżera plików ROX-Filer,
  • … nade wszystko zorganizować całość w oknach – na naszego menadżera okien mianujemy znanego i lubianego 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).

Brniemy dalej

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.

Ikony i tematy graficzne

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, przydać się też może nasz ulubiony tekstowy edytor tekstu (nano, joe).

apt-get install chromium clipit mousepad

Ikony i inne ustawienia

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.

Małe, zgrabne i przytulne nasze własne środowisko graficzne

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.