LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> Openbox II. - Práce s menu a klávesové zkratky

V tomto díle si vysvětlíme základy práce se statickými a dynamickými menu (pipe menu), jak fungují klávesové zkratky a události prováděné pomocí myši.

4.4.2012 00:00 | David Adamczyk | Články autora | přečteno 9626×

Jednou z nejoblíbenějších vlastností Openboxu jsou dobře konfigurovatelná statická a dynamická menu. Statická jsou taková, která mají ve svém konfiguračním souboru (obvykle menu.xml) stanoveny jednotlivé položky a strukturu celého menu. Z takového menu lze poté spustit předem určenou aplikaci, skript nebo volat příslušné akce Openboxu. Struktura a položky dynamických menu jsou generovány příslušným skriptem v době jeho spuštění samotným menu. Můžeme si jednoduše vytvořit menu pro zobrazení položek, které informují o nové příchozí poště, pro práci s multimediálním přehrávačem, zobrazování vytížení hardware (cpu, ram, teplota,...) případně načítání záznamů RSS feedu a jejich prohlížení čtečkou po kliknutí na příslušnou položku. Kreativní uživatel si dokáže s menu v Openboxu opravdu vyhrát :-)

Trochu nepříjemným zklamáním může být nutnost editace konfiguračních souborů ve XML formátu. Tento formát jednak usnadňuje práci různým skriptům a programům, kteří pracují s příslušnými XML knihovnami, na druhou stranu je ruční konfigurace poměrně nepříjemná. Proto na webu můžeme nalézt velké množství různých utilit specializovaných právě na tvorbu a úpravy menu. Mezi nejznámější a nejrozšířenější patří malá utilita s názvem ObMenu.

Utilitu ObMenu naleznete jako balíček pro většinu distribucí, případně si ji můžete zkompilovat ze zdrojových kódů. Zvídavější uživatelé, kteří se rozhodnou editovat konfigurační soubor menu OpenBoxu mohou použít běžný textový editor (emacs, vim, nano apod...) ve kterém stačí načíst soubor menu.xml, který se nachází ve skrytém adresáři vašeho domovského adresáře. Cesta k souboru bude tedy vypadat takto: /home/uzivatel/.config/openbox/menu.xml, po prvním otevření si všimneme struktury samotného konfiguračního souboru. Na samotném začátku souboru se nalézá záznam, který nás informuje o verzi XML a příslušném kódování. Následně začíná samotná struktura souboru popisující menu Openboxu, která je uzavřena v tagu (pro zjednodušení jsem vynechal některé atributy)

<openbox_menu></openbox_menu>
Vše co se nachází v tomto tagu popisuje menu, vše co se nachází mimo bude ignorováno případně způsobí chybu. Protože menu Openboxu může být složeno z menších částí různých menu, bude nejprve nutné definovat kořenové menu. Všimněte si, že toto kořenové menu je označeno v tagu
<menu id="root-menu" label="Openbox 3.5">
...
</menu>
Následují jednotlivé položky:
<item label="Exit">
  <action name="Exit"/>
</item>
A další menu:
<menu id="ID" label="Nazev menu">
    <item label="Nazev prvni akce">AKCE1</item>
    <item label="Nazev druhe akce">AKCE2</item>
    <item label="Nazev treti akce">AKCE3</item>
</menu>


Atribut id je jednoznačný identifikátor menu, label je řetězec s názvem položky, která je zapsána tak jak bude zobrazována v menu Do položek menu můžete vkládat jak různé akce, které je Openbox schopen provádět tak i příkazy ke spuštění různých aplikací a skriptů. Na Wiki Openboxu naleznete popis všech globálních akcí (například skok na jinou plochu, odhlášení nebo ukončení sezení) a akcí oken (minimalizace, změna velikosti,...). Zápis pro vložení položky do menu, která bude schopna spustit určitý program může vzpadat takto:
 <item label="Spravce souboru Thunar"><action name="Execute"><execute>/usr/bin/thunar</execute></action></item>
Odkaz na jiné submenu zapíšete následovně:
<menu id="root-menu"/>
Kde za "root-menu" dosadíte libovolný identifikátor jiného menu. V případě že ponecháte "root-menu" bude jako submenu do dané položky vloženo kořenové menu. Jako oddělovače skupin položek v menu slouží následující zápis:
<separator label="Oddelovac" />
<separator/>
Při vynechání atributu label bude vložen oddělovač bez popisku. Jako dynamicky generovaná menu složí tzv. Pipe menu. Přidání Pipe menu do svého menu provedeme takto:
<menu id="wallpapery" label="Wallapery" execute="/home/david/.skripty/wallmenu.py" />
Doporučuji po každé úpravě menu, provést akci "Reconfigure" z hlavního menu Openboxu nebo v terminálu zadat:
$ openbox --reconfigure
Spustitelný soubor wallmenu.py generuje menu v xml při každém jeho spuštění a jeho výstup je předán Openboxu jako podmenu vložené do položky s názvem "Wallpapery". Na Internetu lze nalézt tisíce skriptů s Pipe menu v mnoha skriptovacích jazycích jako Python, Ruby, Perl nebo skripty v shellu. Pokud máte zájem o Pipe menu doporučuji projít skripty, které jsou volně dostupné na internetu, mezi velmi zajímavé patří například skript Ob-Randr pracující s utilitou xrandr. Tento skript dokáže například změnit rozlišení a jinak manipulovat s výstupem na displayi. Nebo Pipemenu pro práci s wifi (ocení především uživatelé notebooků) wifi-pipe, nebo jednoduchý ToDo List. Následuje malá ukázka skriptu Todo List:

Klávesové zkratky

Pro nastavování klávesových zkratek se přesuneme do souboru rc.xml, který se nachází ve stejném adresáři jako Váš soubor menu.xml. Všechny klávesové zkratky jsou ohraničeny tagem keyboard:
<keyboard>
...
</keyboard>
Následuje zápis pro jednu klávesovou zkratku:
<keybind key="A-space"><action name="ShowMenu"><menu>client-menu</menu></action></keybind>
Řetězec v parametru key udává kombinaci kláves, je vždy tvořen kombinací modifikátoru a libovolnou klávesou. Mezi běžně používané modifikátory patří klávesa Control [C], Win [W], Alt [A], Shift [S]. Následuje tag action kde parametr name odkazuje na akci Openboxu, která bude provedena (prohlédněte si seznam všech akcí). A konečně v tagu menu následuje identifikátor konkrétního menu. Pro akci ShowMenu máme k dispozici několik menu. Prostým vnořováním tagu keybind docílite kombinaci klávesové zkratky která slouží jako prefix a klávesové zkratky pro jistou činnost, která bude k dispozici pouze v případě zadáni prefixu. Stejný způsob znáte například z editoru Emacs, nebo terminálového multiplexeru tmux. Zápis může vypadat například takto:
 
 <keybind key="C-f">
    <keybind key="x"><action name="ToggleMaximizeFull"/></keybind>
    <keybind key="s"><action name="ToggleShade"/></keybind>
  </keybind>
Tyto dvě klávesové zkratky volané klávesou x a s budou funkční pouze v případě, že jim předcházelo stisknutí kombinace Ctrl-f.

Události prováděné myši

Během práce s Openboxem pracujete poměrně často s myší, všechny činnosti jako přesunutí okna, změna velikosti jsou řešeny pomocí údálosti jako je stisknutí tlačítka myši - Press, kliknutí Click, dvojklik DoubleClick, puštění tlačítka (bylo-li předtím stisknuto) Raise a přesunutí kurzoru myši zatímco je tlačítko myši stisknuto Drag. Na tyto údálosti lze reagovat v určitých kontextech, provedeme-li určitou událost nad oknem aplikace a nad prázdnou pracovní plochou jednali jsme vždy v jiném kontextu. Jednou v kontextu okna aplikace a podruhé v kontextu pracovní plochy. Openbox rozeznává následující kontexty: Frame je rám (dekorace okna), Client je to co se nachází uvnitř okna (samotná aplikace), Desktop pracovní plocha, Root prázdná pracovní plocha (pozadí), Titlebar horní dekorace okna (ta která vetšinou obsahuje titulek a tlačítko pro minimalizaci, maximalizaci a zavření okna), Top, Bottom, Left, Right horní, dolní, levá a pravá hrana okna, TLCorner, TRCorner, BLCorner, BRCorner horní levý, horní pravý, dolní levý a dolní pravý roh okna, Icon ikona v titlebaru, Iconify ikona v titlebaru používaná k minimalizaci okna, Maximize ikona v titlebaru používaná k maximalizaci okna, Close ikona v titlebaru používaná k zavření okna, AllDesktops ikona v titlebaru používaná k umístění okna na všechny plochy (Omnipresent), Shade ikona v titlebaru používaná k srolováni okna do titlebaru, MoveResize speciální kontext, který je dostupný jakmile je okno přenášeno nebo v případě, že je měněna jeho velikost. Na myši nalezneme několik tlačítek, zde je jejich funkce: Left znamená levé tlačítko myši Middle je prostřední tlačítko myši (u některých myší i kolečko pokud lze stisknout) Right je pravé tlačítko myši Up posunutí kolečka myši směrem nahoru Down posunutí kolečka myši směrem dolu. Jak již bylo řečeno vždy pracujeme v určitém kontextu, proto jsou všechny tyto speciální akce ohraničeny příslušným tagem:

<context name="Frame">
      <mousebind button="A-S-Up" action="Click">
        <action name="SendToDesktop">
          <to>previous</to>
        </action>
      </mousebind>
      <mousebind button="A-S-Down" action="Click">
        <action name="SendToDesktop">
          <to>next</to>
        </action>
      </mousebind>
</context>

V tomto případě pracujeme v kontextu rámu (dekorace) okna. První akce je namapována na stisknutí klávesy Alt+Shift a pootočení kolečka myši, v tomto případě můžeme očekávat provedení akce s názvem SendToDesktop. Tuto akci můžeme rovněž nalézt v seznamu všech akcí Openboxu. Z popisu této akce se dovíme, že má některé speciální volby. V našem případě se jedná o volbu to, která může mít hodnoty previous pro přenesení okna na předchozí pracovní plochu, next pro přenesení okna na následující pracovní plochu, nebo například last přenese okno na poslední pracovní plochu.

V dalším díle Vás čeká dokončení základní konfigurace Openboxu, práce s grafickými tématy a několik užitečných aplikací

Verze pro tisk

pridej.cz

 

DISKUZE

Nejsou žádné diskuzní příspěvky u dané položky.



Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

31.7.2023 14:13 / Linda Graham
iPhone Services

30.11.2022 9:32 / Kyle McDermott
Hosting download unavailable

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze