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 16:33 | Humor

    Je tu opět apríl. O víkendu zmizel kamion s 12 tunami tyčinek KitKat. Firmy to využívají k aprílovým žertům. Groupon má super akci. Koupíte 1 tyčinku a dostanete 100 zdarma. Ryanair si přelepil letadla. Šéf Outlooku se ptá, proč mají v baráku 14 beden tyčinek KitKat (𝕏). Prusa Research představuje Prusa Pro ACU a vysvětluje proč přílišné sušení škodí vaším filamentům. Telefon Sony Xperia má miliónnásobný zoom (𝕏). PC.net představil Super Ultrabox 2600 se zajímavými parametry. Další aprílové novinky například na April Fools' Day On The Web.

    Ladislav Hagara | Komentářů: 2
    dnes 13:22 | IT novinky

    Společnost OpenAI, která stojí za chatovacím robotem s umělou inteligencí (AI) ChatGPT, získala od investorů 122 miliard USD (2,6 bilionu Kč). Hodnota společnosti tak dosáhla 852 miliard dolarů (více než 18 bilionů Kč). Nejnovější kolo investování se stalo největší, jaké zatím firma uskutečnila, a peníze mají posílit ambiciózní plány rozšíření výpočetní kapacity, datových center a nábor talentů.

    Ladislav Hagara | Komentářů: 3
    dnes 13:11 | IT novinky

    Nástroj k identifikaci občanů v on-line komunikaci s úřady byl dnes dopoledne zhruba dvě hodiny částečně nedostupný. Problém se objevil kolem 09:00 a podařilo se ho vyřešit kolem 11:00. Částečně nedostupná byla služba Národní identitní autority (NIA), problémy podle DIA (Digitální a informační agentura) ovlivňovaly přihlašování například i přes bankovní identitu. „Dostupnost NIA byla plně obnovena, přihlášení k digitálním službám

    … více »
    Ladislav Hagara | Komentářů: 2
    dnes 13:00 | IT novinky

    Eben Upton oznámil další zdražení počítačů Raspberry Pi kvůli růstu cen pamětí a představil Raspberry Pi 4 s 3 GB RAM za 83,75 dolarů.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Humor

    Anthropic patrně omylem zveřejnil celý zdrojový kód svého CLI nástroje Claude Code prostřednictvím přiloženého sourcemap souboru v npm balíčku. Únik odhalil doposud nijak nezveřejněné funkce jako je například režim v utajení, autonomní agent 'KAIROS', orchestrace multi‑agentů, režim snění nebo dokonce virtuální mazlíček Buddy. Zajímavostí je detekce naštvání uživatele pomocí obyčejného regexpu. Anthropic rychle odstranil sourcemap a vydal opravu, nicméně kopie kódu se již stihly na GitHubu rozšířit mezi prostým lidem.

    NUKE GAZA! 🎆 | Komentářů: 9
    včera 14:33 | Humor

    Copilot automaticky vkládal do pull requestů 'propagační tipy', reklamní text se na GitHubu objevil ve více než jedenácti tisících pull requestech. Po vlně kritiky byla tato funkce zablokována a produktový manažer Tim Rogers připustil, že umožnit Copilotovi upravovat cizí pull requesty bez vědomí autorů byla chyba.

    NUKE GAZA! 🎆 | Komentářů: 4
    včera 12:55 | Upozornění

    Je 31. března a tedy Světový den zálohování (World Backup Day). Co by se stalo, kdyby Vám právě teď odešel počítač, tablet nebo telefon, který používáte?

    Ladislav Hagara | Komentářů: 4
    včera 12:44 | Upozornění

    Digitální a informační agentura (DIA) přistupuje ke změně formátu důvěryhodného seznamu České republiky z verze TLv5 na verzi TLv6, která nastane 29. dubna 2026 v 00:00 (CET). Ke změně formátu důvěryhodných seznamů členských států (tzv. Trusted Lists) dochází na základě změn příslušné unijní legislativy. Důvěryhodné seznamy se používají v rámci informačních systémů a aplikací zejména pro účely ověřování platnosti elektronických

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 05:00 | Nová verze

    Rspamd (Wikipedie), tj. open source systému pro filtrování nevyžádané pošty, byl vydán v nové major verzi 4.0.0. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 1
    30.3. 23:11 | Nová verze

    SolveSpace (Wikipedie), tj. multiplatformní open source parametrický 2D/3D CAD, byl vydán v nové verzi 3.2. Přehled novinek v Changelogu na GitHubu. Vyzkoušet lze novou oficiální webovou verzi.

    Ladislav Hagara | Komentářů: 10
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (5%)
     (1%)
     (14%)
     (23%)
    Celkem 1202 hlasů
     Komentářů: 29, poslední včera 11:17
    Rozcestník
    Štítky: není přiřazen žádný štítek

    KDE: tipy a triky - III (DCOP a KDialog)

    27. 5. 2005 | Robert Krátký | Tipy a triky | 13855×

    KDE je grafické desktopové prostředí, ale přesto lze velmi snadno využívat funkcí programů i samotného prostředí v rámci vašeho oblíbeného skriptovacího jazyka.

    Úvod

    Proč skriptovat cokoliv v rámci grafického uživatelského rozhraní? Dobrý důvod, který by přesvědčil každého, kdo při zmínce o něčem podobném kroutí hlavou, asi neexistuje. Jistě, dalo by se mluvit o tom, že možnost využívat KDE funkce a aplikace i neinteraktivně je přínosná, ale pravdou zůstává, že pro někoho tam to KDE bude prostě představovat nadbytečnou vatu kolem.

    Takže nebudu obhajovat ani KDE, ani funkce, které budou v článku popisovány. Jsem smířen s tím, že tuto možnost ovládání KDE využijí a ocení jen ti, kdo už KDE používají, a jen by se jim hodilo některé postupy zefektivnit.

    Stejné je to s využíváním dialogových boxů. Volat je ze skriptů nebo rovnou z příkazové řádky může být užitečné jen pro toho, kdo chce nějaké dialogové boxy vidět. Ostatní si úplně vystačí s tím, když se komunikace se skriptem odehrává na emulátoru terminálu.

    DCOP

    Desktop COmmunication Protocol je poměrně mocný nástroj (či spíše systém), pomocí kterého mohou jednotlivé procesy mezi sebou komunikovat. Konkrétní aplikace musí být s podporou DCOP napsána, ale to je u kmenových KDE aplikací samozřejmostí a mnohé externí Qt/KDE aplikace jsou podporou DCOP vybaveny také.

    DCOP mohou využívat buď samotné aplikace mezi sebou, nebo můžeme k DCOP rozhraní jednotlivých programů přistupovat "zvenčí". Pro nejjednodušší seznámení s podobou DCOP rozhraní je vhodné využít program kdcop. Jde o jednoduchý GUI program, který poskytuje přístup k DCOP rozhraním spuštěných aplikací. Chcete-li si udělat rámcovou představu o tom, jaká volání která aplikace (nebo komponenta desktopu) nabízí, projděte si kdcop.

    Prostřednictvím kdcop lze volání i aplikovat. Praktické využití (kromě zjištění DCOP možností aplikací) to však nemá. K volání z příkazové řádky - a tedy i ze skriptů - lze využít program dcop. Jeho možnosti jsou docela široké, i když neoplývá závratným množstvím parametrů (viz dcop --help).

    Praxe

    Nebudu se snažit o vymýšlení nějakého úchvatně praktického využití. Každý jistě pozná, jestli by se mu možnosti DCOP mohly k něčemu hodit. Pracovní a ukázkový příklad, který bude následovat, tedy berte s vědomím toho, že jde o naprostou hloupost, kterou by při skutečné práci nikdo nepotřeboval. Nám však poslouží k představení základních postupů a možností DCOP.

    Aplikace většinou (podle svého zaměření) poskytují DCOP rozhraní jednak informativního charakteru (název okna, právě hrající písnička apod.) a potom taková, pomocí kterých lze program i ovládat (zastav přehrávání, otevři okno apod.). Využijeme tedy od každého trochu.

    dcop `dcop konqueror* | head -1` konqueror-mainwindow#1 \
    newTab "`dcop amarok player nowPlaying`"

    Co tento příkaz dělá? Zjistí, jakou skladbu právě hraje přehrávač amaroK. Tato informace je předána Konqueroru (máte-li otevřeno více instancí Konqueroru, je zvolena ta první - s nejnižším PID), který otevře novou záložku s URL, které odpovídá právě názvu skladby. Což při mém nastavení prohlížeče automaticky daný řetězec vyhledá pomocí Google. Pokud používáte webové zkratky, měli byste do dvojitých uvozovek na začátek ještě vložit nějaké to gg.

    desktop

    Rozeberme to postupně:

    1. Příkaz dcop podporuje wildcards, takže konkrétní instanci si najdeme tak, že necháme vypsat všechny a vezmeme z nich tu první.
    2. Dále nás zajímá hlavní okno programu (mainwindow#1), ve kterém chceme otevřít novou záložku (newTab)
    3. Jako parametr otevírané záložky nám další volání programu dcop poskytne právě přehrávanou píseň z amaroKu (nowPlaying).

    Ačkoliv je to prosté, určitě vidíte, že možnosti jsou veliké. Znovu opakuji, že tento konkrétní příklad je ale z hlediska reálné použitelnosti naprosto zbytečný.

    KDialog

    Aplikace KDialog je KDE obdobou klasického programu xmessage, který máte určitě nainstalovaný spolu se základním X serverem. Její funkcí je zobrazovat jednoduché dialogové boxy, se kterými můžete snadno pracovat (zobrazovat v nich informace, nabídky, ... a odchytávat vracené hodnoty podle vstupu uživatele) opět z prostředí příkazového řádku nebo skriptu. Nejviditelnější výhodou je u KDialog to, že jde o Qt aplikaci, a proto se podřizuje nastavení vzhledu, které na svém desktopu máte.

    kdialog --help vám poskytne stručný, ale přehledný seznam parametrů, pomocí kterých můžete ovlivnit typ okna. Na výběr je několik základních předdefinovaných druhů (informační, chybové, pro zadání hesla apod.). Úplně nejjednodušším příkladem je jen obyčejné vypsání informace:

    kdialog --msgbox "Informační text. Bla bla" --title "První okno"

    kdialog1

    Myslím, že vysvětlivky nejsou potřeba.

    DCOP a KDialog

    Ještě přihodím jednu ukázku. Opět je to úplně nesmyslná věc. Účelem je představit pár dalších možností KDialog společně s několika voláními DCOP.

    #!/bin/bash
    
    kdialog --yesno "Počkat 5 vteřin?" --title "Co bude?"
    
    while [ $? -eq 0 ]; do
      cislo=0
      pid=`kdialog --progressbar Čekám 5 | sed \
      's/.\+-\([[:digit:]]\+\).\+/\1/'`
      until [ $cislo -eq 5 ]; do
        sleep 1
        cislo=$((cislo + 1))
        dcop kdialog-$pid ProgressDialog setProgress $cislo
      done
      dcop kdialog-$pid MainApplication-Interface quit
      kdialog --yesno "Počkej ještě 5 vteřin." --title "Znovu?"
    done
    
    kdialog --sorry "Konec." --title "Fňuk"

    Stručně:

    1. Dialogové okno se dvěma možnostmi: Ano, Ne.

      kdialog2

    2. Proměnná $? obsahuje vrácené hodnoty podle stisknutého tlačítka. Kladná odpověď je 0, záporná 1 (zrušení 2).
    3. Spustíme dialog s ukazatelem průběhu, zjistíme si jeho PID, který KDialog automaticky vypisuje na standardní výstup, a každou vteřinu ukazatel průběhu pomocí DCOP volání posuneme.

      kdialog3

    4. Po uplynutí 5 vteřin dialog přes DCOP ukončíme a zobrazíme nabídku na opakování celé blbiny.
    5. Pokud nás to přestane bavit, další dialogové okno se s námi rozloučí.

      kdialog4

    Poznámky:

    • Prosím o shovívavost. Jde jen o ukázku. Nejsem žádný SEDfrajer ani BASHmachr.
    • Některé nápady jsem čerpal z textů uvedených pod článkem.

    Závěr

    Tímto dílem asi miniseriál o nepříliš známých dovednostech KDE končí. Pokud vás napadá nějaká oblast, která by ještě stála za rozepsání, zmiňte ji, prosím, v diskuzi.

           

    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

    Vložit další komentář

    Josef Kufner avatar 27.5.2005 02:24 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše V praxi?
    Vypada to zajimave, ale zajimalo by me, jestli (a jak) to nekdo vyuziva v realnem svete. Videl jsem v akorat automaticke odhlaseni z Xek pri rebootu (v /etc/rc.d).
    Hello world ! Segmentation fault (core dumped)
    Yin avatar 28.5.2005 20:07 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: V praxi?

    Ja to pouzivam spolocne s micq (conzolovy ICQ client). nuieje to este dokoncene...

    Ked dojde sprava, cez tcl spustim kdialog s input-boxom. Ked dam cancal ingnorujem spravu, ked tam nieco napisem, odosle text s input-boxu. Prakticke a nemam ICQ klienta stale na ocich... (ziadneho nemam rad)

    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    27.5.2005 06:09 trancelius | skóre: 22
    Rozbalit Rozbalit vše Praktické využití
    Já sem si napsal takovej scriptík, kterej pomocí DCOP volání zjistí co hraje v amaroKovi a pak to uloží do klippera, takže se můžu třeba na chatu chlubit mým nowPlaying ... :D
    #! /bin/bash
    nowPlaying="$(dcop amarok player nowPlaying)"
    position="$(dcop amarok player currentTime)"
    total="$(dcop amarok player totalTime)"
    dcop klipper klipper setClipboardContents "amaroK 1.2.3 >> $nowPlaying [ $position / $total ]"
    
    Jiří Němec avatar 27.5.2005 14:31 Jiří Němec | skóre: 22 | blog: BluPix | Horní Smrčné
    Rozbalit Rozbalit vše Re: Praktické využití
    Díky moc. Super script. Teď jestě musím zjistit jak ten výstup dostat do standardní schránky, co mám na prostredním tlacítku, bez použití klipperu. Používám amaroK v window makeru.

    Když ten výstup nasměruji na xclip, tak mi to vkládá správný výstup do xtermu, xchatu, ale do psi ne. A zrovna bych to potřeboval používat v tom psi. Celkově se ten xclip chová podivně a všechny qt programy jeho výstup tak nějak ignorují. Bohužel jsem nenašel náhradu za xclip.
    Spock: "Logic, logic, logic. Logic is the beginning of wisdom, not the end.
    Josef Kufner avatar 27.5.2005 15:49 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Praktické využití
    zkus xsel
    Hello world ! Segmentation fault (core dumped)
    Jiří Němec avatar 27.5.2005 16:12 Jiří Němec | skóre: 22 | blog: BluPix | Horní Smrčné
    Rozbalit Rozbalit vše Re: Praktické využití
    Díky moc. O tom jsem nevěděl, portage to neznalo, musel jsem si z bugzilly stahnout ebuild. Ale funguje to.
    Spock: "Logic, logic, logic. Logic is the beginning of wisdom, not the end.
    27.5.2005 08:25 JM
    Rozbalit Rozbalit vše pouziti
    Ja mam zase skript, ktery projde vsechny filmove soubory v adresari, najde j k nim titulky (a uhodne kodovani).

    No a abych nemusel na kazdy film:) zastavovat amarok, tak ho pauznu skriptem a na konci filmu zase pustim.
    xpj avatar 27.5.2005 09:25 xpj | skóre: 22 | blog: Malé linuxové radosti... a strasti | Řevnice
    Rozbalit Rozbalit vše Re: pouziti
    To zní zajímavě - nemůžeš ho, prosím, poskytnout? :-)
    27.5.2005 10:34 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Děkuji
    Zrovna včera jsem si říkal, že se tu už dlouho neobjevilo pokračování seriálu o KDE a dneska tu už je! Děkuji hlavně za dcop konqueror* pořád jsem přemýšlel, jak zjistit identifikátor již běžícího okna, ale protože to nebylo moc nutné, tak se mi to nechtělo hledat.
    When your hammer is C++, everything begins to look like a thumb.
    27.5.2005 17:43 Miroslav Suchý
    Rozbalit Rozbalit vše Re: Děkuji
    ad zjistit indentifikator jiz beziciho okna: zrovna jsem to taky potreboval a nasel jsem skvely (cesky) programek wmctrl.
    27.5.2005 17:57 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Děkuji
    Mě sice stačil dcop, ale tohle vypadá univerálněji a dokonce je i v portage! Jak mi dojede kompilace tak ho hned emergnu!
    When your hammer is C++, everything begins to look like a thumb.
    Milhouse avatar 27.5.2005 10:54 Milhouse | skóre: 15 | blog: MilhouseLand
    Rozbalit Rozbalit vše Mousiiiissss
    Teda mozna jsem retardovanej, ale predstava psani prikazu pro spusteni filmu a apod. mi pripada jako zbytecne slozite. V Krusaderu 3x kliknu a jede. :)
    "...naše práce není vidět, ale je důležitá!"
    27.5.2005 11:31 johniez | skóre: 17 | blog: xyz | Praha
    Rozbalit Rozbalit vše Re: Mousiiiissss
    O tom ten clanek myslim nebyl...
    Josef Kufner avatar 27.5.2005 15:56 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Mousiiiissss
    Hm, 3x kliknout mi prijde celkem narocne. Mam scriptik, ktery spusti film z cd vcetne mountnuti, umountnuti, zastaveni a opetovneho spusteni xmms a jeste na konci vysune cd. Takze vsecko mam na jeden uder do klavesnice.
    Hello world ! Segmentation fault (core dumped)
    27.5.2005 12:06 Dračík | Kladno
    Rozbalit Rozbalit vše Diky
    Tyhle clanky o KDE byly fajn, nevedel jsem, co vsechno KDEcko zvladne a poskytly mi inspiraci.

    Diky!
    27.5.2005 14:14 Hynek "rADOn" Fabian
    Rozbalit Rozbalit vše opatrne
    jedno z uzitecnych pouziti dcop je restartovani kickera pokud dojde k nejakym potizim. a opatrne, dcop je vyborna vec ale pokud se ho chystate zkoumat stylem 'neco zavolat a koukat co to udela' doporucuji zalohovat adresar ~/.kde/ sic byste se mohli dockat neprijemneho prekvapeni.
    Ondroid avatar 27.5.2005 15:36 Ondroid | skóre: 32 | blog: Hombre
    Rozbalit Rozbalit vše kommander
    Pokračování seriálu by mohlo býti třeba o Kommanderu. Pomocí něj jsou vytvářet i složité dialogy obsahující většinu běžných KDE widgetů. Vše jde kombinovat s DCOP, Bashem ... Je to založeno na XML. Zkrátka jako webová stránka je popsána pomocí html, tak jde KDE dialog vytvořit pomocí XML. O tom bych si docela rád něco přečet :) Kommander je součástí Quanty jestli se nepletu.
    27.5.2005 16:16 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: kommander
    Jenže aby mohl takovou "aplikaci" někdo používat, musí mít Kommander nainstalovaný také. Ale i tak je to zajímavé. Až na to, že já se práci s Kommanderem nevěnuji, takže by takové pokračování musel napsat někdo jiný - což by samozřejmě nevadilo.
    Ondroid avatar 27.5.2005 20:57 Ondroid | skóre: 32 | blog: Hombre
    Rozbalit Rozbalit vše Re: kommander
    Jasně. Já si s tím teď trochu hrál ale abych o tom psal tak moc do toho zase ještě zatím nevidím ...

    Založit nové vláknoNahoru

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