Hlavní navigace

Arch Linux: klávesové zkratky, spouštění a autostart aplikací

28. 4. 2016
Doba čtení: 12 minut

Sdílet

Minulý článek byl věnován instalaci balíčků z AUR a konfiguraci hlavního menu. Dnes se budeme věnovat klávesovým zkratkám, spouštěčům aplikací včetně konfigurace jejich automatického startu.

minulém článku jsme si ukázali možnosti generování hlavního menu JWM pomocí příslušné aplikace z repozitáře AUR. Dnešní díl zahájíme nastavením klávesových zkratek, které nám umožní vykonávat vybrané operace. Všechny tyto zkratky se nacházejí v dílčím konfiguračním souboru keybinds. Do přílohy dáváme jeho původní podobu. Pokud se podíváme na jeho obsah, tak zjistíme, že obsahuje dvě skupiny položek. První je velmi obecná a nemá smysl se jí podrobněji zabývat. Druhá už obsahuje celkem 10 akcí, které nám mohou při ovládání JWM pomoci. Všechny zadané položky samozřejmě obsahují akce, které jsou uvedené v seznamu na stránkách dokumentace JWM Key Bindings. Než se dostaneme k samotným položkám s akcemi, tak musíme probrat dvě zásadní záležitosti. První z nich je obecný formát položky s klávesovou zkratkou. Ten samozřejmě vychází z dokumentace a vypadá následovně:

<Key mask="mask" key="key">action</Key>

Klávesová zkratka se tak skládá ze tří částí:

  1. mask – definuje jednu nebo více tzv. modifikačních kláves (modifikátorů) a není povinná. Modifikátor je klávesa, která se při volání dané zkratky drží a k ní se přidává stisk další definované klávesy. Modifikátory jsou většinou systémové klávesy, které jsou v JWM deklarovány pomocí písmen a čísel. Přehled je na stránkách dokumentace: A-Alt (mod1), C-Control, S-Shift, 1-mod1, 2-mod2, 3-mod3, 4-mod4, 5-mod5
  2. key – definovaná klávesa. Může se lišit podle typu klávesnice (využití multimediálních kláves, speciálních kláves na programovatelných klávesnicích atd.). Po jejím stisknutí se provede definovaná akce
  3. action – akce ze seznamu platných akcí na stránkách dokumentace

Druhá věc, kterou si musíme nějak definovat, je rozsah a obsah klávesových zkratek, které chceme používat a mít deklarované. Abychom uvedli nějaký konkrétní příklad, tak si zadáme tyto předpoklady:

  • pro naše potřeby si definujeme specifický modifikátor, který bude sloužit pro spouštění uživatelsky definovaných klávesových zkratek
  • budeme deklarovat zatím 4 klávesové zkratky pro spuštění terminálu, textového editoru, správce souborů a webového prohlížeče (kopírujeme tak první 4 položky hlavního menu s přímým spuštěním vybraných aplikací)

S výběrem modifikátoru je někdy docela problém (hlavně třeba v dlaždicových správcích oken, kde je defaultně definované velké množství klávesových zkratek) v tom, že by mohl duplikovat a přepisovat některé výchozí klávesové zkratky. Proto je třeba vždy vycházek z výchozího nastavení WM a snažit se najít vhodné řešení. Naštěstí je možné definovat modifikátor pomocí více kláves, takže to většinou není nemožné. My si pro naše účely zvolíme málo používanou kombinaci (která ale „neláme“ uživatelské prsty…) kláves Win+Alt. Klávesa Alt je přímo definovaná v přehledu modifikátorů, takže je jasná. Klávesa Win ale explicitně definována není, a proto musíme použít její jiné označení mod4. Do příslušného konfiguračního souboru si tak přidáme 5 nových řádků včetně komentáře:

<!-- User Applications -->
<Key mask="A4" key="Return">exec:lilyterm</Key>
<Key mask="A4" key="b">exec:netsurf</Key>
<Key mask="A4" key="e">exec:mousepad</Key>
<Key mask="A4" key="f">exec:xfe</Key>

Jako modifikátor můžeme samozřejmě použít i kombinaci 4A, výsledek bude stejný. Prostě a jednoduše: podržíme kombinaci kláves Win+Alt a k tomu stiskneme jednu z definovaných kláves a zadaná akce se spustí a s ní příslušná aplikace. Princip klávesových zkratek je asi jasný, takže se můžeme vrátit k výchozím volbám. Ty si nebudeme nijak rozebírat, pouze k nim přidáme další akci – minimalizaci a obnovení všech otevřených oken na ploše tak, jak to máme definováno v panelu. Proto přidáme další řádek v tomto formátu:

<Key mask="A" key="x">showdesktop</Key>

Na závěr této kapitolky dáváme do přílohy konečnou verzi konfigurace klávesových zkratek. Nyní bychom se sice mohli věnovat dalším možnostem konfigurace JWM, ale zatím to necháme na pozdější dobu. Už nám toho mnoho nezbývá a tak se trochu zastavíme u jedné důležité kapitoly desktopových systémů – spouštění aplikací. Zatím jsme si ukázali spouštění aplikací pomocí panelu, hlavního menu a klávesových zkratek. To vše samozřejmě funguje a můžeme to kdykoliv a kdekoliv využít. Bylo by ale určitě vhodné upozornit na to, že na tuto činnost existují specializované aplikace jak řádkové, tak grafické. My si jich zde pár uvedeme a ukážeme si, jak je možné jich využít ve spojení s JWM. Začneme těmi jednoduchými, které se ale mohou hodit pro některou skupinu uživatelů. Existuje samozřejmě více možností, ale my zde uvedeme pouze tři:

  • dmenu – součást projektu suckless.org, původně vytvořené pro DWM. Je to dynamické menu pro základní grafické prostředí, viz dmenu
  • gmrun – jednoduchý program, který otevře okno pro spouštění aplikací – viz gmrun
  • rofi – aplikace, která může nahradit dmenu a přidává přepínání mezi otevřenými okny a spouštění ssh připojení. Je to pořád ještě jednoduchý, ale docela komfortní a zdá se, že i celkem opomíjený spouštěč – viz rofi

Všechny uvedené aplikace jsou v oficiálních repozitářích, takže si je instalujeme jednoduchým příkazem

packer -S dmenu gmrun rofi

Jedná se opravdu o malé aplikace, protože se stahují celkem 4 balíčky s výslednou velikostí cca 380 kB. Aplikace máme instalované a postupně se na ně podíváme blíže. Na prvním obrázku první galerie vidíme nápovědu k dmenu. Není nijak moc vypovídající, ale jedná se o jednoduchou aplikaci, a tak toho nebudeme moc potřebovat. Pro odzkoušení si přidáme klávesovou zkratku v tomto formátu:

<Key mask="A4" key="p">dmenu_run -fn monospace:bold:size=11</Key>

Pro spuštění jsme pouze nastavili velikost tučného fontu a na druhém obrázku první galerie vidíme výsledek spuštění. Jak je z obrázku zřejmé, dmenu zahrnuje všechny aplikace z adresáře /usr/bin. O využití dmenu v Arch Linuxu je možné se opět dočíst na wiki Arch dmenu. Jako další si ukážeme gmrun a přidáme si jeho spuštění klávesovou zkratkou

<Key mask="A4" key="g">exec:gmrun</Key>

Třetí obrázek v první galerii ukazuje nápovědu a čtvrtý pak tuto aplikaci po spuštění. Požadované aplikace se zadávají buď psaním do editačního pole nebo výběrem z již dříve zadaných (ukládá se historie příkazů). Více o funkčnosti a konfiguraci gmrun je možné zjistit na ArchWiki Arch gmrun. Jako poslední z kategorie jednoduchých spouštěčů je rofi. Nápověda je vzhledem ke spoustě možností konfigurace příliš rozsáhlá, takže jí dáváme do přílohy Rofi-help. V našem seriálu si ukážeme rofi pouze jako spouštěč aplikací a v jednoduché verzi je vidět na pátém obrázku v první galerii. Jak je z obrázku patrné, také si vybírá aplikace ze stejného adresáře, jako dmenu. Rozdíl je ale v tom, že rofi si pamatuje četnost spouštění jednotlivých aplikací a jejich zobrazení odpovídajícím způsobem řadí od nejpoužívanější (ty pak přeřazuje nad abecedně řazené všechny dostupné aplikace). My si pro spuštění upravíme konfiguraci

<Key mask="A4" key="space">exec:rofi -show run -lines 20 -columns 2</Key>

Výsledek spuštění si zatím nebudeme předvádět a pokusíme se kromě změny v zobrazení položek (výchozí hodnoty jsou pro viditelné položky 15 řádků v jednom sloupci) změnit i vzhled zobrazeného okna. K tomu nám bude sloužit ukázka a kód na stránkách projektu Rofi Themes a také Arch Wiki Arch Xresources. Ke změně vzhledu musíme udělat tři kroky:

  1. vytvořit nový soubor $HOME/.Xresources
  2. na uvedené stránce projektu zkopírovat vybrané téma (v našem případě solarized_alternate.theme), kód vložit do výše vytvořeného souboru a změny uložit
  3. ukončit a znovu spustit JWM (jeho restart nestačí!)

Výsledek pak vidíme na pátém obrázku v první galerii. Z vlastní zkušenosti mohu konstatovat, že rofi je velmi zajímavý spouštěč a pro určitou skupinu uživatelů může být řešením. Já osobně ho používám v rozšířeném módu jak na WM Awesome, tak v jednoduchém na notesovém JWM. Tímto konstatováním se dostáváme k další skupině spouštěčů, které jsou již o dost složitější, graficky provedené a také samozřejmě náročnější na systémové zdroje. Prakticky všechny umožňují kromě spouštění aplikací také otevírat soubory všeho druhu, webové stránky, záložky atd. Z této skupiny jsme vybrali 4 zástupce:

  • Gnome-do – Gnome-do, je v repozitáři
  • Kupfer – Kupfer, je v AUR
  • Launchy – Launchy, je v repozitáři
  • Synapse – Synapse, je v repozitáři

Instalaci si rozdělíme na dvě části a tři zástupce z oficiálního repozitáře si nainstalujeme jedním příkazem

packer -S gnome-do launchy synapse

Jak již bylo řečeno výše, jedná se o grafické a komplexní aplikace, takže tyto tři zaberou následně cca 270 MB (skoro polovinu zabere framework mono…). Posledního zástupce z AUR instalujeme zvlášť:

packer -S kupfer

Ten sám se svými závislostmi zabere cca 98 MB na disku. Nebudeme zde jednotlivé spouštěče podrobněji rozebírat, jenom ukážeme jejich vzhled a případně možnosti nastavení. Všechny tyto spouštěče můžeme samozřejmě aktivovat podobným způsobem, jako předchozí skupinu – z menu nebo klávesovou zkratkou. Další možností je pak spuštění při startu grafického prostředí nebo JWM, kdy se tyto aplikace „usadí“ v systémové části panelu a zde číhají na svojí aktivaci. Na tomto místě si možnosti spuštění aplikace při startu JWM nebudeme ukazovat (při spouštění grafického prostředí jsme si to již předvedli, u JWM to necháme na později). Šestý a sedmý obrázek v první galerii nám ukazují spuštěné Gnome-do (po zadání částečného názvu aplikace Xarchiver) a možnosti nastavení. Stejné akce jsou na osmém a devátém obrázku v první galerii pro Kupfer, na předposledním a posledním obrázku první galerie pro Launchy.

Posledního zástupce Synapse jsme schválně nechali samostatně. Je to totiž aplikace, která je podobná tomu, co je známe třeba z Gnome3 nebo dalších DE/WM. První a druhý obrázek druhé galerie ukazují stejné akce, jako v předchozích případech. Další aplikace, kterou můžeme do této skupiny zařadit, je přece jenom trochu odlišná. Má v sobě sice také funkci spouštěče aplikací, ale slouží hlavně jako dokovací panel (pro představu něco, jako je v Ubuntu Unity nebo OSX). Jedná se o aplikaci plank – plank, který původně pochází z projektu Pantheon. My si ho instalujeme z oficiálních repozitářů příkazem

packer -S plank plank-config

Nakonec se instalují tři balíčky s výslednou velikostí cca 3.1 MB. Na třetím obrázku ve druhé galerii je vidět samotná spuštěná aplikace a možnosti jejího nastavení (již po provedených změnách – umístění vlevo, původně dole a velikost ikon 36, původně 48 bodů). Jak z obrázku vyplývá, jsou zde ke spuštění připravené dvě aplikace – Nomacs a Xfw. Čtvrtý obrázek druhé galerie ukazuje, co se stane po kliknutí pravým tlačítkem myši na některou ze dvou uvedených aplikací, resp. jejich ikon. Výchozí varianta je zaškrtnutí příslušné volby, které ukotví aplikaci v doku. Pokud se volba odškrtne, aplikace z doku zmizí. Pak jsou zde tři aplikace, které jsou spuštěné a které plank také ukazuje. Spuštění je detekováno „modrou žárovkou“ na levém okraji příslušné ikony (pro lepší zřetelnost bylo nastaveno světlejší téma Adwaita). Při pravém kliku na tuto ikonu se objeví něco, co ukazuje pátý obrázek ve druhé galerii. Podle obrázku máme stejnou možnost jako v předchozím případě – přidat aplikaci do doku zaškrtnutím volby. Vzhledem k tomu, že se jedná o spuštěnou aplikaci, můžeme ji také z doku zavřít.

Pokud bychom spustili další instanci např. terminálu, tak se to projeví jednak v doku (je to sice málo viditelné, ale modré žárovky jsou tam opravdu dvě…) a také po pravém kliku na ikonu – viz šestý obrázek druhé galerie. Kromě jiného je vhodné upozornit na možnosti konfigurace skrývání doku. To je nastavené na variantu tzv. inteligentního skrývání. To funguje tak, že pokud na ploše nejsou maximalizovaná okna, tak je dok viditelný. Pokud se alespoň jedno okno maximalizuje, tak dok zmizí a objeví se přes všechna okna najetím kurzoru myši do jeho prostoru na levé hraně plochy. Tím bychom asi mohli popis spouštěče plank ukončit s tím, že by bylo pro případné zájemce vhodné uvést alespoň základní porovnání uvedených spouštěčů s ohledem na „spotřebu paměti“. Nemá valný smysl uvádět přesná čísla (obsazení paměti se pohybuje od několika málo MB do cca 30 MB, jenom pro ilustraci), takže provedeme relativní srovnání všech výše uvedených spouštěčů aplikací:

Aplikace Relativní potřeba RAM
Rofi 100 %
Dmenu 26 %
Gmrun 70 %
Launchy 210 %
Plank 310 %
Kupfer 460 %
Synapse 510 %
Gnome-do 660 %

To by mohlo k tématu spouštění aplikací pro naše potřeby stačit a můžeme se vrátit ke konfiguraci JWM. Výše v textu jsme narazili na možnost spuštění aplikací při startu JWM. Není náhoda, že zrovna plank je k tomu docela vhodný. Proč tomu tak je? Třeba v případě, že bychom měli na stroji více WM či DE, tak nemá smysl startovat aplikace s grafickým prostředím a třeba do Gnome nebo Unity přidávat plank, když už tam jeden dokovací panel je! To, co zde uvedeme na jednom konkrétním příkladě samozřejmě platí obecně a můžeme to použít pro libovolnou aplikaci, které se má při startu JWM spustit. Aby to bylo ještě zajímavější, tak si do systému přidáme další aplikaci, která se pro spuštění při startu WM hodí:

packer -S network-manager-applet

Pro realizaci našeho plánu použijeme možnosti, které nám JWM dává a které jsou patrné z dokumentace. Jedná se o tři velmi podobné akce:

  • RestartCommand – provede zadaný příkaz/y při restartu JWM
  • ShutdownCommand – provede zadaný příkaz/y při ukončení JWM
  • StartupCommand – provede zadaný příkaz/y při startu JWM

Při ukázce budeme uvažovat s variantou, že se nám časem mohou hodit všechny uvedené akce, a začneme tím, že si v adresáři $HOME/.config/jwm přidáme tři další dílčí konfigurační soubory:

touch restart shutdown start

Do všech takto vytvořených souborů přidáme hlavičku JWM konfiguračního souboru

<?xml version="1.0"?>
<JWM>

</JWM>

Změny uložíme a otevřeme si soubor $HOME/.jwmrc a přidáme do něj odkazy na tři nově vytvořené dílčí konfigurační soubory

<Include>$HOME/.config/jwm/restart</Include>
<Include>$HOME/.config/jwm/shutdown</Include>
<Include>$HOME/.config/jwm/start</Include>

Pak se znovu vrátíme k souboru $HOME/.config/jwm/start a přidáme do něj dva řádky

<StartupCommand>plank</StartupCommand>
<StartupCommand>nm-applet</StartupCommand>

Nakonec můžeme použít příkaz na kontrolu konfigurace, JWM ukončit a znovu spustit. Plank se nám objeví na levém okraji plochy a v systémové oblasti panelu se objeví nová ikona síťového nastavení (je třeba upozornit na to, že není funkční, ale to nás v tuto chvíli nemusí trápit). Na zvýšení přehlednosti obrázků (na sedmém obrázku ve druhé galerii je vidět spuštěný Plank a osmý obrázek druhá galerie pak ukazuje dvě ikony v systémové oblasti panelu) byl změněn motiv ikon. Pokud to má u některých aplikací význam, můžeme u nich použít i volbu pro start na pozadí a zadat příkaz pro jejich spuštění v tomto formátu:

root_podpora

<StartupCommand>nm-applet &</StartupCommand>

Jak ukazuje poslední obrázek ve druhé galerii, kontrolor konfigurace sice protestuje, ale danou aplikaci bez problémů spustí. Na konec dnešního dílu dáváme do přílohy nové verze souborů jwmrc a start.

Dnešní díl jsme věnovali konfiguraci klávesových zkratek pro spuštění vybrané sady aplikací. Také jsme si ukázali několik možností spouštěčů aplikací od těch jednoduchých až po vypracované grafické včetně dokovacího panelu. Díl jsme pak ukončili krátkým popisem konfigurace pro automatický start aplikací včetně akcí při ukončení a restartu JWM. V příštím dílu se budeme věnovat správě sezení pomocí nástrojů JWM, uživatelskému zamykání obrazovky a představíme si také jednoduchou aplikaci pro kompletní správu sezení.

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