abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 2
    včera 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 0
    včera 10:11 | IT novinky

    V pořadí šestou knihou autora Martina Malého, která vychází v Edici CZ.NIC, správce české národní domény, je titul Kity, bity, neurony. Kniha s podtitulem Moderní technologie pro hobby elektroniku přináší ucelený pohled na svět současných technologií a jejich praktické využití v domácích elektronických projektech. Tento knižní průvodce je ideální pro každého, kdo se chce podívat na současné trendy v oblasti hobby elektroniky, od

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 03:11 | Komunita

    Linux Foundation zveřejnila Výroční zprávu za rok 2025 (pdf). Příjmy Linux Foundation byly 311 miliónů dolarů. Výdaje 285 miliónů dolarů. Na podporu linuxového jádra (Linux Kernel Project) šlo 8,4 miliónu dolarů. Linux Foundation podporuje téměř 1 500 open source projektů.

    Ladislav Hagara | Komentářů: 0
    včera 02:11 | Zajímavý článek

    Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.12.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 02:00 | Nová verze

    OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzi 2.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | IT novinky

    Kriminalisté z NCTEKK společně s českými i zahraničními kolegy objasnili mimořádně rozsáhlou trestnou činnost z oblasti kybernetické kriminality. V rámci operací OCTOPUS a CONNECT ukončili činnost čtyř call center na Ukrajině. V prvním případě se jednalo o podvodné investice, v případě druhém o podvodné telefonáty, při kterých se zločinci vydávali za policisty a pod legendou napadeného bankovního účtu okrádali své oběti o vysoké finanční částky.

    Ladislav Hagara | Komentářů: 4
    18.12. 14:44 | IT novinky

    Na lepší pokrytí mobilním signálem a dostupnější mobilní internet se mohou těšit cestující v Pendolinech, railjetech a InterPanterech Českých drah. Konsorcium firem ČD - Telematika a.s. a Kontron Transportation s.r.o. dokončilo instalaci 5G opakovačů mobilního signálu do jednotek Pendolino a InterPanter. Tento krok navazuje na zavedení této technologie v jednotkách Railjet z letošního jara.

    Ladislav Hagara | Komentářů: 6
    18.12. 12:22 | Bezpečnostní upozornění

    Rozšíření webového prohlížeče Urban VPN Proxy a další rozšíření od stejného vydavatele (např. 1ClickVPN Proxy, Urban Browser Guard či Urban Ad Blocker) od července 2025 skrytě zachytávají a odesílají celé konverzace uživatelů s AI nástroji (včetně ChatGPT, Claude, Gemini, Copilot aj.), a to nezávisle na tom, zda je VPN aktivní. Sběr probíhá bez možnosti jej uživatelsky vypnout a zahrnuje plný obsah dotazů a odpovědí, metadata relací i

    … více »
    Ladislav Hagara | Komentářů: 5
    18.12. 05:22 | Zajímavý software

    QStudio, tj. nástroj pro práci s SQL podporující více než 30 databází (MySQL, PostgreSQL, DuckDB, QuestDB, kdb+, …), se stal s vydáním verze 5.0 open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 6
    Kdo vám letos nadělí dárek?
     (8%)
     (0%)
     (0%)
     (0%)
     (8%)
     (8%)
     (23%)
     (31%)
     (23%)
    Celkem 13 hlasů
     Komentářů: 10, poslední včera 12:54
    Rozcestník

    Fvwm - 6 (modul FvwmButton)

    15. 9. 2005 | Petr Bravenec | Recenze | 4254×

    Jak vytvořit tlačítka pro rychlé spouštění aplikací a rozbalovací panely a jak do tlačítka spolknout program.

    Úvod

    Je to už téměř rok, co jsem slíbil napsat další díl o okenním manažeru Fvwm - nyní nastal nejvyšší čas navázat na starý seriál a pokračovat povídáním o modulu FvwmButtons. Odkazy na předchozí díly seriálu určitě najdete na konci článku. Pokud by se vám nechtělo studovat starší články, pak pouze připomenu, že Fvwm je vysoce konfigurovatelný okenní manažer pro prostředí X11. Fvwm se konfiguruje v textovém souboru a nastavit lze prakticky cokoliv - vzhled oken, klávesové zkratky, reakce na myš, virtuální pracovní plochy a podobně. Dnes si ukážeme, jak vyrobit ve Fvwm vlastní lištu s tlačítky.

    Jednoduchý příklad

    Ve třetím díle (Fvwm - III) seriálu jsem uvedl jednoduchý příklad se dvěma tlačítky. Dneska se k příkladu vrátím:

    AddToFunc StartFunction I Modules FvwmButtons
    
    *FvwmButtons: Geometry -9-50
    *FvwmButtons: Back darkblue
    *FvwmButtons: Fore Yellow
    *FvwmButtons: Rows 3
    *FvwmButtons: BoxSize smart
    *FvwmButtons: Padding 2 2
    *FvwmButtons: (Title "xmms", Icon xmms.xpm , Action Exec xmms)
    *FvwmButtons: (Title "freeciv", Icon freeciv.xpm, Action Exec civ)
    

    Prvním řádkem přidáme startování modulu FvwmButtons do funkce StartFunction. Tato funkce se vyvolá vždy při startu nebo restartu fvwm. V našem jednoduchém příkladu je nastartovaný vždy jen jeden exemplář modulu FvwmButtons, ale není problém nastartovat několik různých panelů s tlačítky. Aby bylo možné rozlišit konfiguraci jednotlivých modulů, je třeba dalším parametrem každou instanci modulu pojmenovat zvlášť. Parametry pro danou instanci jsou uvozené hvězdičkou a jménem (praktické použití si ukážeme později):

    AddToFunc StartFunction I Modules FvwmButtons Knofliky1
    AddToFunc StartFunction I Modules FvwmButtons Knofliky2
    
    *Knofliky1: parametry...
    
    *Knofliky2: parametry...
    

    Parametry bez závorek platí pro celý modul. Pro lištu s tlačítky tak můžeme nastavit třeba společnou barvu pozadí (Back) či popředí (Fore), písmo (Font), rozměry a umístění na obrazovce (Geometry), šířku rámečku (Frame) a mnoho dalších vlastností.

    Parametry pro jednotlivá tlačítka jsou uzavřené do závorek. V naprosté většině tlačítek se objeví parametry Title, Icon a nějaký akční parametr. Tím může být velké množství příkazů Fvwm. Po stisku příslušného tlačítka tak můžeme nejčastěji nastartovat nějaký program (Exec), nebo třeba se přepnout na jinou stránku virtuální obrazovky (GotoPage) či ukončit práci s počítačem a odhlásit se (Quit).

    Příklad je uvedený i s drobnou chybou - zmíněný počet řádků s tlačítky je tři, přičemž tlačítka jsou pouze dvě. Parametr BoxSize:Smart dokáže modul FvwmButtons přesvědčit, že počty tlačítek nemá brát zas až tak příliš vážně a že případné chyby má tolerovat a panel s tlačítky přizpůsobit.

    Spolknuté aplikace

    Často chceme, aby byla součástí tlačítka běžící aplikace - typicky hodiny nebo graf se zátěží systému. K tomu mohou dopomoci spolknuté aplikace (jinde se jim říká "dokované" aplikace). Místo ikony se v tlačítku zobrazuje grafický výstup programu, přičemž tlačítko může i nadále plnit svou regulérní funkci tlačítka. Tlačítkem s obrázkem běžících hodin tak můžeme nastartovat hodiny přes celou obrazovku:

    *FvwmButtons: (Title "Hodiny", \
       Swallow "XClock" "Exec xclock -norender \
             -padding 1 \
             -bg darkblue \
             -fg yellow \
             -hd yellow \
             -hl yellow" \
       Action Exec xclock -norender \
             -bg darkblue \
             -fg yellow \
             -hd blue \
             -hl yellow )
    

    Příkaz Swallow je zde uveden ve své nejjednodušší podobě, se dvěma parametry. Prvním je označení okna - tlačítko se snaží spolknout aplikační okno s uvedeným řetězcem v jméně (Name), třídě (Class) či Resource (mám poprvé potřebu nějak překládat názvosloví X11 a nedaří se). Všechny parametry lze zjistit pomocí modulu FvwmIdent. V řetězci se může vyskytnout znak * se svou obvyklou nahrazovací funkcí.

    Normálně se chová příkaz Swallow tak, že při restartu fvwm se ukončí všechny spolknuté aplikace a nastartují se znovu. Takové chovaní může být někdy na závadu. Toto chování lze změnit několika příznaky, flagy:

    *FvwmButtons: (Title "Load",   \
       Swallow(UseOld,NoKill,NoClose) "swxload" \
       "Exec xload -title swxload
    ....

    Při ukončení modul FvwmButtons spolknutou aplikaci vyplivne a při opětovném startu ji opět spolkne. Příznak UseOld zajistí, že před tím, než modul FvwmButtons nastartuje novou instanci spolknuté aplikace, se poohlédne, jestli už někde aplikace vhodná ke spolknutí neběží. Až když modul žádnou běžící aplikaci nenajde, zkusí nastartovat novou instanci. Příznakem NoKill a NoClose zajistíme, že při ukončení modulu FvwmButtons nebude aplikace násilím ukončena a místo toho ji modul vyplivne. (Nemohu si pomoci - když si přeložím slovo "vyplivne" zpět do angličtiny, dostávám se k termínu "Spit or Swallow", používanému v úplně jiných oblastech (nejen) internetových zákoutí. Ach, ty nežádoucí asociace!).

    Container

    Tlačítka nemusejí mít jednoduchou podobu "tři tlačítka jdou, hezky za sebou". Tlačítka mohou být rozdělená na další podtlačítka, v terminologii FvwmButtons se takovému tlačítku říká Container:

    ....
    *FvwmButtons: (2x1, Container(Rows 2, Columns 2)
    *FvwmButtons: (Title "1", Action GotoPage 0 0)
    *FvwmButtons: (Title "2", Action GotoPage 1 0)
    *FvwmButtons: (Title "3", Action GotoPage 0 1)
    *FvwmButtons: (Title "4", Action GotoPage 1 1)
    *FvwmButtons: (End)
    ....
    

    Příkazem 2x1 sdělujeme, kolik prostoru se má pro kontejner použít. V našem příkladu se pro kontejner zabere oblast dvou tlačítek na šířku a jednoho tlačítka na délku. Parametry příkazu Container, Rows 2 a Colums 2, definují počet tlačítek v kontejneru. Parametry, které se uvedou v příkazu Container, jsou společné pro celý kontejner s tlačítky - zde můžeme definovat například společné barvy (či jiné vlastnosti) odlišné od nadřazeného souboru tlačítek.

    Po příkazu Container následují příkazy pro vytvoření tlačítek v kontejneru. V našem případě se vytvoří tlačítka s nápisy "1", "2", "3", "4" - akční příkaz GotoPage pak zajistí, že se lze tlačítky přepínat mezi jednotlivými stránky virtuální obrazovky.

    Nakonec je potřeba ukončit kontejner příkazem End.

    Panely

    Jako akční příkaz tlačítka lze použít velkou část příkazů fvwm. Nejobvyklejší bude asi příkaz Exec pro spuštění externího programu, ale není problém stisknutím tlačítka například přepnout na jinou stránku virtuální obrazovky (to už jsme si ukázali), vyvolat menu nebo vyvolat například další lištu s tlačítky. V terminologii modulu FvwmButtons se takové další liště říká Panel. Ve skutečnosti lze použít jako panel jakoukoli aplikaci, nejen další instanci modulu FvwmButtons. Při startu modulu je nastartován i každý nadefinovaný panel, ale před zraky uživatele je skrytý a zobrazí se až při stisknutí příslušného tlačítka.

    Použijeme-li jako panel další lištu s tlačítky, je nutné takovou lištu pojmenovat jinak, abychom mohli v konfiguračním souboru rozlišit konfiguraci jednotlivých instancí modulu FvwmButtons. Většinou také chceme, aby se lišta po provedení akce před zraky uživatele schovala:

    *FvwmButtons: (Title "Terminal", Icon gnome-terminal.png, \
          Panel(down, delay 40, smooth, steps 8) \
       Terminaly "Module FvwmButtons -transientpanel Terminaly ")
    
    *Terminaly: Back darkblue
    *Terminaly: Fore Yellow
    *Terminaly: Rows 4
    *Terminaly: BoxSize smart
    *Terminaly: (Title "Lokalni",  Icon gnome-terminal.png, \
            Action Xterm-local)
    *Terminaly: (Title "Server",   Icon gnome-terminal.png, \
            Action Xterm-server)
    *Terminaly: (Title "Server 3", Icon gnome-terminal.png, \
            Action Xterm-server3-r)
    

    Příkaz Panel má podobné parametry jako příkaz Swallow: prvním parametrem je řetězec označující okno, které se má použít jako panel, dalším parametrem je akční příkaz, kterým se nastartuje příslušná aplikace. V závorce jsou příznaky, flagy, kterými se řídí chování a vzhled panelu. V našem příkladu příznaky zajistí, že další lišta s tlačítky se vysune na obrazovku postupně - animovaně v osmi krocích.

    Součástí příkazu Panel je i akční příkaz pro nastartování příslušné aplikace - v našem případě další instance modulu FvwmButtons. Modul je startovaný se dvěma parametry: -transientpanel zajistí, že lišta s tlačítky bude na obrazovce pouze přechodně do stisknutí některého tlačítka, parametr Terminaly pojmenuje příslušnou instanci modulu FvwmButtons. Podle toho jména modul hledá v konfiguračním souboru parametry platné právě pro něj.

    Závěr

    V článku jsem chtěl pouze ukázat podstatné vlastnosti modulu FvwmButtons, bez snahy suplovat manuálovou stránku. V té je modul popsaný velmi důkladně a při vytváření konfigurace FvwmButtons se bez jejího prostudování neobejdete. Na závěr uvádím příklad části konfiguračního souboru, ve které je ukázaná většina popsaných možností.

    Příklad konfigurace FvwmButtons (kódování iso-8859-2).

    Náhled pracovní plochy s tlačítky FvwmButtons

           

    Hodnocení: 83 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Ruža Becelin avatar 15.9.2005 07:03 Ruža Becelin | skóre: 40 | blog: RuzaBecelinBlog
    Rozbalit Rozbalit vše Swallow
    Díky za článek. Chci se zeptat na jednu věc - zkusil jsem si dát do Swallow dokovací ikonu LICQ. Jakmile je pohlcena, LICQ se neustále odhlašuje a přihlašuje, což vede k překročení limitu a vykopnutí z ICQ serveru. Dá se tahle situace ošetřit? Nevím, jestli je to problém LICQ nebo FVWM...

    Gentoo 2005.0,FVWM 2.5.12,LICQ 1.2.7/SSL
    Petr Bravenec avatar 15.9.2005 07:14 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Swallow
    Licq mě napadlo spolknout taky (po napsání článku). Tyhle problémy s tím ovšem nemám:
    *FvwmButtons: (Title "ICQ", Center, \
          Swallow(UseOld,NoKill,NoClose) \
          "LicqWharf" "Exec exec licq" )
    
    Jediné, co mě trochu na licq vadí je, že ikona má rozměr 48x40 pixelů a obrázek v ikoně má rozměr takových 38x38 a je zarovnaný v ikoně doleva :-(
    Petr Bravenec - Hobrasoft s.r.o.
    Ruža Becelin avatar 15.9.2005 07:48 Ruža Becelin | skóre: 40 | blog: RuzaBecelinBlog
    Rozbalit Rozbalit vše Re: Swallow
    Zkoušel jsem to pohlcovat bez těch parametrů ve Swallow, vyzkouším ještě tohle a dám vědět..
    Ruža Becelin avatar 15.9.2005 11:05 Ruža Becelin | skóre: 40 | blog: RuzaBecelinBlog
    Rozbalit Rozbalit vše Re: Swallow
    Tak tohle funguje parádně, ještě jednou díky..

    Jinak v LICQW mám zaškrtnutou výchozí ikonu a krásně mi vyplní celý prostor, to je těch 50x50 bodů. Ale teď se dívám - to bude zřejmě tím, že já nepoužívám Title...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.