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í
×
    dnes 02:11 | IT novinky

    Byla oznámena beta verze nového video kodeku Pyrowave pro streamování her v Steam Remote Play. S vysokou propustností a nízkou latencí. S podporou HDR a YUV 4:4:4.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | Nová verze

    Byl vydán Sublime Text 4 Build 4213. Sublime Text (Wikipedie) je proprietární multiplatformní editor textových souborů a zdrojových kódů. Ke stažení a k vyzkoušení je zdarma. Pro další používání je nutná licence v ceně 99 dolarů. Spolu se Sublime Merge je cena 168 dolarů.

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

    Firma Anthropic, tvůrce AI modelu Claude, začala v oblasti Sanfranciského zálivu v tichosti provozovat vlastní biotechnologickou laboratoř. Anthropic prý chce pomocí AI urychlit hledání léků na nemoci, jimž farmaceutický průmysl dle názoru firmy věnuje příliš málo pozornosti. Firma tvrdí, že laboratoř se zatím soustředí především na základní biologii, nikoli přímo na vývoj léčiv. Farmaceutický výzkum je pro generálního ředitele Daria Amodeie velice osobní téma, jeho otec zemřel na hepatitidu C několik málo let před objevením účinné léčby.

    AfD 💙 | Komentářů: 1
    včera 21:44 | Humor

    Vědci z Googlu dokončili mapu všech neuronových spojení v mozku (tzv. konektom) samečka mušky octomilky obecné (drosophila melanogaster), hlavním cílem je komparativní analýza s již zmapovaným mozkem samičky. S tímto veřejně dostupným modelem, čítajícím přibližně 160 000 neuronů, se začali bavit nadšenci. Mozek mouchy pohání experimentálního kryptoburzovního bota Stonkfly, případně si zahrál počítačové hry Beat Saber, Mario64 a samozřejmě DOOM (gameplay videa). Ani mozek samičky nezůstal stranou, vyzkoušel si Minecraft.

    AfD 💙 | Komentářů: 0
    včera 16:22 | Nová verze

    Alibaba Cloud je dalším sponzorem nadace Omacom Foundation stojící za linuxovou distribucí Omarchy. Přislíbená částka je 3 miliony dolarů, tj. 1 milion dolarů ročně po dobu tří let. Stejná částka jako u DigitalOcean.

    Ladislav Hagara | Komentářů: 4
    včera 16:11 | Nová verze

    Byla vydána nová verze 262 správce systému a služeb systemd (Wikipedie, GitHub).

    Ladislav Hagara | Komentářů: 0
    včera 02:33 | IT novinky

    Canonical oznámil vydání Zephyr 26.04 LTS. Jedná se o komerční distribuci operačního systému pro mikrokontroléry Zephyr (Wikipedie) s podporou až 15 let.

    Ladislav Hagara | Komentářů: 0
    včera 02:00 | Zajímavý projekt

    Gravity Linux je linuxová distribuce určená pro Apple Silicon s čipy M4 a novějšími. Vydána byla alfa verze pro M4 Mac mini. Gravity Linux je fork Asahi Linuxu.

    Ladislav Hagara | Komentářů: 0
    21.9. 22:22 | Zajímavý projekt

    Hister je osobní soukromý vyhledávač, který lze provozovat na vlastním stroji. Umí prohledávat lokální soubory, importovat historii a záložky z webových prohlížečů, procházet vybrané weby a pomocí rozšíření pro Firefox a Chrome indexovat obsah právě navštívených stránek. Nad vytvořeným indexem pak nabízí vyhledávání prostřednictvím webového rozhraní, příkazové řádky a díky podpoře MCP i nástrojům umělé inteligence. Tento

    … více »
    AfD 💙 | Komentářů: 9
    21.9. 13:33 | IT novinky

    Ministerstvo dopravy uznalo prozatímní schválení asistenčního systému Tesla FSD Supervised vydané nizozemským schvalovacím orgánem RDW. Připojilo se tak k Nizozemsku a dalším pěti evropským státům. Systém je díky tomuto rozhodnutí možné používat za podmínek prozatímního schválení také na území České republiky. Tesla FSD Supervised je asistenčním systémem úrovně 2 podle klasifikace SAE (částečná automatizace řízení). Řidič se

    … více »
    Ladislav Hagara | Komentářů: 22
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2717 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Fvwm - 7 (Dynamická menu)

    23. 9. 2005 | Petr Bravenec | Recenze | 84816×

    Příkazy pro tvorbu dynamických menu. Užitečný fungující příklad.

    Úvod

    Na potřebu vytvářet menu dynamicky jsem narazil chvíli poté, co se mi na disku shromáždilo o něco málo více než dvě fotky, a já hledal efektivní způsob, jak střídat na pozadí pracovní plochy depresivní obrázek propíchané holky s depresivním obrázkem podzimního Radhoště v mlze. Fvwm je naštěstí inteligentní okenní manažer a pamatuje i na mou potřebu vytvářet menu dynamicky například podle obsahu nějakého adresáře.

    Podobný nápad měli i tvůrci fvwm, protože přímo součástí distribučního balíčku je i v perlu napsaný program fvwm-menu-directory, který je právě na procházení adresářových struktur pomocí menu fvwm určený. Při studiu dynamických menu mi program fvwm-menu-directory významně pomohl.

    Program fvwm-menu-directory není v distribuci fvwm jediný program pro tvorbu dynamických menu. Zajímavou inspirací může být například fvwm-menu-headlines - program dokáže z internetu stáhnout titulky článků z různých zpravodajských serverů a při zvolení nastartovat prohlížeč s obsahem příslušného článku - zřejmě tedy RSS čtečka integrovaná přímo do okenního systému. Další program, fvwm-menu-desktop, vytváří menu z definic prostředí Gnome či KDE. Přiznám se, že netuším, jak tyto programy fungují - nikdy jsem je nezkoušel.

    Příkazy pro tvorbu dynamických menu

    Při tvorbě různých funkcí a menu si je třeba uvědomit, že na rozdíl od jiných "programovacích jazyků" konfigurační jazyk fvwm umožňuje vytvářet jedno menu nebo funkci na několika místech. Příkaz AddToMenu můžeme použít na začátku konfiguračního souboru, pokračovat s tvorbou stejného menu uprostřed, ve zcela jiném kontextu, a celé menu dokončit na posledních řádcích konfiguračního souboru, případně v souboru uloženém někde úplně jinde. Takový přístup jistě není nejlepší konfigurační technikou, ale usnadňuje to dynamickou tvorbu konfigurace fvwm. Zkušenému programátorovi/konfigurátorovi by nemělo činit problémy udržet zmatek v konfiguračním souboru na zvládnutelné úrovni.

    Při tvorbě dynamických menu je přijatelným postupem definovat úvodní část menu staticky v konfiguračním souboru:

    AddToMenu MojeMenu
    + "Moje menu" Title
    + "" Nop
    + "Statická akce" Exec exec ...
    

    a o kus dál (dynamicky) připojit k menu další položky:

    AddToMenu MojeMenu "Položka v menu" Exec exec...
    

    Read

    Přečte část konfigurace z externího souboru. Pro nefalšovaná dynamická menu není příkaz Read úplně nejvhodnější vzhledem ke statické povaze normálního souboru. Příkaz read je obyčejnou obdobou například direktivy #include z jazyka C.

    PipeRead

    Přečte část konfigurace ze standardního výstupu nějakého programu. Program je spuštěn pomocí /bin/sh, takže jako externí program lze uvést i jednoduchý skript shellu:

    AddToMenu HomeDirMenu
    PipeRead 'for i in $HOME/*; \
        do echo "+ \"$i\" Exec xterm -e vi \"$i\""; done'
    

    Příklad vytvoří menu se seznamem všech souborů v domácím adresáři uživatele a v případě zvolení některé položky nastartuje xterm s editorem vi.

    MissingSubmenuFunction

    Adresářová struktura bývá obecně ve stromovém tvaru, velmi složitá, a předem nelze říci, co na souborovém systému najdeme. Fvwm dovede dynamicky vytvářet nejen jednotlivé položky v menu, ale i celá menu. Příkazem MissingSubmenuFuction okennímu manažeru fvwm sdělujeme, která funkce mu pomůže při vytváření chybějících podmenu. Pro každé dynamické menu lze samozřejmě uvést jinou funkci.

    Funkci je jako první parametr předané jméno vytvářeného menu. Parametr je přístupný, podobně jako v shellu, jako "$0".

    AddToFunc FuncFvwmMenuDirectory
    + I PipeRead "fvwm-menu-directory -d '$0'"
    
    AddToMenu Adresare "Adresáře" title
    + MissingSubmenuFunction FuncFvwmMenuDirectory
    + "Adresář [$HOME]" Popup "$[HOME]"
    + "Adresář /"       Popup "/"
    

    V uvedeném příkladu je pro tvorbu chybějících menu použitý externí program fvwm-menu-directory. Menu jím generovaná předpokládají, že funkce pro tvorbu menu se jmenuje FuncFvwmMenuDirectory, ale není problém jméno funkce změnit parametrem --func-name "jméno funkce". Program fvwm-menu-directory je napsaný v perlu a je možné jej spustit přímo na povelové řádce a prohlédnout si jeho výstup:

    DestroyMenu recreate "/"
    AddToMenu "/"
    + DynamicPopDownAction DestroyMenu "/"
    + MissingSubmenuFunction FuncFvwmMenuDirectory
    + "/" Exec cd "/"; xterm -e /bin/bash
    + "" Nop
    + "bin" Popup "bin" item +100 c
    ....
    

    DynamicPopdownAction a DynamicPopupAction

    Příkazy umožňují spustit nějakou akci při zobrazení nebo skrytí menu. Protože tvoříme menu dynamicky a předpokládáme, že obsah menu se může pokaždé změnit, je dobré takové menu po použití zrušit, jinak by se nám v menu hromadily položky jako horníci v dolech:

    AddToMenu MojeMenu DynamicPopDownAction  DestroyMenu MojeMenu
    

    Pro vytváření menu se dá použít příkaz DynamicPopupAction:

    AddToMenu Adresare
    + DynamicPopDownAction DestroyMenu Adresare
    + DynamicPopUpAction PipeRead \
      'for i in /tmp/*; do echo "AddToMenu Adresare \\"$i\\" Nop"; done'
    

    Příklad nic užitečného nedělá, pouze vypisuje soubory v adresáři /tmp, ale lze na něm hezky demonstrovat použití příkazů DynamicPopDownAction a DynamicPopUpAction.

    No a to je v zásadě vše, co nám stačí k tvorbě dynamických menu.

    Užitečný fungující příklad

    Ve svém domácím adresáři jsem si vyrobil adresář .podklad a do něj uložil všechny obrázky, které chci mít občas na ploše. Obrázky jsem si hezky roztřídil do podadresářů podle témat.

    Někam do cesty (u mě je to adresář /usr/local/bin) jsem uložil jednoduchý skript:

    #!/bin/sh
    
    if [ "$1" = "--menu" ]; then
        DIR="$2"
        cd $DIR
        echo "DestroyMenu recreate \"$DIR\""
        echo "AddToMenu \"$DIR\""
        echo "+ DynamicPopDownAction DestroyMenu \"$DIR\""
        echo "+ MissingSubmenuFunction FuncPodkladDir"
        # První se zpracují adresáře
        find * -type d -maxdepth 0 -print | while read i
            do
            echo "+ \"$i\" Popup \"${DIR}${i}\""
            done
        # Pak se vyhledají a zpracují soubory s obrázky
        find *.jpg *.jpeg -type f -maxdepth 1 -print | while read i
            do
            # jména souborů očesat o příponu
            nn="`echo $i | sed 's/\.jpg$//; s/\.jpeg$//;'`"
            echo "+ \"$nn\" Exec podklad xloadimage -border black -center \
             -onroot \"\\\"${DIR}/${i}\\\"\""
            done
        exit
        fi
    
    # Skript je volaný s parametry, které říkají, jak zobrazit obrázek na
    # ploše obrazovky
    if [ $# -gt 0 ]; then
        echo "$@" > $HOME/.podklad/podklad.cfg
        fi
    
    # Skript je volaný bez parametrů, z minula ale máme uložený příkaz
    # pro zobrazení obrázku v souboru podklad.cfg
    if [ -r "$HOME/.podklad/podklad.cfg" ]; then
        . $HOME/.podklad/podklad.cfg
        fi
    

    Do konfiguračního souboru fvwm jsem doplnil řádky:

    AddToFunc FuncPodkladDir
    + I PipeRead "podklad --menu '$0'"
    
    AddToMenu Podklad
    + MissingSubmenuFunction FuncPodkladDir
    + "Podklad obrazovky" title
    + "Čistý černý podklad" Exec podklad xsetroot -solid Black
    + "Čistý modrý podklad" Exec podklad xsetroot -solid MidnigtBlue
    + "" Nop
    + "Obrázky" Popup $[HOME]/.podklad/
    

    Skript se volá třemi různými způsoby. Z fvwm je třeba zavolat skript s parametry --menu jmeno_adresare - pak se vygeneruje seznam obrázků (pro jednoduchost soubory s příponou jpg a jpeg) v podobě dynamického menu. Při zvolení některé položky se zavolá skript podruhé a jako parametr se mu předá celý postup, kterým se má nastavit na pracovní plochu požadovaný obrázek (volání xloadimage). Potřetí se skript volá bez parametrů při startu fvwm - v tom případě si skript sáhne na disk do souboru .podklad/podklad.cfg, kde má od minula uložené, jak má nastavit pozadí pracovní plochy.

    Závěr

    První díl seriálu o fvwm (Fvwm - I) jsem napsal téměř před rokem. Jsem rád, že jsem konečně našel sílu napsat vše, co jsem původně zamýšlel, a že jsem dokázal seriál dokončit.

    Nejčtenější články posledního měsíce

    Týden na ITBiz: Nová technologie kapalinového chlazení čipů je 10krát účinnější než dosavadní rekord
    Týden na ITBiz: Kdo a jak bude hlídat, že české firmy dodržují Akt o kybernetické odolnosti? A jak se nařízení staví k open source
    Týden na ITBiz: Bez lidí zůstane polovodičová strategie na papíře

    Nejkomentovanější články posledního měsíce

    Jaderné noviny – přehled za srpen 2026
      všechny statistiky »

    Seriál Správci oken (dílů: 11)

    Blackbox: malá černá skříňka (první díl)
    <—« Fvwm - 6 (modul FvwmButton)
    »—> Fluxbox
    Fluxbox (poslední díl)

    Související články

    Fvwm - I
    Fvwm - II
    Fvwm - III
    Fvwm - IV
    Fvwm - V
    Fvwm - 6 (modul FvwmButton)
    Seriál: Správci oken
    Seriál: Na co se často ptáme: X Window System

    Odkazy a zdroje

    Domácí stránka fvwm

    Další články z této rubriky

    Linuxové foto novinky: pozvolná evoluce
    PCLinuxOS 2017.2 MATE - tak trochu zvláštní linuxová distribuce
    Krátký pohled na Fedoru 25, Wayland a GNOME 3.22
    Naprosto ničím nezajímavé Lubuntu 16.10
    Calligra Suite - Dobrá alternativa k LibreOffice
           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

    Vložit další komentář

    23.9.2005 09:56 Zdenek Kaminski
    Rozbalit Rozbalit vše diky
    Za clanek a cely serial diky.

    Prinutil jsem po 4 letech svou lenost a opet jsem si zkompiloval fvwm a opet si libuji!

    A za zminku o Radhosti plus 10 bodu :-)

    Hezky den
    Petr Bravenec avatar 23.9.2005 12:17 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: diky
    Když vám dělá zmínka o Radhošti dobře, třeba vás potěší i zmíněná fotka: http://www.solartec.cz/Petr.Bravenec/radhost.jpg.
    Petr Bravenec - Hobrasoft s.r.o.
    23.9.2005 12:54 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
    Rozbalit Rozbalit vše :-)
    Depresivní obrázek propíchané holky -- to zní celkem zajímavě, byl by k nahlédnutí?

    Zdenek
    www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
    Petr Bravenec avatar 23.9.2005 13:05 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: :-)
    http://www.solartec.cz/Petr.Bravenec/piercing.jpg. Původní předloha je čmajznutá z bmezine, trochu ořezana, odbarvená, přibarvena... prostě dost upravovaná.
    Petr Bravenec - Hobrasoft s.r.o.
    23.9.2005 13:50 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: :-)
    To se mi ulevilo, ze jde o piercing. Moje fantazie pracovala na plno :-) A zrovna dneska psali o tom uchylovi, jak zabil svou expritelkyni, ze pred vrazdou nosil na tricku obrazek s obesenou divkou ..
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    Petr Bravenec avatar 23.9.2005 14:39 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: :-)
    To nic. Chodit po světě s hubou propíchanou je taky úchylka :-)
    Petr Bravenec - Hobrasoft s.r.o.
    23.9.2005 14:41 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: :-)
    A to máš jako wallpaper? U vás doma bych se možná bál přespat...
    Petr Bravenec avatar 23.9.2005 14:52 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: :-)
    To je letos můj nejoblíbenější wallpaper. Historicky druhý nejoblíbenější je tenhle: http://www.solartec.cz/Petr.Bravenec/to-jsem-ja.jpg. Je fakt, že se spaním mám problémy. Musím spát při rozsvíceném světle, protože po tmě se sám sebe bojím :-)
    Petr Bravenec - Hobrasoft s.r.o.
    24.9.2005 11:10 Jakub
    Rozbalit Rozbalit vše Re: :-)
    FVWM - super
    Seriál o FVWM - pěkné
    Diskuse + vyvrcholení diskuse - LOL. Smál jsem se tak až jsem se dusil.
    robotics avatar 1.10.2005 17:13 robotics | skóre: 29 | blog: o_vsem_moznem
    Rozbalit Rozbalit vše Re: :-)
    Já nechcu ještě konec seriálu :-( .. chci víc.. chci přeložený celý manuálový stránky pro fvwm!

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    Redakce | Inzerce | Podmínky použití | Osobní údaje
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.