Hlavní navigace

Konfigurace Spectrwm – spouštění aplikací, rozložení oken, nastavení panelu

8. 9. 2016
Doba čtení: 9 minut

Sdílet

Minulý díl byl věnován popisu práce s pracovními plochami a nastavení globálních parametrů prostředí. V dnešním dílu se zaměřím na popis spouštění aplikací, rozložení oken na ploše a manipulaci s nimi.

Minulý díl jsem ukončil přípravou konfiguračních souborů na úpravu sekce pro spouštění aplikací. Než se pustím do konkrétních kroků, tak by asi bylo vhodné si stanovit některé základní předpoklady:

  • spouštěné aplikace, které budou v konfiguraci, si rozdělím na tři typy: systémové funkce prostředí, spouštěče aplikací a základní sadu uživatelských aplikací
  • modifikátor nastavím tak, aby nekolidoval s běžnými klávesovými zkratkami ve standardní konfiguraci (u mne důležité i proto, že některé kombinace Spectrwm jsou stejné jako moje nastavení mateřského Awesome!)
  • všechny akce pro spuštění vybraných aplikací a funkcí budou v hlavním konfiguračním souboru, z toho lokalizovaného se naopak odstraní

Akci začnu tím, že z lokalizovaného konfiguračního souboru odstraním tyto funkce:

  • bind[lock]        = MOD+Shift+Delete – uzamčení obrazovky
  • bind[menu]      = MOD+p – spuštění aplikace dmenu
  • bind[quit]         = MOD+Shift+q – ukončení WM
  • bind[restart]    = MOD+q – restart WM
  • bind[term]        = MOD+Shift+Return – spuštění aplikace XTerm

Pro přidání akcí do hlavního konfiguračního souboru je nejjednodušší použít tamtéž umístěnou nápovědu:

# EXAMPLE: Define 'firefox' action and bind to key.
# program[firefox]    = firefox http://spectrwm.org/
# bind[firefox]        = MOD+Shift+b

Jinak je možné celou sekci s názvem PROGRAMS smazat a přesunout na přednější místo v konfiguračním souboru. Já se při tvorbě této sekce nebudu úplně striktně držet výše uvedené nápovědy, ale deklaraci funkcí rozdělím na definici funkcí v příslušné sekci a společnou definici klávesových zkratek. Jako první vytvořím sekci systémových funkcí prostředí, kde budou pouze dva zástupci:

program[lock]    = i3lock --color=008080 --pointer=default --show-failed-attempts
program[session] = oblogout

Parametry aplikací nebudu komentovat, protože pocházejí z nastavení v minulých seriálech o Arch a Manjaro Linuxu. Očekávané systémové funkce pro ukončení a restart WM zde být nemusí, protože mají přímo definované funkce. Ve druhé sekci spouštěčů aplikací budou tři položky:

program[dmenu] = dmenu_run -fn monospace:bold:size=11
program[gmrun] = gmrun
program[rofi]  = rofi -show run -lines 20 -columns 2

Do sekce vložím všechny tři spouštěče aplikací, které jsem v prvním dílu seriálu instaloval pro použití ve všech popisovaných WM. Poslední sekce uživatelských aplikací bude mít čtyři položky pro spuštění terminálu, textového editoru, správce souborů a webového prohlížeče:

program[term] = lilyterm
program[webb] = netsurf
program[fman] = xfe
program[tedi] = mousepad

Pak už může následovat sekce s jedenácti propojeními deklarovaných aplikací s příslušnou klávesovou zkratkou. Pro všechny zkratky použiju jednotný modifikátor, který představuje kombinace kláves Win+Alt:

bind[quit]    = MOD+Mod1+Q
bind[restart] = MOD+Mod1+R
bind[lock]    = MOD+Mod1+Delete   
bind[session] = MOD+Mod1+End
bind[dmenu]   = MOD+Mod1+P
bind[gmrun]   = MOD+Mod1+G
bind[rofi]    = MOD+Mod1+mezerník
bind[term]    = MOD+Mod1+Enter
bind[webb]    = MOD+Mod1+B
bind[fman]    = MOD+Mod1+F
bind[tedi]    = MOD+Mod1+E

Spuštění uživatelských aplikací nemá smysl nijak blíže komentovat nebo demonstrovat na obrázcích.Úplně postačí, když si každý funkčnost klávesových zkratek ověří, stejně jako u příkazů pro restart či ukončení WM. O trochu zajímavější jsou funkce pro uzamčení obrazovky, správu sezení a spouštění aplikací. Ty ukážu na příslušných obrázcích. První z nich ukazuje zamčení uživatelského sezení

Zamčení plochy pomocí i3lock

Jak je z obrázku zřejmé, není toho nijak moc vidět. Případné zájemce ale odkážu buď přímo do nápovědy aplikace I3lock nebo do minulého seriálu, kde byla podrobně popsána. Dalším v pořadí je správce sezení Oblogout. Jedná se pouze o ukázku, protože jsem zatím neprováděl žádná nastavení (některé volby ale mohou být funkční!)

Správce sezení Oblogout

Dále následují všechny tři spouštěče aplikací v pořadí dmenu, gmrun, rofi

Spouštěč Dmenu

Spouštěč Gmrun

Spouštěč Rofi

První z nich (dmenu) asi moc nepřekvapí, ale ještě se k němu vrátím. Gmrun už vypadá celkem podivně, protože je roztažený na celou obrazovku. I toto se následně pokusím vyřešit. No a poslední je již konfigurovaný pomocí úpravy vzhledu v souboru $HOME/.Xresources (kopie z příslušného webu Rofi).

Spouštění aplikací a jejich následný (ne)vzhled nechám zatím stranou a zaměřím se na něco, co je pro dlaždicové WM poměrně důležité až zásadní: rozložení otevřených oken na pracovní ploše. K dispozici jsou tři základní možnosti – horizontální, vertikální a maximalizované. Názvy možností jsou asi celkem jasné a není třeba k tomu více podrobností. Proto pouze dvě jednoduché poznámky:

  • aktuální rozložení je viditelné v panelu mezi číslem regionu a pracovní plochy a názvem pracovní plochy. Pro uvedené tři možnosti jsou také tři značky: [|] – vertikální, [-] – horizontální, [ ] – maximalizované
  • změnu rozložení oken pro aktuální pracovní plochu lze plynule měnit pomocí kombinace kláves Win+Mezerník

Bylo by asi vhodné k tomuto tématu objasnit systém, jaký Spectrwm používá pro označení zobrazovacích zařízení. Základem je samozřejmě fyzické zařízení (monitor), který se označuje jako obrazovka (1. screen). Obrazovka musí být minimálně jedna, ale může jich být i více. Další úrovní je 2. region. Ten může nebo nemusí být definován a může se rozkládat na ploše jedné nebo více obrazovek. Je to vlastně jakási virtuální obrazovka. Na ploše obrazovky či regionu leží vždy minimálně jedna pracovní plocha (3. workspace). Ta pokrývá vždy celou plochu obrazovky či regionu. A konečně na pracovní plochu se umisťují okna aplikací (4. windows).

Následující tři obrázky ukazují všechny tři uvedené základní možnosti rozložení oken na ploše

Vertikální rozložení

Horizontální rozložení

Maximalizované aktivní okno

Při pohledu na obrázky je nutné uvést zásadní princip, na kterém je rozložení oken postavené. Jedná se o dvě plochy, které se na pracovní ploše objevují. První z nich je tzv. hlavní plocha (master area), která obsahuje standardně pouze jedno okno. Jeho velikost a počet umístěných oken je možné pomocí klávesových zkratek měnit či nastavovat. Hlavní plocha pro vertikální dělení je vždy vlevo, pro horizontální dělení nahoře. Druhou plochou je tzv. stohovací (stacked area), která může obsahovat prakticky libovolný počet otevřených oken. Její velikost není možné měnit pomocí klávesových zkratek, je ale možné s jejich pomocí měnit počet oken aktuálně zobrazených. Ve vertikálním rozložení má stohovací plocha jeden sloupec (pravý), v horizontálním rozložení jeden řádek (spodní).

Existuje i funkce, kterou je možné prohodit hlavní a stohovací plochu. Jedná se o funkci flip_layout. Aby bylo možné jí ovládat pomocí klávesových zkratek, je nutné upravit původní variantu v lokalizovaném konfiguračním souboru (používání kláves s nutností přeřazovače může být docela ošidné, a proto je lepší volit nějaké „bezpečné“ varianty…):

bind[flip_layout] = MOD+Shift+backslash => bind[flip_layout] = MOD+Shift+F10

Kromě uvedeného základního rozložení je možné využít i další možnost, kterou Spectrwm nabízí. Jedná se o nastavení ploch uživatelským způsobem tak, aby se dané rozložení objevilo vždy při startu WM. Obecně je možné popsat tuto vlastnost/funkci následovně:

ws[N]:master_grow:master_add:stack_inc:always_raise:stack_mode

Pro lepší přehled uvedu následně tabulku, kde budou všechny možnosti pro nastavení oken, rozložení a ploch. Bude jich o něco víc, než je nutné pro nastavení jednotlivých pracovních ploch:

Nastavení oken, jejich rozložení a pracovních ploch
Název funkce  Klávesová zkratka Popis funkce
master_grow  MOD+L zvětší hlavní plochu
master_shrink  MOD+H zmenší hlavní plochu
master_add  MOD+comma
(des. čárka)
přidá okno do hlavní plochy
master_del  MOD+period (des. tečka) odebere okno z hlavní plochy
stack_inc  MOD+Shift+comma přidá řádek/sloupec do stohovací plochy
stack_dec  MOD+Shift+period odebere řádek/sloupec ze stohovací plochy
always_raise  není vždy zajistí možnost sestavy dlaždic překrýt plovoucího okna
stack_mode  není  může mít hodnoty vertical, vertical_flip, horizontal, horizontal_flip, fullscreen
stack_reset  MOD+Shift+Mezerník obnoví základní rozložení oken na pracovní ploše

Nyní už je z výše uvedené tabulky (a hlavně položky stack_mode) jasné, proč bylo zvoleno číslo pět jako maximální počet pracovních ploch. Pro startovní nastavení pracovních ploch totiž beze zbytku využiju standardní možnost, která je v hlavním konfiguračním souboru. Celou sekci pouze přesunu za definici klávesových zkratek a odkomentuji výkonné příkazy

layout        = ws[1]:4:0:0:0:vertical
layout        = ws[2]:0:0:0:0:horizontal
layout        = ws[3]:0:0:0:0:fullscreen
layout        = ws[4]:4:0:0:0:vertical_flip
layout        = ws[5]:0:0:0:0:horizontal_flip

Pro změny v rozložení oken na pracovních plochách nestačí restart WM, je nutné jeho ukončení kombinací

Win+Alt+Q

a nové spuštění příkazem

xinit swm

Následující série čtyř obrázků ukazuje rozložení čtyř otevřených oken na plochách A, B, D, E. Vzhled na ploše C nemá smysl ukazovat, protože je viditelné pouze jedno okno přes celou plochu. Plocha A se od minulé série obrázků liší v tom, že je hlavní plocha zvětšená na úkor plochy stohovací. Plocha B je stejná jako při minulém zobrazení horizontálního rozložení oken. Plocha D má opět zvětšenou hlavní plochu a pořadí této a stohovací plochy je prohozené. Plocha E má horizontální rozložení a prohozené pořadí hlavní a stohovací plochy.

Plocha A, vertikální rozložení, zvětšená hlavní oblast

Plocha B, horizontální rozložení

Plocha D, prohozené vertikální rozložení, zvětšená hlavní oblast

Plocha E, prohozené horizontální rozložení

Uvedené obrázky by mohly být posledním počinem v oblasti rozložení oken na ploše a další, na co se zaměřím, je panel. Jak je asi z předchozích obrázků i popisu zřejmé, ten nějak funguje a něco zobrazuje. A to dokonce i bez toho, aby bylo nutné mu věnovat pozornost a provádět konfiguraci. Určitě to ale není proto, že by se nastavit nedal nebo to bylo nějak složité. Následující kapitola snad všechny přesvědčí, že je tomu spíše naopak. V hlavním konfiguračním souboru je k dispozici celá zakomentovaná sekce, a tak prvotně odkomentuji některé parametry:

bar_enabled                  = 1
bar_border_width             = 1
bar_border[1]                = rgb:00/80/80
bar_border_unfocus[1]        = rgb:00/40/40
bar_color[1]                 = black
bar_font_color[1]            = rgb:a0/a0/a0
bar_font                     = -*-profont-*-*-*-*-12-*-*-*-*-*-*-*
# bar_action                 = baraction.sh
bar_justify                  = left
bar_format                   = +N:+I +S <+D>+4<%a %b %d %R %Z %Y+8<+A+4<+V
# bar_at_bottom              = 1
# stack_enabled              = 1
# clock_enabled              = 1
# clock_format               = %a %b %d %R %Z %Y
# iconic_enabled             = 0
# maximize_hide_bar          = 0
# window_class_enabled       = 0
# window_instance_enabled    = 0
# window_name_enabled        = 0
# verbose_layout             = 1
# urgent_enabled             = 1

Jedná se o tyto funkce WM pro zobrazení a konfiguraci panelu:

UX DAy - tip 2

  • bar_enabled – nastaví hodnotu/stav funkce bar_toggle na 1, tzn. povolí zobrazení panelu. Zobrazit/skrýt panely na všech použitých pracovních plochách lze pomocí kombinace Win+B. Pomocí kombinace Win+Shift+B lze zobrazit/skrýt panel na aktuální pracovní ploše (funkce bar_toggle_ws)
  • bar_border[1] – barva rámečku panelu na první obrazovce
  • bar_border_unfocus[1] – barva rámečku panelu na regionu, který nemá fokus a je na první obrazovce
  • bar_color[1] – barva pozadí panelu na první obrazovce
  • bar_font_color[1] – barva písma v panelu na první obrazovce
  • bar_font – druh písma použitý v panelu. Pro jeho popis je možné použít specifikaci podle XFT nebo XLFD
  • bar_justify – umístění panelu na ploše, jsou možné varianty left, center, right
  • bar_format – nastavení formátu, který určuje počet a pořadí jednotlivých položek panelu

Obrázek po uložení změn a restartu WM nemá smysl předkládat, protože se na vzhledu prostředí vlastně díky zachování původních hodnot nic nezměnilo. Další úpravy a hlavně podrobnější konfiguraci panelu si nechám až na příští díl seriálu.

Dnešní díl jsem věnoval popisu spouštění aplikací pomocí klávesových zkratek. Dále byly popsány možnosti nastavení stylu rozložení otevřených oken na ploše a funkce pro jejich ovládání. Na konci dílu jsem zahájil uživatelskou konfiguraci systémového panelu. V příštím dílu tuto konfiguraci dokončím a předvedu instalaci a konfiguraci externí systémové lišty. Díl pak bude ukončen popisem nastavení parametrů spouštěných aplikací, které Spectrwm nabízí.

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