Hlavní navigace

Dlaždicový (tiling) správce oken v Linuxu

3. 8. 2016
Doba čtení: 5 minut

Sdílet

Dnes začíná série článků o dlaždicových (tiling) správcích oken. V článku se zaměříme hlavně na přípravu virtuálního stroje pro ukázkové příklady včetně základní sady aplikací pro konkrétní demonstrační účely.

Na toto téma zde probíhal rozsáhlejší seriál Dlaždice trochu jinak před dvěma lety. Tento seriál uváděl jednak podrobněji popis okenních správců Sawfish, Subtle, XMonad, Awesome a také obecnější popis tohoto typu správců a jejich odlišností od těch „běžných“ a většinově používaných. Proto se v seriálu aktuálním nebudu nijak podrobně zabývat obecnou částí a pustím se rovnou do představení konkrétně vybraných zástupců. Po dohodě s redakcí jich tentokrát bude ještě o něco více s tím, že u několika provedu podrobný popis instalace a konfigurace a u dalších pouze stručné popisky. Konkrétně se jedná o tyto zástupce z celé škály dostupných správců (dále jen WM):

Podrobný popis

Stručný popis

Při výběru jsem vycházel ze srovnání převážně aktivně vyvíjených WM, které je na ArchWiki: Srovnání dlaždicových WM. Zde mohou případně zájemci najít další informace o vybraných zástupcích nebo je porovnat s těmi minule představenými nebo si najít nějakého svého favorita. Než přistoupím ke konkrétnímu popisu jednotlivých vybraných WM, je nutné si připravit nějaké prostředí, na kterém se bude vše potřebné demonstrovat. Jak je asi možné očekávat, vše se budu snažit ukázat na jednom virtuálním stroji. K jeho vytvoření využiji poznatky a konfigurace z předchozích dvou seriálů a stroj bude vypadat následovně:

  • základ bude vytvořen na Manjaro Linux s tím, že si převezmu kompletně konfigurované prostředí JWM ze seriálu o Arch Linuxu
  • pro instalaci virtuálního stroje se použije aktuální médium pro síťovou instalaci – manjaro-net-16.06.1-x86_64.iso
  • stroj bude mít 4 GB paměti, 4 jádra a disk o velikosti 50 GB
  • při dělení disku vytvořím 4 oddíly: boot (ext2), swap, root (XFS), home (BTRFS)
  • pro ukázku použiju lokalizované prostředí (locale = cs_CZ.UTF-8, keymap = cz-qwertz)
  • po instalaci provedu dříve popsaným způsobem i lokalizaci systémového prostředí v terminálu
  • jako shell bude použit opět dříve zmíněný Fish, pro zájemce z řad pokročilých uživatelů uvedu pouze odkaz na další možnosti jeho rozšíření a konfigurace Oh My Fish
  • jako správce balíčků budu ve všech případech používat standardně instalovaný yaourt
  • po základní instalaci provedu kompletní aktualizaci systému a restart stroje

Po přípravě základní verze virtuálního stroje bude nutné provést instalaci základní sady aplikací a balíčků, které budou vhodné či nezbytné pro další práci. Aby mohli případní zájemci celé prostředí reprodukovat, uvedu zde trochu podrobněji všechny balíčky či aplikace, které budu používat. Je možné to rozdělit do několika skupin:

Základní grafické prostředí a systémové balíčky

  • xorg – skupina balíčků se základním grafickým systémem stroje
  • xterm – systémový emulátor terminálu
  • mc – textový správce souborů
  • git – klient pro distribuovaný systém kontroly verzí (VCS)
  • jwm – použitý WM

Systémové aplikace pro kompatibilitu s přeneseným WM

  • dunst – jednoduchý správce notifikací
  • rofi – spouštěč aplikací
  • dmenu – jednoduchý spouštěč aplikací
  • gmrun – okenní spouštěč aplikací
  • scrot – aplikace pro pořízení snímků obrazovky
  • i3lock – aplikace pro zamykání obrazovky
  • oblogout – aplikace pro správu sezení
  • awoken-icon-theme – téma ikon, použité pro vytvoření hlavního menu v JWM

Grafické aplikace pro běžnou práci

  • lilyterm – emulátor terminálu
  • mousepad – jednoduchý textový editor
  • xfe – jednoduchý správce souborů
  • netsurf – jednoduchý webový prohlížeč
  • xarchiver – správce archivů
  • evince – prohlížeč souborů, hlavně PDF
  • nomacs – prohlížeč obrázků
  • osmo – personální organizér
  • filezilla – klient pro FTP připojení k mateřskému stroji
  • p7zip, xdotool – pomocné nástroje

Nástroje pro překlad zdrojových kódů a instalaci balíčků z AUR

  • GCC – kolekce překladů jazyka C/C++ (jako závislost obsahuje balíček binutils)
  • make – nástroj pro správu skupin programů, automatizovaný překlad zdrojových kódů do binárních souborů
  • automake – nástroj pro automatickou tvorbu souborů pro překlad
  • cmake – víceplatformní nástroj pro překlad zdrojových souborů
  • autoconf – nástroj pro automatickou konfiguraci zdrojových kódů
  • patch – nástroj pro změny (záplatování) originálních zdrojových kódů
  • fakeroot – nástroj pro simulaci přístupových práv administrátora

Další dva potřebné balíčky (xorg-setxkbmap, numlockx) není nutné na rozdíl od Archu instalovat, v Manjaro jsou v základní sadě k dispozici. Pro příští porovnání potřeby systémových zdrojů jsem instalovat obvyklou sadu monitorovacích nástrojů v balíčcích htop, lxtask, gnome-system-monitor. Jako poslední zmínku bych chtěl upozornit na náhradu správce schránky (dříve byl použit ClipIt) prostřednictvím aplikace CopyQ (je k dispozici v AUR).

Na konec popisu vytvoření nového stroje dám celkový obrázek prostředí

Vzhled prostředí Manjaro Linux + JWM

a samotné aplikace CopyQ.

Okno aplikace CopyQ

Ještě předtím, než budu instalovat první čtyři dlaždicové WM na ukázku, je potřeba si připravit příslušným způsobem prostředí na jejich následné spuštění. Bylo by samozřejmě možné vždy udělat jenom jednoduchou změnu v souboru $HOME/.xinitrc a vždy změnit poslední řádek, který má aktuálně tvar

exec jwm

Pro ostatní WM by pak mohl mít tvar následující:

exec dwm
exec notion
exec qtile
exec spectrwm

Je možné ale použít další variantu, která umožní spustit vybraný WM při startu grafického prostředí. Dokonce zde předvedu dvě velmi podobné varianty, které mají stejnou funkci a výsledek. Obě znamenají smazání aktuálního posledního řádku se spuštěním WM a jeho nahrazení výběrem. Zde je varianta první:

session=${1: -jwm}

case $session in
    dwm ) exec dwm;;
    jwm ) exec jwm;;
    nwm ) exec notion;;
    qwm ) exec qtile;;
    swm ) exec spectrwm;;
    *   ) exec $;;
esac

Já pro nasazení volím druhou variantu, která do budoucna přinese určité výhody při další konfiguraci (uvidí se až při dané akci):

DEFAULT_SESSION=jwm

case $1 in

    jwm)
        exec jwm
    ;;
    dwm)
        exec dwm
    ;;
    nwm)
        exec notion
    ;;
    qwm)
        exec qtile
    ;;
    swm)
        exec spectrwm
    ;;
    *)
       exec $DEFAULT_SESSION
    ;;
esac

Pokud by někdo nechtěl do souboru přidávat více variant, může samozřejmě použít obecný příkaz pro spuštění konkrétního WM ve tvaru např.

startx /usr/bin/qtile

V mém konkrétním případě je možné spuštění buď příkazem

startx

který spustí výchozí WM, kterým je v mém nastavení JWM. Pro jiný WM je možné použít příkaz ve tvaru např.

startx  ~/.xinitrc qwm

Další možností je pak zkopírovat příslušný soubor do domovského adresáře

cp /etc/X11/xinit/xserverrc /home/vojtaj/.xserverrc

Pak je nutné tento soubor ($HOME/.xserevrrc) a upravit tak, aby měl tento obsah:

#!/bin/sh

exec /usr/bin/Xorg -nolisten tcp "$@" vt$XDG_VTNR

V tomto případě je možné jednotlivé WM spouštět pomocí příkazů

xinit

pro výchozí sezení nebo konkrétních VM podle vzoru

UX DAy - tip 2

xinit qwm

Je také možné spouštět přímo vybrané sezení pomocí uživatelského shellu, ale tuto variantu si nechám až na později. Dnešní díl tímto ukončím a v příštím už se společně podíváme na konkrétnější věci.

Dnešní díl jsem prakticky celý věnoval obecným věcem ohledně přípravy virtualizovaného prostředí pro deklarovaný účel. Hlavně byla popsána konfigurace virtuálního stroje, jeho základního prostředí a základní sady aplikací pro potřebné úkony a operace. Díl byl ukončen popisem možností pro spouštění většího počtu WM na jednom stroji. V příštím dílu se již pustím do popisu čtyř vybraných WM v jejich základní konfiguraci a zaměřím se na prvního vybraného adepta podrobněji.

Byl pro vás článek přínosný?