Fórum Ubuntu CZ/SK

Ostatní => Tipy a triky pro Linux => Téma založeno: Jan Nekvasil 07 Ledna 2009, 23:20:21

Název: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: Jan Nekvasil 07 Ledna 2009, 23:20:21
Tento návod je již zastaralý, zbytečně kompikovaný a vyžadující instalaci nadbytečných knihoven (gdiplus.dll) a balíků (xautolock). Nový, notně zjednodušený návod naleznete ZDE (http://forum.ubuntu.cz/index.php/topic,47542.0.html).


Tento návod krok za krokem ukazuje jak nainstalovat a zprovoznit Dream Aquarium (http://dreamaquarium.com/), šetřič obrazovky pro Windows, jako zcela plnohodnotný šetřič v Linuxu. Dá se však obecně použít i pro libovolný jiný šetřič či aplikaci automaticky spouštěnou při nečinnosti počítače.

Předpokládá se pouze základní znalost práce v terminálu a grafická karta zvládající 3D. Zkoušená Nvidia GeForce 7300 GT na mém desktopu vykresluje zcela plynule, integrovaná Intel 945GM v notebooku už mnohem hůře, navíc s ní DA občas nenaběhne a vytíží CPU na 100%. Výsledky se tedy mohou lišit.

Návod je míněn i pro úplné začátečníky, snaží se vysvětlit nejen co se odehrává, ale i jak a proč. Prosím proto ostřílené harcovníky o shovívavost k někdy až příliš polopatickým komentářům.



Nejdříve je třeba si nainstalovat balíčky wine (podpora běhu aplikací pro Windows v UNIXu) a xautolock (spouštění libovolné aplikace po určité době nečinnosti):

Kód: [Vybrat]
sudo apt-get install wine xautolock
Dále si připravíme novou „vinnou láhev“, tj. běhové prostředí wine rezervované čistě pro Dream Aquarium. Má to tu výhodu, že se nám DA nebude plést dohromady s ostatními aplikacemi a půjde snadno zazálohovat i obnovit. V okně „Konfigurace Wine“ nic neměňte, pouze potvrďte výchozí nastavení.

Kód: [Vybrat]
export WINEPREFIX=$HOME/.wine-DreamAquarium
mkdir $WINEPREFIX
winecfg

Důležité upozornění: Pokud si v průběhu instalace nebo experimentování omylem zavřete okno terminálu, nezapomeňte opět nastavit proměnnou WINEPREFIX příkazem export WINEPREFIX=$HOME/.wine-DreamAquarium. Pokud vám začne zlobit samotné wine, zkuste příkaz wineboot, simulující restart Windows. Při případném vytížení procesoru na 100% a mohutném rozhučení se ventilátorů ukončete co nejdříve proces, který toto způsobil.

Nyní si stáhneme podpůrnou knihovnu, nezbytnou pro běh DA ve wine, poté samotné DA a hned jej i nainstalujeme. Instalátor nabízí možnost DA rovnou vyzkoušet – určitě ji využijte.

Kód: [Vybrat]
wget -O $WINEPREFIX/drive_c/windows/system32/gdiplus.dll http://dreamaquarium.com/gdiplus.dll
wget http://dreamaquarium.com/DreamAquariumXP.exe
wine DreamAquariumXP.exe

Teď k samotnému zprovoznění DA coby šetřiče obrazovky. V oblíbeném textovém editoru (zde gedit) vytvořte soubor ~/.wine-DreamAquarium/start.sh:

Kód: [Vybrat]
gedit $WINEPREFIX/start.sh
Zkopírujte do něj následující kód a uložte. Do proměnné processblock si můžete přidat další aplikace, při jejichž běhu nebude šetřič spouštěn (většinou přehrávače multimédií). Proměnná titleblock pak obsahuje řetězce, při jejichž výskytu v titulku aktivního okna šetřič rovněž nenaběhne (hodí se zejména pro videa ve flashi na Youtube). Jednotlivé výrazy je třeba oddělit znakem roury (pipe),  „|“.

Kód: [Vybrat]
#!/bin/sh

processblock="totem|totem-gstreamer|totem-xine|mplayer|vlc"
titleblock="YouTube - |Vimeo, | on Vimeo"

[ "$(pgrep -u $USER "(DreamAquarium.scr|$processblock)$")" ] && exit
[ "$(xwininfo -id $(xprop -root | sed -n "/_NET_ACTIVE_WINDOW(WINDOW)/s/.* //p") | egrep "\".*($titleblock).*\"")" ] && exit

sudo -u $USER WINEPREFIX=$HOME/.wine-DreamAquarium wine 'C:\windows\DreamAquarium.scr' -S

Povšimněte si prosím příkazu sudo -u $USER v posledním řádku. Říká, že wine má být spuštěno explicitně pod vaším uživatelským účtem. Jde o důležitou obezličku, bez níž by automatické spouštění pomocí xautolock u aplikací pro Windows nefungovalo. Proč tomu tak je, nevím (přišel jsem na to metodou pokus-omyl-intuice), třeba to objasní někdo zkušenější dole v diskuzi.

Ješte povolte spouštění tohoto souboru nastavením spustitelného příznaku a rovnou vyzkoušejte:

Kód: [Vybrat]
chmod +x $WINEPREFIX/start.sh
$WINEPREFIX/start.sh

Pokud neběží některý proces ze seznamu blockers, DA by se mělo nyní spustit.

V dalším kroku už vyzkoušíme DA přímo jako šetřič:

Kód: [Vybrat]
xautolock -time 1 -resetsaver -locker $WINEPREFIX/start.sh
Parametr -time udává, po kolika minutách se má šetřič spustit, -resetsaver zabraňuje ve spuštění standardně používanému šetřiči, a konečně -locker udává, co se má spustit místo něj. Nyní buďto můžete minutu počkat, nebo v dalším okně terminálu spustit:

Kód: [Vybrat]
xautolock -locknow
čímž se spořič spustí okamžitě.

Zbývá jen nastavit automatické spouštění xautolocku po přihlášení. V GNOME můžete přidat  v Systém —> Volby —> Sezení příkaz:

   xautolock -time minuty -resetsaver -locker .wine-DreamAquarium/start.sh

Hodnotu minuty nahraďte údajem, po kolika minutách nečinnosti se má šetřič spouštět. Po znovunalogování už by mělo vše fungovat, jak má.


A hlavně: Nezapomínejte občas nakrmit své rybičky! (klávesou F)  :)


Změny a opravy:
Název: Drobné vylepšení: blokování spuštění šetřiče podle titulku aktivního okna
Přispěvatel: Jan Nekvasil 09 Ledna 2009, 23:41:57
Přidal jsem oproti prvotní verzi velmi zajímavou „fíčurku“, kterou běžné šetřiče nemívají: blokování spuštění šetřiče v závislosti na titulku aktivního okna. Výborně se to hodí pro flashová videa na Youtube, Vimeo atd., která běží zapouzdřena v prohlížeči a nejsou sama o sobě schopna se se šetřičem nijak rozumně domluvit.

Změna je v obsahu souboru ~/.wine-DreamAquarium/start.sh, jednoduše nahraďte ten stávající výše uvedeným v návodu.
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: Fsdrak 16 Ledna 2009, 01:06:23
Toto je rpostě vynikající, jsem začátečník, a od samého začátku co dělám s ubuntu, jsem nečetl lepší návod než je tento!.Vynikající!Dream aquarium je super, jediná vada na kráse je ze to je pouze deamo verze..myslíte ze by to šlo nějak zlomit i pod Linuxem?Vím windows to není, ale kdo ví, brácha to má na Vistě a je na to crack, proto se ptám.Jinak tleskám za skvělý návod!!!!!Vřele doporučuji všem!
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: ubuntuman 16 Ledna 2009, 09:38:26
Mno to je parádní, že jste tady všichni tak inteligentní :D já jen potvrzuju pravidlo ;) nějaká rada?

Kód: [Vybrat]
johny@johny:~$ xautolock -locknow
No process with PID 18710, or the process is owned by another user.
johny@johny:~$
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: Jan Nekvasil 16 Ledna 2009, 23:58:27
Toto je rpostě vynikající, jsem začátečník, a od samého začátku co dělám s ubuntu, jsem nečetl lepší návod než je tento!.Vynikající!Dream aquarium je super, jediná vada na kráse je ze to je pouze deamo verze..myslíte ze by to šlo nějak zlomit i pod Linuxem?Vím windows to není, ale kdo ví, brácha to má na Vistě a je na to crack, proto se ptám.Jinak tleskám za skvělý návod!!!!!Vřele doporučuji všem!

Opravdu moc by mne mrzelo, kdyby můj návod posloužil k tomu, aby někdo provozoval cracklou verzi Dream Aquarium v Linuxu. Alan Kapler, vývojář DA, do něj investoval spoustu svého času, úsilí a umu, navíc jej nadále neustále vylepšuje. Těch 20$, které žádá za plnou verzi, mi i přes klesající kurz koruny přijde jako rozumná a odpovídající částka. 20% ze zisku navíc jde na enviromentální charitu, tj. záchranu životního prostředí. S plnou verzí také dostáváte updaty obsahující nové rybky a jiná vylepšení, což dle popisu cracku, o kterém je zde zřejmě řeč, není možné, protože vyžaduje (ve Windows) zablokování přístupu DA k Internetu.

Svět Linuxu není světem warezu.

Zkuste se nad tím zamyslet.
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: Jan Nekvasil 17 Ledna 2009, 00:17:50
Mno to je parádní, že jste tady všichni tak inteligentní :D já jen potvrzuju pravidlo ;) nějaká rada?

Kód: [Vybrat]
johny@johny:~$ xautolock -locknow
No process with PID 18710, or the process is owned by another user.
johny@johny:~$

Zkuste poté, co vám to vypíše zmíněnou chybovou hlášku, zadat:

  ps -F p cisloprocesu

přičemž cisloprocesu bude to číslo za PID.

Pokud to nevypíše nic, xautolock zřejmě neběží – zkontrolujte terminál, ze kterého byl spuštěn. Pokud jako vlastník procesu bude uveden jiný uživatel než vy (johny),  napište sem kdo to je a my už si jej podáme. ;)
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: ABCD 29 Ledna 2009, 21:01:45
Naprosto souhlasím s tím co řekl Jan Nekvasil ohledně použití cracku pro tento prográmek.
To věci nikterak nepřispěje, spíše naopak.
Sám uvažuji o zakoupení plné verze a teď, když se mi podařilo díky skvělému návodu rozjet DA i na mém
PC s UBUNTU tak moje úvahy sílí.

Protože jsem ale linuxová lama, která se ráda vrtá ve věcech kterým moc nerozumí,
tak jsem si ze cvičných důvodů DA na ubuntu cracknul. :(

Stydím se za to. ;)
A slibuji, že jakmile si plnou verzi zakoupím, všechny své cracklé verze tohoto programu smažu!!! :D :D
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: kafooo 02 Února 2009, 21:12:55
Vypadá to moc pěkně, jen mám menší problém,
při tomto kroku :

xautolock -time 1 -resetsaver -locker $WINEPREFIX/start.sh

po napsani do terminalu se hodi kurzor o radek niz, blika a to je vse.
Pri napsani prikazu xautolock -locknow to vypise :
No process with PID 10589, or the process is owned by another user

pri prikazu kafooo@laptop:~$ ps -F p 10589   to vypise :
UID        PID  PPID  C    SZ   RSS PSR STIME TTY      STAT   TIME CMD
root     10589     1  0   742  1080   0 20:58 ?        S      0:00 xautolock -ti

Co s tim???
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: Jan Nekvasil 03 Února 2009, 01:50:55
Problém bude zřejmě v tom sudo -u $USER v souboru start.sh. Nespouštěl jste jej náhodou z rootovského terminálu? Podle vašeho výpisu vidím, že je ten proces vlastněn uživatelem root, měl by to být kafooo. Zkuste dát v terminálu sudo -u $USER nautilus (na spouštění grafických aplikací by se sice mělo používat gksudo, ale projednou se svět nezboří). Měla by se vám otevřít vaše domovská složka, ne rootovská, jinak je něco špatně.

Pak mne ještě tak napadá, že by to mohlo být prvním řádkem v start.sh, který říká, že skript bude spuštěn ve výchozím shellu. Zkuste jej změnit z toho #!/bin/sh na #!/bin/bash, ať se to spouští explicitně v bashi. Mám takové podezření, že to bude právě tím.

Dejte vědět, jestli to zabralo, upravil bych pak podle toho návod.
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: kafooo 03 Února 2009, 14:36:20
Dnes po spusteni pc a minute necinnosti sporic nabehl, presto jsem vyzkousel rady...

sudo -u $USER nautilus otevre domovskou slozku, ne rootovskou

Vyzkousel jsem zmenu prvniho radku ve start.sh a v terminale to dela uplne to stejne, jen po vypnuti a naslednem zapnuti pc uz sporic nejede...

Vyzkousim to komplet smazat a nainstalovat znova
Edit
Tak jsem to komplet premazal, pri napsani xautolock -time 1 -resetsaver -locker $WINEPREFIX/start.sh mi to vypsalo hlasku, ze xautolock is already running (mozna proto, ze ho mam v sezeni, aby se spoustel po startu pc)
Kazdopadne to vypada, ze to funguje, kdyby se vyskytl problem, dam vedet
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: play3man 28 Ledna 2010, 20:17:14
wine DreamAquariumXP.exe
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  19 (X_DeleteProperty)
  Resource id in failed request:  0x6e00005
  Serial number of failed request:  1064
  Current serial number in output stream:  1072

nejaká pomoc???
Název: Re: Krok za krokem: Dream Aquarium jako funkční šetřič obrazovky
Přispěvatel: radin 22 Února 2010, 21:12:36
Hm..., dopadl jsem v podstatě stejně:
Kód: [Vybrat]
~$ wine DreamAquariumXP.exe
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  18 (X_ChangeProperty)
  Resource id in failed request:  0x6200005
  Serial number of failed request:  979
  Current serial number in output stream:  1003
/code]