Belépés
Tamagochi script - időzítés és notify-send kérdések
Szeretnék csinálni egy "tamagochi"-féle programot Ubuntura, ugyanis a mostani felhozatal erősen hiányos (már ha létezik) - ennek érdekében belenéztem az AMOR forráskódjába, de a C++ tudásom ehhez még bőven kevés...
Helyette elkezdtem egy egyszerű BASh scriptet csinálni, ami a "háziállat" különböző értékeit másodpercenként egy egységnyivel csökkenti, majd ha kritikus érték alá ér, akkor először a notify-send segítségével értesít, hogy egy szükséglet vészhelyzetben van, majd ha nullára csökken, akkor kiírja, hogy a lény elpusztult.
A gondom az lenne, hogy mindez működik, azonban ha ennél még többet akarok a scriptbe gyűjteni, akkor az bizony terhelni fogja a gépet rendesen...
Hogy ezt elkerüljem, szeretném az üzeneteket időzíteni: pl. ha az evés 140 időegység múlva kell, hogy bekövetkezzen, akkor a rendszeridőtől számított 140 időegységnyire tesz egy bejegyzést, hogy "notify-send -t 200 "PET" 'Éhes vagyok!'".
Erre szeretném megkérdezni a fórumozókat, hogy milyen programot tudnak ajánlani: a lényeg az lenne, hogy az egyes bejegyzéseket frissíteni (esetleg törölni / felülírni) lehessen, hogy az "etetés", "itatás" stb. megoldható legyen egyetlen paranccsal is.
Két másik, annyira nem fontos kérdés a libnotify-hoz (pontosabban a notify-send-hez) tartozik:
1.) Másnak sem megy az ikon elhelyezése az értesítőn a -i kapcsolóval?
2.) Lehet valahogy gombokat, és hozzá parancsokat elhelyezni az értesítésen?
A válaszokat előre is köszönöm, és ha valakinek kell a pillanatnyi script, bemásolhatom ide is vagy elküldhetem e-mailben, esetleg feltehetem a honlapomra.
- A hozzászóláshoz regisztráció és belépés szükséges
Másodpercenként iterálni bashben valóban bátor gondolat, bár nem feltétlenül lehetetlen (ellenben nem javasolnám).
Esetleg az at-et nézd meg, vagy háttérbe nyomott subshellben sleep. (Például
...; ( sleep 140; csinal_valamit; ) &; ...)Az új buborékok nem kattinthatóak, ez volt az egyik pontja a koncepciónak.
$ notify-send -i /usr/share/pixmaps/apple-red.png adsnekem mutat piros almát.Hmm, igen, így már érthető - abszolút útvonal kell neki... Mivel azonban az ikonok a könyvtárdzsungel mélyében vannak, szerintem változóba mentem a "telepítési könyvtárat", pontosabban az is elég, ha $0-ként hivatkozok rá. Úgy emlékszem legalábbis :)
Működik az relatívval is. Legfeljebb egy ./ kell az elejére, ha az aktuális munkakönyvtárból szeretnéd a fájlt.
továbbá a notify-send alkalmazása:
notify-send "this is a test" "hello world" -i /usr/share/icons/application-default-icon.png
Sevoir visszatért, tapsvihar.
crontab -e
Használj teljes útvonalakat.
A Crontabról: http://linuxegyszeruen.homelinux.org/e107_plugins/content/content.php?co...
http://www.google.hu/search?hl=hu&q=Crontab+howto&btnG=Google+keres%C3%A...
Ja és ez percenként lehet minimálisan.
-----------------------------------
Amúgy lol :D tetszik a dolog.
Ha komolyabbra akarod majd fejleszteni egy SQLite-t alápakolni, meg valamilyen Frontendet.
-----------------------------------
Heh, találtam ilyet:
http://manpages.ubuntu.com/manpages/dapper/man6/tamad.6.html ( Magyar készítő? )
http://www.happypenguin.org/show?KTamaga
http://www.happypenguin.org/show?Xtamago
http://dynpet.sourceforge.net/
||"Ha előre tudtad volna, hogy a gyertya lángja tűz, akkor már régen kész lenne az étel..." || My Homepage = Hasznos tippek & Trükkök
Ha van kész jópofa tamagochi akkor nekem kellene:)
Amint kész a parancssoros verzió, jön a frontend, feltehetően egy Apache szerveren hallgatózó PHP-s alkalmazás képében, ha a PHP-ban lehet exec-elni.
Egébként a program pillanatnyilag PET, azaz Personal Ectoplasmic Tamagochi kónéven készül: szellemeket kell majd benne nevelni (AMOR-ban a szellem volt a kedvence :P). Képeket már szedtem le hozzá, és a notify-os problémák után most ezeket fogom belehegeszteni, hogy az OSD-n az általad választott figura képe jelenjen meg.
Egyéként úgy néz ki, hogy az "at" lesz az a program, ami az event-kezelést fogja végezni, bár a crontab-nak is még utána fogok olvasni :D
Ahhoz képest, hogy ma kezdtem el a projektet, elég jól haladok :D
szerk.: Na jó, az at-et kipróbáltam, és hááát... vagy én vagyok a hülye, vagy nehéz kiigazodni a manpage-en... Pegig még színezve is van nekem. Marad a crontab egyelőre.
Nem olyan bonyolult az.
maat@zotmund:~$ at 10:05warning: commands will be executed using /bin/sh
at> echo szia > /tmp/szia
at> <EOT>
job 17 at Fri Jul 24 10:05:00 2009
maat@zotmund:~$ cat /tmp/szia
cat: /tmp/szia: Nincs ilyen fájl vagy könyvtár
maat@zotmund:~$ date
2009. júl. 24., péntek, 10.07.22 CEST
maat@zotmund:~$ cat /tmp/szia
szia
maat@zotmund:~$
Igen, utána átnéztem, és mind a cronjob, mind az at használhatónbak tűnik.
Az at hátránya azonban, hogy ha egy job-ot akarok törölni, akkor kell a száma. Ezt mondjuk egy cut megoldja, de ha sokáig fut a script, akkor a szám elég nagy lesz... Nem túl elegáns, így marad a cron.
Üdv Uraim!
Notify-send kérdésem lenne (Ubuntu 9.10) :
Ha Gnome alatt nyitok terminált, akkor gond nélkül működik.
A gond akkor van, ha ssh-n keresztül mászok fel a gépre távolról és onnan szeretnék az elért gép monitora előtt ülő (szintén 9.10-et használó) user számára küldeni egy notificationt.
Olyankor ezt kapom:
Unable to get session bus: dbus launch failed to autolaunch D-Bus session: Autolaunch error: X11 initialization failed
Mi erre a gyógyszer?
Alapvetően nem erre való a notify-send(1), hanem a programot futtató felhasználónak való üzenésre.
Gyors megoldásként én elindítanék egy szkriptet a grafikusan bejelentkezett munkamenetből, ami egy fájlból/fifoból folyamatosan olvassa a kiírandó üzeneteket, és ebbe írnék (
echo üzenet > ~/.mymsgs).#!/bin/bash rm -f ~/.mymsgs mkfifo ~/.mymsgs while true do notify-send "`cat ~/.mymsgs`" doneHogy lehet ezt a notify-send izét kikapcsolni?
Számomra nagyon idegesítő, de főleg haszontalan.
Kösz!
Mármint hol idegesít?
Azzal, hogy időnként váratlanul megjelenik és a megjelenő infókra semmi szükségem.
Pl: elmegy a net (digi valamiért bontja), na ezt abból is észrevenni, hogy megváltozik a hálózat ikon.. az nekem épp elég.
Szóval van megoldás?
Itt a megoldás a problémádra.
Köszönöm!!
Szerk: működik is.