Hlavní navigace

Dlaždice trochu jinak: správce oken Sawfish

30. 10. 2014
Doba čtení: 13 minut

Sdílet

Náš seriál o zajímavých správcích oken definitivně končí. V minulém dílu jsme ukončili velkou část o správci oken Awesome a dnes si přidáme ještě jeden zákusek. Seriál totiž společně završíme popisem WM, který sice není dlaždicový, ale každopádně je velmi zajímavý – jedná se o správce oken Sawfish.

Podle mého názoru by se dal Sawfish považovat za poměrně neznámý a ne příliš využívaný WM. Je to ale asi škoda, protože se určitě dá zařadit mezi lehké, ale bezvadně konfigurovatelné WM, který lze použít buď samostatně nebo s některými DE. Zajímavá je třeba kombinace Sawfish a nově vznikajícího DE LXQt. Základní informace o Sawfish v dostatečném rozsahu lze najít na Wiki Sawfish.

Hlavním grafickým motem uvedené stránky je obrázek ryby, podle které se Sawfish nazývá. Český název asi hodně odpovídá obrázku – piloun mnohozubý (Sawfish).

Původně byl Sawfish standardním WM v Gnome, kde byl ale ve verzi 2.2 nahrazen WM Metacity. Pak byl jeho vývoj ukončen, ale znovu obnoven komunitou v roce 2007. Od té doby je pořád ve vývoji a poslední stabilní verzí je 1.10.

Sawfish je napsaný v jazyce C spolu s využitím vlastní verze skriptovacího jazyka na bázi Lispu. Tato implementace se jmenuje REP a obsahuje dvě knihovny: librep a rep-gtk. Rep slouží hlavně k rozšíření možností pro konfiguraci a tvorbu různých rozšíření. Je to asi jedna z výhod i nevýhod tohoto WM. Trochu by se to dalo přirovnat k WM XMonad a Haskellu. Pokud člověk jazyk konfigurace zvládá, je to v pohodě a může se v rámci WM dost realizovat. Zvládnout oba zmíněné jazyky třeba v porovnání s LUA ale není vůbec rychlé a jednoduché. Naštěstí je ale systém konfigurace natolik propracovaný, že běžný uživatel toho o Rep nemusí moc vědět.

Původně jsem měl v plánu, že si na notesu instaluji Debian Testing a na něm Awesome a Sawfish. Nakonec z toho ale sešlo, a tak se mi nechtělo dávat na notes ještě Sawfish vedle Lubuntu. Proto jsem zvolil cestu ukázky na virtuálním stroji. I zde se nabízelo několik možností a já jsem zvažoval dvě z nich:

  1. použít Debian Testing a instalovat pouze Sawfish
  2. když už jsem zmínil kombinaci Sawfish + LXQt, tak použít tuto kombinaci a ukázat obě varianty (samotný Sawfish a Sawfish jako WM v LXQt)

Abych to dlouho nezdržoval, nakonec jsem zvolil druhou možnost, a abych přinesl ještě trochu víc informací, vybral jsem trochu netradiční řešení. Při pátrání po možnostech instalace LXQt na Debian jsem totiž narazil na projekt Siduction. Jedná se o komunitní projekt, který je založený na Debianu Unstable a prostředí LXQt.

Provedl jsem tedy klasické stažení ISO souboru, spuštění Live verze ve VMware Playeru a následnou instalaci. Nebudu ji zde popisovat podrobněji, jenom zmíním, že instalátor je zatím velmi jednoduchý a nemá k dispozici moc voleb. Je ale pro základní věci dostatečný a také trochu výjimečný. Běží totiž jako webová aplikace v prohlížeči (konkrétně QupZilla). Po restartu se objeví přihlašovací okno DM a po přihlášení základní prostředí LXQt. Oboje je vidět na prvních dvou obrázcích v galerii. Více o LXQt je možné získat ze stránek projektu.

Já se o něm nebudu moc šířit, uvedu jenom základní informace:

  • v distribuci je aktuální verze LXQt 0.7.0
  • jádro je zde 3.16–1
  • Sawfish je ve verzi 1.5.3–2.4
  • Openbox je ve verzi 3.5.2–7

Jak už jsem uváděl v minulých dílech, bude mým cílem instalovat nejnovější verzi všech zkoušených WM, takže to nyní budu muset provést i se Sawfish. Pro tento účel je možné využít příslušný repozitář.

Pro jeho zprovoznění musíme udělat několik kroků:

  • do souboru s repozitáři přidat tyto položky:
deb http://apt.nanolx.org/ photonic main
deb-src http://apt.nanolx.org/ photonic main

Zde je oproti verzi Debian Testing a Ubuntu trochu změna. Je sice možné soubory přidat do obvyklého souboru /etc/apt/sources.list, ale ten je nečekaně prázdný a je v něm pouze doporučení vytvořit nový soubor. Takže provedeme další dva kroky:

vytvoříme příslušný soubor s repozitářem: # ~$ sudo touch /etc/apt/sources.list.d/sawfish.list

do něj vložíme výše uvedené odkazy

  • z webu projektu stáhnout příslušný klíč: # ~$ wget http://apt.nanolx.org/photonic.asc
  • přidat tento klíč do balíčkovacího systému: # ~$ sudo apt-key add photonic.asc
  • aktualizovat seznam repozitářů: # ~$ sudo aptitude update
  • instalovat Sawfish: # ~$ sudo aptitude install sawfish
  • ověřit přítomnost nejnovější verze: # ~$ sudo aptitude versions sawfish
  • kdo by si chtěl hrát s nastavením témat, může ještě přidat:  # ~$ sudo aptitude install sawfish-themes

Po instalaci a ověření můžeme zjistit, že je k dispozici verze Sawfish 1.10.99–1nano. Verze balíčku sawfish-themes zůstává pro obě přítomné verze stejná. Po instalaci je možné se odhlásit z aktuálního sezení a v přehledu sezení DM zjistíme, že je tam již Sawfish automaticky zařazen. Proto ho nastavíme a přihlásíme se. Jak je vidět ze třetího obrázku, zdánlivě se nic neděje, vidíme jenom pozadí plochy a žádný panel nebo ikony na ploše či cokoliv jiného. Sawfish je ale už funkční, což můžeme ověřit klikem na prostřední tlačítko myši nebo současným klikem na levé i pravé tlačítko. Touto akcí zobrazíme hlavní menu, které je vidět na čtvrtém obrázku.

Kromě viditelných položek je v menu ještě dalších 5 rozbalovacích, které nebudu zatím popisovat a jenom odkážu na dalších pět obrázků v galerii.

Nyní více k jednotlivým položkám:

  • Workspaces – slouží pro manipulaci s virtuálními plochami
  • Programs – klasické menu, které Sawfish přebírá ze systému
  • Customize – velmi rozsáhlá kolekce možností pro nastavení všech možných aspektů Sawfish
  • Session – klasické menu pro systémové akce jako restart, ukončení, hibernace atd. včetně možností restartu a ukončení samotného Sawfish, zobrazení chyb a aktualizace systémového menu
  • Help – odkazy na web a klasický About – viz desátý obrázek

My se v našem ukázkovém popisu soustředíme pouze na menu Customize, abychom ukázali možnosti uživatelského nastavení Sawfish. Jak si můžete všimnout na příslušném obrázku, má toto menu jednu oddělenou položku (obsahuje všechny ostatní v jednom okně) a 10 samostatných položek. Zase je nebudu v tuto chvíli popisovat, ale odkážu na se na druhou galerii, která obsahuje 11 obrázků se všemi výše uvedenými položkami pro nastavení Sawfish. Na posledním obrázku, který pochází z virtuálního Ubuntu, je pak vidět, že při instalaci české lokalizace v distribuci je v češtině i menu Sawfish.

Z obrázků ve druhé galerii jednoznačně vyplývá, že možnosti konfigurace a nastavení různých součástí Sawfish jsou velmi rozsáhlé. Kompletní popis by asi zabral mnohem více času a místa, než se vejde do jednoho článku. Proto se zaměřím pouze na vybrané části a ostatní nechám na prozkoumání případným zájemcům. Samozřejmě by bylo vítané, kdyby svoje zkušenosti a názory sdělili v diskusi i stávající uživatelé.

Menu Customize obsahuje 11 dalších voleb, kde první z nich má v sobě všech ostatních 10 a uživatel ji může použít pro celkové nastavení prostředí podle svých požadavků a priorit. Já se zde zaměřím pouze na tři vybrané oblasti a ukážeme si nastavení vzhledu prostředí, klávesové zkratky a virtuální plochy.

Pokud otevřeme volbu Appearance, vidíme zde 5 dalších možností. Tu hlavní najdeme na prvním formuláři v rozbalovacím menu Theme, kde se skrývá velké množství témat, které můžeme okamžitě použít pro úpravu prostředí. Možností je skutečně mnoho a já ukážu pouze jednu – Crux. Jak je vidět na prvním obrázku ve třetí galerii, tak se na první pohled změnila dekorace okna a také nám v menu přibyla položka Crux Theme.

Pokud se podíváme pod volbu tématu, najdeme zde nastavení fontů a některé další volby. Pokud bychom chtěli vybrat některou z dalších voleb, tak musíme použít dvojklik myší na příslušný řádek. Jsou k dispozici možnosti nastavení animací při minimalizaci, přesunu a změně velikosti oken, nápověda při najetí na rámeček okna, nastavení obrázku na pozadí, efekty při manipulaci s okny, podrobnější nastavení stylu okna, tlačítek a další. Tyto možnosti zde nebudu podrobněji popisovat a zaměřím se na možnosti změny zvoleného tématu. Z obrázku je zřejmé, že ikona pro zavření okna je v levém horním rohu, což je pro mnohé uživatele nezvyklé a nepříjemné. Proto si otevřeme menu Crux Theme a uvidíme zde rozbalovací menu pro nastavení stylu tlačítek. Jak ukazuje druhý obrázek, je k dispozici celkem 7 možností. Tu základní vidíme na tomto obrázku a dalších 6 pak na následující sérii obrázků. Já jsem ponechal volbu MS Windows a na devátém obrázku je vidět, jak vypadá dekorace a také kompletní menu okna, které je skryté pod ikonou v levém horním rohu. Tím bych nastavení vzhledu ukončil, i když je jasné, že možností je spousta a dalo by se s nimi vyhrát. Myslím si ale, že jsou i důležitější vlastnosti, a proto k nim přejdeme.

Další volbu, kterou jsem vybral, představuje menu Bindings. Jak ukazuje další obrázek v galerii, jsou zde tři oddíly. Nahoře je rozbalovací menu, kde je možné zvolit oblast, které se budou nastavené klávesové zkratky týkat. Pokud si rozbalovací seznam otevřeme (viz další obrázek), tak zjistíme, že je těchto variant poměrně dost a pod nimi už se skrývají některé zkratky, které jsou v Sawfish standardně definované již při instalaci. Já je zde nebudu všechny popisovat ani ukazovat, ale odhadem je jich určitě alespoň 50. Největší část pak tvoří seznam definovaných zkratek pro každou variantu, kde je v tabulce vidět příslušná zkratka a příkaz, který vykonává. Vpravo jsou pak tři ikony pro přidání, úpravu a odstranění klávesových kombinací. Pokud se podíváme na definované zkratky, tak je zde 5 původních systémových položek a jedna uživatelsky definovaná – kombinace Ctrl+Enter otevře terminál.

Pokud na tomto řádku klikneme na ikonu Edit, objeví se formulář, který zobrazuje obrázek číslo 11. Zde vidíme nahoře definovanou kombinaci a tlačítko Grab…, potom sáhodlouhý seznam příkazů (velmi mnoho z nich je již systémově předdefinováno), dále pak (kontextově) editační pole pro zadání údajů, nápověda ke zvolenému příkazu a tlačítka pro potvrzení nebo odmítnutí změn.

Nejjednodušší bude si práci s nastavením ukázat na jednoduchém příkladu. Za tímto účelem si instalujeme jednoduchý spouštěč aplikací Gexec a nastavíme si zkratku Ctrl+Mezerník pro jeho spuštění v rámci Sawfish. Instalaci nebudu popisovat a pustím se rovnou do nastavení klávesové zkratky. K úspěšnému provedení je třeba provést tyto kroky:

  1. nechat nastavené menu Context na hodnotě Global keymap
  2. kliknout na tlačítko Add
  3. v otevřeném formuláři by se sice dala přímo nastavit klávesová zkratka v příslušném editačním poli, ale problém je v tom, že nevíme, jaké zkratky pro jednotlivá tlačítka systém využívá. Proto použijeme zde umístěné tlačítko Grab…, na které klikneme myší
  4. objeví se okno s textem Press key… a my stiskneme kombinaci Ctrl+Mezerník
  5. v poli Key se objeví zkratka C-SPC
  6. v abecedně řazeném seznamu příkazů najdeme položku Run shell command
  7. do zobrazeného editačního pole doplníme příkaz gexec
  8. klikneme na tlačítko OK

Na posledním ze série pěti obrázků, které celý postup zobrazují, vidíme nově vytvořenou zkratku. Nic dalšího již nemusíme dělat či nastavovat a rovnou můžeme novou zkratku vyzkoušet. Že je funkční, ukazuje další obrázek v galerii.

Poslední volbou v nastavení je modifikační klávesa. Jak ukazuje další obrázek, je k dispozici 6 základních možností. Tři z nich jsou naprosto jasné (shift, control, alt) a další už méně jasné (meta, hyper, super). Zde záleží na více okolnostech a je asi nejjednodušší si vyzkoušet, pod kterou z těchto možností se co skrývá. Problém je v tom, že funkce Grab… třeba klávesu Win nebere v úvahu.

V mém konkrétním případě na virtuálním stroji při nastavení na meta klávesa Win nefunguje a pro zkratky začínající W- je nutné použít klávesu Alt.

Pokud se nastaví super nebo hyper, nadále Win nefunguje a navíc přestane fungovat i Alt coby jeho alternativa. Možností nastavení klávesových zkratek je opravdu hodně, ale pro základní přehled bude náš popis dostatečný.

Poslední nastavení z menu Customize, které zde ukážu, je volba Workspaces. Ta umožňuje nastavit virtuální plochy a některé jejich vlastnosti. Základní možnosti volby jsou vidět na dalším obrázku. Jak je z něj vidět, nejsou definované žádné virtuální plochy. Proto použijeme tlačítko Add a přidáme dvě plochy s číselným názvem. Postup a výsledek ukazují další tři obrázky včetně možností volby Viewport. Máme tedy nastavené dvě virtuální plochy, můžeme pomocí zkratek pro manipulaci s nimi vyzkoušet jejich funkčnost, ale vlastně je nikde nevidíme. Využijeme tedy možností, které nám dává kombinace Sawfish + LXQt a zkusíme zobrazit přítomný panel. Spustíme tedy pomocí kombinace Ctrl+Mezerník aplikaci Gexec a zadáme příkaz lxqt-panel. Výsledek vidíme na předposledním obrázku galerie včetně obou definovaných virtuálních ploch.

Asi je logické, že by nebylo úplně špatné mít panel k dispozici již při startu Sawfish. K tomu již musíme použít konfiguraci pomocí uživatelského konfiguračního souboru. O samotné konfiguraci jsem již psal výše a zde uvedu jenom velmi jednoduchý příklad. Vytvoříme konfigurační uživatelský soubor a vložíme do něj tři jednoduché příkazy a vyzkoušíme jejich funkčnost. Postup je následující:

  • vytvoříme soubor $HOME/.sawfishrc
  • tento soubor otevřeme a vložíme do něj tři příkazy:
(require 'sawfish-defaults)
(system "lxqt-panel &")
(system "qlipper &")
  • změny uložíme, ukončíme Sawfish a znovu ho spustíme
  • na posledním obrázku pak vidíme zobrazený panel včetně ikony správce schránky

Tímto bych považoval za dostatečnou exkurzi do zajímavého WM Sawfish. Je určitě dobrým doplňkem nejen při využití některého z popisovaných dlaždicových správců oken. Jak ale ukazuje tento díl našeho seriálu, je možné ho použít i v kombinaci s některým desktopovým prostředím. Osobně si myslím, že LXQt bude do budoucna stále využívanější a jeho kombinace se Sawfish může být pro některé uživatele přínosná a velmi dobře použitelná.

Pokud by ho někdo chtěl takto využít, stačí spustit LXQt, otevřít z panelu ikonu LXQt System Settings a z něj volbu Session Settings, kde se v záložce Basic Settings nachází rozbalovací menu Window manager (automaticky je použitý Openbox, pokud je instalován Sawfish, je možné ho v seznamu vybrat). Jinou varinatou je z hlavního menu otevřít volbu Preferences a v ní pak položku Session Settings.

Zvolený WM je nejlépe rozeznat pomocí kliku myši na ploše. Pokud je nastaven Openbox, prostřední tlačítko nefunguje a klikem pravým se objeví menu LXQt. Pokud je nastaven Sawfish, funguje pravé tlačítko stejně a k tomu ještě prostřední tlačítko tak, jak bylo popsáno u samotného WM Sawfish.

Na závěr celého docela dlouhého seriálu bych uvedl, že mi práce na něm a každodenní využití Awesome přineslo další zajímavý poznatek o možnostech nastavení a přizpůsobení pracovního prostředí pro konkrétní požadavky uživatelů. Je mi jasné, že dlaždicové WM nejsou pro každého. Na druhou stranu si myslím, že pokud je i méně zkušenému uživateli někdo vhodně nastaví, mohou je bez větších problémů používat pro všemožné příležitosti.

Za sebe mohu říct, že už jsem si na kombinaci ovládání klávesnicí, klávesovými zkratkami, MM klávesami a myší zvyknul natolik, že je automaticky používám i tam, kde nastavené nejsou a tím pádem ani nefungují…

Po diskusích s několika uživateli bych si troufal říci, že pro zkušenější uživatele je tato volba velmi vhodná. Zajímavé je, že se podle mého názoru využitelnost samotná a hlavně praktičnost zvyšuje při vyšším využití systému pro různé účely. Nedokážu odhadnout, o kolik se zvýší produktivita práce uživatele po přechodu a nastavení dlaždicového správce oken, ale jsem si jistý, že toto zvýšení není v žádném případě zanedbatelné.

root_podpora

Na úplný závěr bych všem trochu zkušenějším uživatelům, kteří dost intenzivně svůj systém využívají, aby se nad použitím některého z tiling WM vážně zamysleli a případně ho vyzkoušeli. Myslím si totiž, že jim má co nabídnout a může hodně zajímavého přinést.

K tomu bych si dovolil ještě jednu kacířskou myšlenku: zkoušel jsem novou verzi CentOS 7, kde je základním prostředím Gnome Shell. Když už jsem měl toto prostředí k dispozici, tak jsem si našel a vyzkoušel rozšíření, které do Gnome přináší některé funkčnosti tiling WM. Hrál jsem si s tím jenom krátce, ale přesto si myslím, že pro některé uživatel může být i toto celkem schůdná cesta. Hlavně tehdy, když musí nebo chtějí Gnome Shell využívat. Já sám ho sice zatím nepoužívám, ale je mi mnohem bližší, než Unity nebo KDE a jeho nasazení si dovedu celkem dobře představit.

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