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 20:00 | Komunita

    V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.

    Ladislav Hagara | Komentářů: 0
    dnes 19:22 | IT novinky

    Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).

    Ladislav Hagara | Komentářů: 0
    včera 22:33 | Nová verze

    Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.

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

    Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.

    karkar | Komentářů: 0
    včera 12:11 | Humor

    Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).

    Ladislav Hagara | Komentářů: 7
    včera 10:44 | IT novinky

    Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.

    Ladislav Hagara | Komentářů: 28
    včera 09:55 | IT novinky

    Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.

    Ladislav Hagara | Komentářů: 6
    včera 09:33 | IT novinky

    Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.

    Ladislav Hagara | Komentářů: 0
    včera 08:11 | Nová verze

    Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    29.4. 20:55 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 497 hlasů
     Komentářů: 19, poslední včera 11:32
    Rozcestník

    Totem player a automatické vypnutí počítače

    16.5.2013 10:29 | Přečteno: 1195× | Linux | Výběrový blog

    Kdysi před rokem jsem tu zveřejnil první verzi pluginu do Totemu pro vypínání počítače na konci přehrávání. Bohužel zrovna v době jeho vzniku se začalo přecházet pomalu na Gnome Shell a GTK3 a také Totem s verzí 3 poměrně dost změnil API. Situace se zastaráváním mého Ubuntu 10.04 se stala neúnosná a tak jsem musel provést update i já a to s sebou přineslo nutnost přepsat také tento plugin, protože si na něj zvykla celá rodina a ani mě se nechtělo hledat náhradu, protože pravděpodobně ani neexistuje. Po deštivém víkendu stráveném nad jazykem Python a dokumentací je to tu.

    Poweroff plugin 2

    Co to je?

    Nová verze poskytuje stejné možnosti a rozhraní jako předchozí. Uživatel má na výběr ze tří akcí, které se automaticky vyvolají po skončení přehrávání.
    1. Uspat počítač
    2. Vypnout počítač
    3. Nedělat nic
    Nejedná se o žádnou minutku, plugin skutečně reaguje na událost konce datového proudu poslední položky v playlistu. Po detekci této události se zobrazí dialogové okno, které čeká 30 sekund na zrušení akce a v případě jejího potvrzení nebo vypršení časového limitu se provede.

    Instalace

    Plugin je ke stažení na domovské stránce projektu na sourceforge.org. Na stejném místě se také nachází wiki projektu s návodem k instalaci. Nejjednodušší cesta je použít instalační skript, který by určitě měl fungovat na debian-like systémech. Jak jsou na tom s adresářovou strukturou ostatní distribuce netuším, ale předpokládám, že se neliší. Pokud by ale z nějakého důvodu nefungoval, je tam i návod na ruční instalaci.

    Po instalaci se plugin aktivuje v české lokalizaci volbou menu Upravit->Zásuvné moduly->Vypínací plugin.

    Boční panel s nabídkou akcí se aktivuje volbou Zobrazit->Po skončení přehrávání

    Implementace

    Plugin je psaný v jazyce Python, využívá pro uživatelské rozhraní knihovnu pyGtk, pro paralelní běh časovače vedle potvrzovacího dialogu knihovnu Threading, pro spuštění procesu s akcí je využívána knihovna subprocess a podporu pro jazykovou lokalizaci přináší knihovna gettext.

    Kód pluginu se skládá celkem ze tří tříd.
    1. SidePanel pro vytvoření a správu postranního panelu s tlačítky
    2. TimeDialog pro zobrazení dialogového okna pro potvrzení nebo zrušení akce a pro odpočítávání 30 sekund
    3. StarterPlugin pro vlastní logiku a napojení na Totem

    StarterPlugin

    Každý plugin pro Totem musí obsahovat jednu hlavní třídu, která implementuje rozhraní Peas.Activatable a je potomkem GObject. Peas.Activatable definuje dvě funkce, pomocí kterých je možné plugin spustit v Totemu. První do_activate se volá při aktivaci pluginu a druhá do_deactivate vždy při deaktivaci.

    V do_activate se přiřadí handler k události end of stream a přidá se boční panel do přehrávače.

    Při deaktivaci v do_deactivate se boční panel odebere.

    Funkce eosHandler slouží jako obsluha události end of stream. Kontroluje, zde byl dosažen konec proudu v posledním souboru ve frontě, vyčte zvolenou akci z formuláře v bočním panelu, zobrazí dialog s odpočítáváním času a nakonec spustí nový proces, ve kterém se odešle příkaz pro d-bus s příslušnou akcí.

    TimeDialog

    V konstruktoru se nejprve vytvoří nový objekt pro GTK dialog, poté se zaregistruje nové vlákno pro běh časového odpočtu a nakonec se založí jeden zámek pro zabránění aktivního čekání.

    Funkce run slouží k aktivaci vlákna pro odpočet času a zobrazení dialogu. Potom čeká na jeho skončení buď tím, že uživatel klikne na nějaké tlačítko, čímž dialog zavře a vrátí se hodnota accept nebo reject, nebo vyprší čas - dialog je násilně ukončen a vrací hodnotu none. Návratová hodnota funkce je uživatelova reakce na dialogové okno (reject, accept, none).

    Funkce timer se spouští v novém vlákně a odpočítává čas. Vlákno se zablokuje na zámku na zadaný čas a po jeho uplynutí a nebo uvolnění zámku, což značí, že uživatel ukončil dialogové okno kliknutím na reject nebo accept, zabije dialog a skončí.

    SidePanel

    V konstruktoru je vytvořen jednoduchý GTK formulář s jedním nadpisem a třemi tlačítky pro boční panel.

    Funkce getSelectedAction slouží pro zjištění čísla aktuálně vybrané akce.

    Jazyková lokalizace

    Oproti minulé verzi, která byla jen v anglickém jazyce, umí tato verze zobrazovat texty v jazyce podle uživatelova místního nastavení. Python má pro tyto účely implementovanou knihovnu gettext, která je podobná GNU gettext API.

    Všechny texty určené k lokalizaci jsou v programu označené podržítkem, např. _('Hello'). Zdrojový kód se potom projede programem pygettext, jehož výstupem je katalog textů k překladu do jednoho jazyka s koncovkou pot. Zde překladatel vyplní přeložené fráze a výsledný soubor se převede programem msgfmt do binární podoby s koncovkou mo, která se už může nahrát do složky s jazykovými soubory ostatních programů (/usr/share/locale) a plugin si jí odtud načte.

    Další záležitostí je doplnění překladů do souboru .plugin, které se musí provést nezávisle na lokalizaci samotného pluginu.

    Pokračování projektu

    No je to spíš takový miniprojektík, ale bylo by fajn sehnat nějaké dobrovolníky na překlad do různých jazyků. Těch textů je fakt málo, ale nevím, jestli by si s tím poradil třeba google translator.

    Potom bych chtěl ten plugin nějak zviditelnit, protože vím, že byla tahle funkce na některých fórech celkem žádaná. Jenže na internetu je už tolik bordelu, že se těžko hledá.        

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    Ruža Becelin avatar 16.5.2013 12:26 Ruža Becelin | skóre: 40 | blog: RuzaBecelinBlog
    Rozbalit Rozbalit vše Re: Totem player a automatické vypnutí počítače

    Dobra prace.:-)

     

    Par napadu:

    - misto "Power off" bych dal Shutdown, je to ustalena konvence

    - misto "Do nothing" by nebyl spatny checkbox, ktery bych zapnul/vypnul zbyvajici volby

    20.5.2013 10:59 HUFU | skóre: 2 | blog: Ripping_yarns
    Rozbalit Rozbalit vše Re: Totem player a automatické vypnutí počítače
    Díky za podnět, jakmile bude chuť, něco s tím udělám.
    vencour avatar 16.5.2013 14:36 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
    Rozbalit Rozbalit vše Re: Totem player a automatické vypnutí počítače
    Přidal jsem do výběru.
    Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
    18.5.2013 08:53 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Totem player a automatické vypnutí počítače
    mplayer * && sleep 30 && sudo poweroff
    If you hold a Unix shell up to your ear, you can you hear the C.
    21.5.2013 20:59 HUFU | skóre: 2 | blog: Ripping_yarns
    Rozbalit Rozbalit vše Re: Totem player a automatické vypnutí počítače
    No jo, ale mplayer není totem a spouštění videa z příkazové řádky je sice jednoduché, ale BFU to děsí. Navíc vyvolat příkazem uspání počítače není tak triviální jako vypnutí.

    Založit nové vláknoNahoru

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