Portál AbcLinuxu, 10. srpna 2025 18:12


Dotaz: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?

21.11.2006 00:27 neregistrovaný
Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
Přečteno: 100×
Odpovědět | Admin
Zdravim!

Pohraval jsem si s programovanim DPMS s umyslem probudit monitor programove. Tedy jakousi Cckovou obdobu 'xset dpms force on'. Jenze se mi podarilo docilit jen presne toho, co dela ten uvedenej prikaz: Monitor se sice probudi, ale objevi se nevzhledna zasedla X obrazovka s velkym X... :-( Musim stejne zmacknout klavesu nebo hejbnout mysi, abych se dostal do KDEcek. Mate nekdo napady/zkusenosti, jak tam dostat primo KDEcka bez hejbani rukou? :-)

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.11.2006 00:38 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
KDE má systém distribuce zpráv - dcop nebo novější dbus. Mělo by jít vygenerovat zprávu, že se hnulo myší nebo zmáčkla klávesa, přes něj (ale neporadím ti, komu ji poslat - nevím)
Quando omni flunkus moritati
21.11.2006 00:44 neregistrovaný
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
No, ja prave neco podobnyho v DCOP hledal, ale (zatim) nenasel... :-/ Zkousel jsem alespon dalkovym ovladanim zpoustet kaffeine (tot pricina meho snazeni :-) ), ale taky to obraz nevzbudilo...
21.11.2006 00:48 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
Aha. Ještě mě napadlo, jestli ta šedá obrazovka s velkým X náhodou není nějaký screensaver přímo od xserveru - ten dcop nebude umět, ale zato by ho mělo jít vypnout (pokud se obrazovka vypíná, stejně není potřeba)
Quando omni flunkus moritati
21.11.2006 00:54 neregistrovaný
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
No, dival jsem se do procesu, kdyz to tam bylo, ale nic takovyho, co by ukazovalo jinou X aplikaci jsem tam nenasel. Navic nikde nemam nic takovyho povolenyho a xscreensaver nemam ani naemergovanej...
blami avatar 21.11.2006 04:03 blami | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
urcite bych se podival do zdrojovych kodu programu xset zejmena na to co dela kdyz se mu daji parametry dpms force off ;) to by melo zabrat ... co jsem v rychlosti koukal, tohle by mohlo pomoci:
DPMSEnable(dpy);
DPMSForceLevel(dpy, DPMSModeOn);
21.11.2006 11:06 neregistrovaný
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
No jasne, tohle jsem provadel. Monitor mi vzbudi i ten muj' program i xset, ale ani jeden z tech programu mi to nehodi primo do KDEcek... Asi se vazne musi volat nejaka DCOP udalost (po snidani vyzkousim ten napad nize :-) ), nebo nejaka funkce z Xek (kterou ja ovsem netusim, protoze vcera jsem psal s #include Xlib.h poprve... :-) )
21.11.2006 11:40 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
To bude asi tim, ze DPMS a screensaver jsou dve zcela nezavisly veci.

DPMS off a on dela automaticky X server, kdezto spusteni a ukonceni screensaveru je bezna X aplikace, ktera si hlida xeventy a kdyz nejakou dobu nic neprichazi, tak si grabbne vsechny xinput udalosti, vytvori fullscreen on-top okno a neco do nej namaluje. Nakonec podle sveho uvazeni vypne monitor.

Kdyz pak nekdo hne napr. s mysi, tak za prve X server zapne monitor a za druhe screensaver prestane blokovat input udalosti dalsim X klientum a smaze sve okno.

Aby to fungovalo, jak jste chtel vy, musel by X server vyslat pri zmene DPMS rezimu udalost, na kterou by musel reagovat sreensaver.
21.11.2006 12:05 neregistrovaný
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
A ta spravna udalost je: :-)
int XResetScreenSaver ( Display *display );
Konecne me napadly ty spravny slova pro strycka Googla a nasel jsem docela fine tutorial pro praci s Xlib... :-D

Diky za objasneni funkce screensaveru. :-)

21.11.2006 09:03 Luboš Luňák | skóre: 19 | blog: Seli
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
dcop kdesktop KScreensaverIface quit
21.11.2006 11:44 neregistrovaný
Rozbalit Rozbalit vše Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu?
Nezafungovalo. :-( Ani volany samostatne, ani volany po probuzeni monitoru ze standby... Tedy asi zbyva volani nejaky X funkce, co by predala rizeni KDEckum... A ja na ni prijdu! :-D
21.11.2006 12:08 neregistrovaný
Rozbalit Rozbalit vše Uz vim Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu...
Odpovědět | | Sbalit | Link | Blokovat | Admin
Moh' by jste to nekdo za me oznacit za vyreseny, abych moh' zustat neregistrovaný? :-)))
21.11.2006 15:53 neregistrovaný
Rozbalit Rozbalit vše Re: Uz vim Re: Jak v C(++) probudit KDE z DPMS uspornyho rezimu...
Diky neznamemu hrdinovi! :-)

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.