Hlavní navigace

Arch Linux: správa sezení, uzamčení obrazovky, ikony v menu JWM

Jaromír Vojtaj

Minulý díl byl věnován nastavení klávesových zkratek a spouštění aplikací včetně autostartu. Dnesu se budeme věnovat správě sezení, uzamčení obrazovky/účtu a nastavení ikon v hlavním menu JWM.

Na začátku dnešního dílu navážeme na dříve probírané možnosti JWM ohledně hlavního menu a klávesových zkratek a doplníme si do systému další funkce. Obecně se bude jednat o funkce následující:

  • suspendace (pozastavení, uspání) systému
  • zamčení uživatelské plochy/účtu
  • grafická aplikace pro správu sezení
  • vytvoření snímků obrazovky

Jako první si do hlavního menu přidáme funkce pro uspání systému. Než se k tomu ale dostaneme konkrétně, bylo by asi vhodné si trochu přiblížit, o co se vlastně jedná. Uspáním systému se obecně myslí akce, která nějakým způsobem pozastaví jeho činnost, uloží někam poslední stav systému, sníží potřebu napájení na minimum nebo nulu a v případě potřeby zajistí probuzení systému. Konkrétně se můžeme setkat se třemi základními druhy suspendace:

  1. suspendace do RAM – nazývaná právě slovem suspend. Tato akce zastaví všechny operace ve všech běžících aplikacích, stav systému uloží do operační paměti a přejde do režimu se sníženou potřebou napájení. Nějaké napájení je ale vždy potřeba! Probuzení a obnovení systému je pak následně velmi rychlé
  2. suspendace na disk – známá jako hibernate. Tato akce uloží kompletní obsah operační paměti a stav systému na disk do odkládacího oddílu pevného disku (swap). Zavaděč systému je nastaven tak, aby při probuzení startoval do uloženého stavu. Systém se kompletně vypne a nepotřebuje žádné napájení. Probuzení je pak samozřejmě mnohem pomalejší, než v předchozím případě
  3. suspendace hybridní – používá kombinaci předchozích možností. Stav systému je uložen do swapu, ale napájení se nepřeruší. Pokud je napájení kontinuální (baterie je dostatečně nabitá nebo je připojen zdroj napájení), systém se probouzí z paměti. Pokud je z nějakého důvodu napájení přerušeno, nic se neděje, ale systém se následně probouzí z disku.

Pokud by někdo měl zájem, může se více dozvědět na ArchWiki: Power management. My si do našeho ukázkového systému přidáme pouze akci pro suspendaci do RAM. Je to hlavně proto, že hibernaci je nutné ještě dále konfigurovat a dost často je tato SW konfigurace závislá na HW sestavě stroje. Z těchto důvodů si proto do dílčího konfiguračního souboru $HOME/.config/jwm/menu a sekce Sezení přidáme jeden řádek:

<Program icon="suspend.png" label="Uspat systém">systemctl suspend</Program>

Dále budeme pokračovat akcí pro uzamčení uživatelského účtu nebo plochy. Tato akce je celkem důležitá hlavně tam, kde se dá očekávat možná snaha někoho jiného o „inspekci“ našeho stroje. Ve firmách je (nebo by alespoň mělo být…) naprosto běžné, že se tato operace využívá při každém opuštění stroje, byť na velmi krátkou dobu. Z tohoto důvodu si akci přidáme jak do hlavního menu, tak do klávesových zkratek. Pro daný účel je možné použít mnoho nástrojů, které Arch nabízí. Asi nejznámější jsou aplikace, které uzamčení spojují se spořičem obrazovky. My si ale ukážeme velmi jednoduchý způsob, který má svoje výhody a použijeme k tomu aplikaci i3lock. Jedná se sice o velmi jednoduchou aplikaci, která ale splňuje základní požadavky na zamčení uživatelské plochy:

  • při spuštění zamezí přístupu k uživatelské ploše a přístup obnoví až po zadání správného uživatelského hesla
  • může se kombinovat s uspáním do paměti tak, aby se při probuzení stroje opět objevila zamčená plocha
  • zamčenou plochu lze odlišit od těch ostatních pomocí nastavené barvy pozadí či obrázku
  • lze nastavit zvukový signál pro zadání špatného hesla uživatele
  • aplikace dokáže spolupracovat se systémy pro identifikaci uživatelů v síti

Vše musíme samozřejmě zahájit instalací příslušného balíčku, což je velmi jednoduché:

packer -S i3lock

Instaluje se jediný balíček zanedbatelné velikosti. Jako obvykle můžeme zkusit vyvolat nápovědu, ale ta má pouze jeden řádek a moc nám toho nenapoví. Proto si vypomůžeme jiným příkazem (celý text je v příloze i3lock-manual):

man i3lock

Pokud se podíváme blíže do manuálu, vidíme několik možností nastavení. My si blíže okomentujeme pouze pár vybraných:

  • -i/--image – nastaví cestu k obrázku (musí být NUTNĚ! ve formátu PNG), který se zobrazí místo prázdné obrazovky
  • -c/--color – pomocí hexadecimálního kódu nastaví barvu pozadí uzamčené plochy
  • -p/--pointer – může nabývat dvou hodnot – default (neskrývá uživatelský kurzor myši), win (zobrazí systémový kurzor)
  • -f/--show-failed-attempts – zobrazuje počet nezdařených pokusů o zadání uživatelského hesla

Ostatní volby si mohou případní zájemci prohlédnout v příloze a my si vyzkoušíme nejjednodušší spuštění aplikace pomocí klávesové zkratky. Do dílčího konfiguračního souboru $HOME/.config/jwm/keybinds si proto přidáme jeden řádek

<Key mask="A4" key="l">exec:i3lock</Key>

Změnu uložíme a restartujeme JWM. Pokud použijeme příslušnou klávesovou zkratku Alt+Win+L, tak se před námi objeví čistě bílá plocha, na které se zdánlivě nic neděje. My se teď trochu vrátíme k „teorii“ uzamykání uživatelské plochy. Důvody pro použití jsme si již krátce objasnili a není třeba to asi dál rozvíjet. Co se ale stane, když máme plochu zamčenou a nějaký „zvědavec“ se pokusí jí odemknout? Co asi udělá jako první krok? Je skoro jasné, že se pokusí hnout myší (jako by se stalo, ale reakce plochy není absolutně žádná…). Pak bude následovat stisk nějaké klávesy (nejčastěji mezerník, Enter nebo Esc). To už bude mít na plochu nějaký vliv a objeví se něco, co je vidět na prvním obrázku v první galerii. Následně má náš špion dvě možnosti:

  1. své neblahé činnosti zanechat a zkusit štěstí u jiného stroje
  2. pokusit se zadat nějaké heslo

Vtip je v tom, že i3lock číhá na zadání hesla a namátkově stisknutou klávesu považuje za počáteční znak hesla. Je asi jasné, že málokteré heslo začíná nějakou systémovou klávesou, a tak budou jeho pokusy vesměs neúspěšné. Pak se ale nabízí otázka – jak se do systému po marných pokusech vetřelce dostane oprávněný uživatel? Řešení je jednoduché:

  • pokud kdokoliv po zadání špatného hesla nastartuje přihlášení k uživatelskému účtu, i3lock provede ověření, které se zobrazí v zeleném kruhu uprostřed obrazovky (s textem verifying…)
  • pokud se ověření nezdaří, oznámení se objeví v červeném kruhu s textem wrong!
  • po neúspěšném ověření hesla se vše vrátí do původního stavu a my můžeme zadat heslo správné a po stisku Enter se dostat do naší domovské plochy

Tím bychom mohli asi krátkou teorii ukončit a vrátit se zpět k samotnému příkazu. Po jednoduché verzi si do klávesové zkratky dáme konečnou verzi:

<Key mask="A4" key="l">exec:i3lock --color=008080 --pointer=default --show-failed-attempts</Key>

Do nastavení jsme si přidali odlišnou barvu pozadí zamčené plochy (barva se jmenuje TEAL), nechali zobrazit uživatelský kurzor a počet neúspěšných pokusů o zadání hesla (viz druhý obrázek první galerie). Můžeme tedy toto nastavení vzít a vložit ho do hlavního menu, sekce sezení:

<Program icon="lock.png" label="Zamknout plochu">i3lock --color=008080 --pointer=default --show-failed-attempts</Program>

Nová verze hlavního menu je vidět na třetím obrázku v první galerii. Tímto krokem bychom mohli uzavřít nastavení správy sezení a podívat se po jiných možnostech, které se nám v tomto ohledu nabízejí. Je jich samozřejmě také víc, ale my se zaměříme opět na velmi jednoduchou aplikaci Oblogout. Jak název trochu napovídá, patří do aplikací pro WM OpenBox, ale dá se bez problémů použít i jinde. My si jí jednoduše nainstalujeme pomocí příkazu

packer -S oblogout

Aplikace se instaluje se závislostmi (je napsaný v Pythonu, takže záleží na tom, jaké balíčky máme již v systému přítomné) a bohužel nám o sobě v rámci nápovědy neprozradí vůbec nic. Zkusíme ho tedy rovnou přidat do hlavního menu, kam na konec sekce Sezení přidáme tentokrát dva řádky:

<Separator />
<Program icon="logout.png" label="Správa sezení">oblogout</Program>

Změnu uložíme, restartujeme JWM a vzhled hlavního menu vidíme na čtvrtém obrázku první galerie. Pátý obrázek v první galerii nám pak ukazuje, jak vypadá spuštěná aplikace pro správu sezení. Jak je z obrázku patrné, máme k dispozici celkem 7 voleb – cancel, logout, restart, shutdown, suspend, hibernate, lock. Jsou viditelné velké a zřetelné ikony a krátké popisy tlačítek, bohužel v angličtině (jsou k dispozici i další jazyky, ale čeština mezi nimi není.). Nic dalšího nebudeme zkoušet a vrátíme se na výše uvedenou stránku s popisem konfigurace. Globální konfigurační soubor je /etc/oblogout.conf. Když si ho otevřeme (viz příloha oblogout-def), tak zjistíme, že jsou zde celkem čtyři sekce: settings, looks, shortcuts, commands.

Než začneme s konfigurací, tak si pro jistotu vytvoříme záložní kopii původního souboru

sudo cp /etc/oblogout.conf /etc/oblogout.conf.old

Pak se postupně podíváme na všechny sekce i jednotlivé položky a zkusíme si o nich říct něco podrobnějšího a případně je nějak změnit.

settings

V této sekci je pouze jedna položka usehal. Je zde možné povolit či zakázat použití subsystému HAL. Vzhledem k tomu, že se tento systém již nepoužívá, tak je zakázán. Přesto není možné tuto sekci ani položku z konfigurace odstranit, protože by to znamenalo chybu konfigurace a následné nespuštění aplikace oblogout.

looks

Zde se nastavuje základní vzhled spuštěné aplikace ve čtyřech položkách:

  • opacity – procento (ne)průhlednosti rámečku s ikonami tlačítek
  • bgcolor – barva pozadí rámečku ikon, může být definována názvem nebo pomocí hexadecimálního kódu (#ffffff)
  • buttontheme – grafické téma zobrazených tlačítek. K dispozici jsou dvě základní témata oxygen a foom.
  • buttons – seznam a pořadí zobrazených tlačítek, resp. ikon

My si zde uděláme dvě změny, ale jenom v seznamu zobrazených tlačítek (vynecháme hibernate, zbude nám tak 6 tlačítek v jiném pořadí):

buttons = cancel, lock, logout, suspend, restart, shutdown

shortcuts

Zde jsou definované klávesové zkratky, tedy vlastně tlačítka, která spouštějí příslušné akce v aplikaci. Je velmi vhodné, aby zde byly pouze ty zkratky, které odpovídají výše nastavenému seznamu zobrazených tlačítek. Nám stačí pouze smazat řádek pro akci hibernate, na pořadí zde samozřejmě nezáleží a přiřazené klávesy si může každý uživatel nastavit dle libosti.

commands

V této sekci jsou příslušné příkazy, které provádějí jednotlivé akce pod zobrazenými tlačítky. V základu máme definované akce pro vypnutí, restart a uspání systému (suspend). Ty samozřejmě ponecháme a opět vymažeme odkaz na akci hibernate. Vymažeme také dva poslední zakomentované řádky a zbudou nám pouze dva nedefinované příkazy – ukončení JWM a zamčení obrazovky. Zde použijeme příkazy z JWM a hlavního menu (akce pro ukončení vlastní aplikace oblogout není nutné definovat):

logout = jwm -exit
lock = i3lock --color=008080 --pointer=default --show-failed-attempts

Po uložení změn nám vznikne konfigurační soubor s 23 řádky, který můžeme najít v přílozeoblogout-fin a výsledek je vidět na šestém obrázku první galerie. Můžeme také samozřejmě vyzkoušet funkčnost všech akcí, které jsme si definovali. Pokud není někde nějaká skrytá chyba, mělo by vše fungovat bez problémů. Jenom jako ukázku si změníme téma tlačítek a na sedmém obrázku v první galerii vidíme výsledek

buttontheme = foom

Z obrázku je patrné, že změna je celkem zásadní a každý si může vybrat odpovídající téma vzhledu ikon. Kdo by měl zájem, může se pokusit najít a nastavit jiná témata. Pro tyto experimentátory by bylo vhodné uvést, že oblogout byl původně vytvořen pro distribuci CrunchBang Linux (vývoj byl ukončen!) – Bunsenlabs, CrunchBang++.

Kromě základního balíčku v oficiálních repozitářích je možné najít další varianty oblogout na AUR (Oblogout BlurLock) nebo GitHub (Nikdoof, Cloudef).Tímto bychom mohli tuto kapitolku uzavřít a vrátit se zpět do hlavního menu. Zde máme celkem přijatelnou sestavu, ale něco nám zde ještě chybí. V hlavním menu máme tři sekce – základní sadu čtyř aplikací (terminál, textový editor, správce souborů a webový prohlížeč), kompletní sadu uživatelských aplikací a sezení (akce z JWM i oblogout). Když se ale na hlavní menu podíváme blíže, tak zjistíme, že pouze v sekci uživatelských aplikací máme k dispozici ikony pro skupiny i položky. Je to asi logické, protože jsme si zobrazení ikon nastavili při automatickém generování menu pomocí příslušné aplikace.

Bylo by samozřejmě možné první a poslední sekci nechat beze změny, ale my si přece jenom ukážeme, jak dostat zobrazení ikon i tam. Za tímto účelem musíme provést několik kroků:

  • vytvořit nový adresář pro uložení potřebných ikon
    mkdir ~/.config/jwm/Icons
  • do nového adresáře nakopírovat vybrané ikony pro 4 základní aplikace (v konkrétním případě z adresáře /usr/share/icons vybrané příslušné PNG soubory s pozměněnými názvy dle definice v hlavním menu – browser, fmanager, editor a terminal)
  • vytvořit nový dílčí konfigurační soubor
    touch ~/.config/jwm/icons
  • do vytvořeného souboru přidat jednoduchý konfigurační text
    <?xml version="1.0"?>
    <JWM>
    
    <IconPath>$HOME/.config/jwm/Icons</IconPath>
    
    </JWM>
  • do souboru $HOME/.jwmrc přidat další řádek
    <Include>$HOME/.config/jwm/icons</Include>
  • všechny změny uložit, vyzkoušet správnost konfigurace příslušným příkazem a restartovat JWM

Pokud vše provedeme správně, tak dostaneme výsledek, který je vidět na předposledním obrázku první galerie. Velmi podobně si nastavíme ikony i pro akce správy sezení. Využijeme výše uvedenou aplikaci Oblogout a ze stránky si stáhneme zdrojový soubor oblogout-0.2.tar.bz2 a rozbalíme ho. Pak provedeme pár dalších kroků:

  • z rozbaleného adresáře ../oblogout/data/themes/o­xygen/oblogout zkopírujeme všech 9 ikon do adresáře $HOME/.config/jwm/Icons
  • podle potřeby sjednotíme názvy příslušných ikon s jejich deklarací v dílčím konfiguračním souboru menu
  • změny uložíme, vyzkoušíme správnost konfigurace a restartujeme JWM

Ukázkový výsledek je pak viditelný na posledním obrázku v první galerii. Na závěr dnešního dílu pak dáváme do přílohy příslušné soubory:

  • hlavní konfigurační soubor - jwmrc
  • dílčí konfigurační soubor definice cesty k uživatelským ikonám - icons
  • dílčí konfigurační soubor hlavního menu - menu

Dnešní díl jsme věnovali správě sezení, kde jsme doplnili možnost uspání systému a ukázali si grafickou aplikaci pro komplexní správu sezení. Dále jsme si představili možnost na jednoduché uzamčení uživatelské obrazovky či účtu pomocí příslušné aplikace. Díl byl ukončen popisem konfigurace JWM, která nastaví zobrazení ikon v hlavním menu. V příštím dílu budeme pokračovat v konfiguraci JWM a ukážeme si nastavení správy virtuálních ploch a některé zatím neprobrané možnosti JWM (nápověda k položkám hlavního menu a jeho systémové funkce). Také si ukážeme možnosti pořízení snímků obrazovky pomocí jednoduché terminálové aplikace.

Našli jste v článku chybu?
Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

DigiZone.cz: „Black Friday 2016“: závěrečné zhodnocení

„Black Friday 2016“: závěrečné zhodnocení

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka