Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: foruman 27 Května 2015, 14:12:12

Název: firefox flash detekce script
Přispěvatel: foruman 27 Května 2015, 14:12:12
Ahoj,
řeším jistý problém pod derivatem z ubuntu 14.04 (elementary). Mám nainstalovany xscreensaver, ten funguje dobře. Nad ním mám nainstalovaný caffeine poslední verze, ta by sice měla mít indikátor v panelu, aby se dal caffeine ručně zapnout/vypnout - nicméně nejspíše pod wing-panelem nefungují :-( . V každém případě cokoliv co je ve fullscreenu screensaver pozastaví a tak youtube, nebo film není spořičem narušenej. Ovšem pokud se dívám na youtube bez fullscreenu, dojde k jeho aktivaci ...
Napadlo mě to vyřešit skriptem který by detekoval aktivní flash a tudíž by killnul xset a po ukončení opět nahodil.
Napad byl takový ...
Kód: [Vybrat]
#!/bin/bash
# Wrapper around the main body to facilitate being run
# from a startup file like .xinitrc, ~/.config/autostart, ...

while :; do
    if pgrep xscreensaver >/dev/null; then
        METHOD="xscreensaver"
        pkill xscreensaver
    else
        METHOD="xset"
        xset s off
    fi

    # If you want to be really fancy:
    notify-send "Screensaver Dektivován" $"Flash plugin běží"

    while ps ax | grep libflashplayer.so >/dev/null; do
          sleep 1 # Sleep while waiting for Flash to exit
    done

    if [ "$METHOD" = "xscreensaver" ]; then
        xscreensaver &
    else
        xset s 30
    fi

    # If you want to be really fancy:
    notify-send "Screensaver Aktivován" $"Flash plugin neběží"

    sleep 30
done

Bohužel k vykonání skriptu nedojde, aktivní je po startu, ostatní skripty co mám fungují. Používám modifikovanej firefox a ten uzavírá flash do plugincontaineru. Nevím jestli tohle může být onen problém. Ale volá knihovnu, tak by to mělo být skrze  libflashplayer.so v pořádku. Nevím, nechám si poradit od zkušenějších :-)

Díky.
Název: Re:firefox flash detekce script
Přispěvatel: GdH 27 Května 2015, 14:49:43
Kdysi jsem napsal skript pro vytahování flashových videí z cache, kde jsem řešil všechny varianty pluginu pro Firefox (tam je rozdíl 32 a 64 bit), Chrome, Chromium a Operu. Procesy jsem si vylistoval všechny najednou takto:
Kód: [Vybrat]
pgrep -f '([o]perapluginwrapper|[p]lugin-container|[c]hrome.*ppapi|[l]ibflashplayer\.so)'
Název: Re:firefox flash detekce script
Přispěvatel: foruman 29 Května 2015, 09:15:42
Super, díky tomu dostávám PID. Snad to není příliš smělé, dokazal by někdo zakomponovat tenhle dotaz do předchozího kodu ?

- zkoušel jsem dosadit pgrep pro libflash za původní dotaz, bohužel ani tak skript nefunguje

Respektive dochazí neustále k nahazovaní xscreensaveru a shazování. Taky sem koukal do procesu a v případě, že je tab s youtube zavřeny, PID s libflash stale existuje, jeho PID se změní až s dalším videem...

Děkuji.