Beküldte 444tibi -
Fórum:
Mi tortenik akkor a rendszeren belul amikor a monitor visszater alvasbol? Lehet ezt detektalni, ha igen akkor hogyan?
Tehat nem piszkalom az egeret, se a billt, magara hagyom a gepet, a monitor a beallitott pl. 15 perc utan elmegy sleepbe, azaz bekövetkezik a "Kijelző kikapcsolása".
Megmozditom az egeret, a monitor visszakapcsol, ébred, es EZT a muveletet hogyan lehetne elcsipni es ezutan az alabbi parancsot lefuttatni? Vagyis akarhanyszor ha visszakapcsol a monitor, fusson le ez:
pactl set-card-profile 0 output:hdmi-stereo
elvileg próba csersznye...
Beküldte T.István -
Értékelés:
Elvileg KDE alatt a valahol nem tudom hol, de angolul Personalization>Notifications>Notifications>Screensaver
alatt lehet pl. üzeneteket megjeleníteni, vagy parancsokat megadni, de pontosan nem tudom, mert nem használok KDE-t. Illetve lehet egy ilyesmi szkripptel próbálkozni:
egyes rendszereken a monitor vezérlő parancsok többször is lefutnek egymás után, ez 5 másodperces intervallumokban csak 1x működik:
elvileg próba csersznye...
Beküldte 444tibi -
Értékelés:
https://mega.nz/file/xph10QKI#85RNxyg163u7T_1mnYx6z8stXqAATFohxmVguGnyhvw
Itt valóban van egy lehetőség, hogy bizonyos eseménynél egy kiválasztott parancs lefusson, ezt egy másik lapon lehet beállítani de akkor fut le ha KIkapcsol a monitor. Én meg azt a valamit keresném amikor a rendszer BEkapcsolja.
Az a baj hogy egyáltalán gőzöm sincs, angolul hogyan is keressek erre, nem hnném hogy olyan gyakori kérdés ez hogy találatok ezreit hozná a kereső.
Xubuntu
Beküldte atime -
Értékelés:
Ha a nálad lévő rendszer egy Xubuntura telepitett Plasma, akkor elvileg ott az energiagazdálkodást az xfce4-power-manager végzi. Meg kellene nézni, hogy tényleg ő vagy esetleg valami más.
elvileg próba csersznye...
Beküldte T.István -
Értékelés:
van /usr/lib/systemd/ mappa? ez alatt létre kell hozni egy system-sleep nevű mappát.
ebbe beletenni egy skriptet, ami belül vahogy így néz ki:
vagy...
Beküldte T.István -
Értékelés:
ebben a mappában van egy csomó elő gyártott skript, pl. van a 95led, aminek a feladata villogtatni a monitor led-jét, amikor alszik. Ezt mintának veheted, új szkriptet kell írni ebből kiindulva, ami kb. így néz ki:
ezt el kell menteni, úgy, hogy szám (96-99) legyen a fájlnév eleje, itt a szám azt jelenti, hogy hányadikként lesz lefuttatva, próba, cseresznye...
Xubuntu
Beküldte 444tibi -
Értékelés:
Valamelyik logfájlba nem mentődik, mi történik akkor amikor visszakapcsolja a monitort?
Ez nem lehetne esetleg kiindulásnak jó valamire?
vagy...
Beküldte 444tibi -
Értékelés:
Az hogyan történik amikor alvóba küldi a monitort?
Elveszi a háttérvilágítást, nullára, vagy a videokártyával csinál valamit, ez is igen érdekes téma. Legalábbis nekem.
Xubuntu
Beküldte atime -
Értékelés:
Xubuntu
Beküldte 444tibi -
Értékelés:
Az xfxe power manager nem fut. Elindítja most?
Én a Nem-re nyomtam.
Akkor a KDE manager fut gondolom..?
Mégegy. Van egy parancsikonom ami a
#!/bin/bash
sleep 2 && xset dpms force off
szkriptre mutat, erre kapcsolva kikapcsol a monitor. Sokszor használom, ha tudom hogy hoszabb időre magára hagyom a gépet.
Utána néztem ennek a DPMS-nek de nem lettem okosabb sajnos.
Ezt nem lehet figyelni, mit csinál ez?
Monitor bekapcsolása eseménynél mi történik pontosan?
Beküldte lala -
Értékelés:
Csak feltételezem hogy minderre azért lenne szükséged, mert alvásból visszatérés után
nincs hang - és ezzel a paranccsal hoznád vissza.
Ismered a megfelelő parancsot - nem lenne megoldás az ha csinálnál vele és egy a net.-ről
letöltött HDMI ikonnal egy indítót ? Ez ugyan nem hozná vissza automatikusan a hangot,
de egy kattintás elég lenne hozzá.
vagy...
Beküldte T.István -
Értékelés:
Elveszi a háttérvilágítást, nullára, vagy a videokártyával csinál valamit, ez is igen érdekes téma. Legalábbis nekem.
A lényeg, hogy vannak API-k. (Application Program Interface). Ezek rendszerenként eltérőek lehetnek, de van lehetőség lekérdezni, hogy mik állnak rendelkezésre. Az API-kat használva lehet lekérdezni, vezérelni. Ezt az oprendszer, driverek, programok végzik. A fent említett szkriptet meghívja a pm-utils, az lekérdezi a paraméterben átadott API állapotát, ha abban szerepel a "Hibernate" vagy "Suspend", akkor küld egy jelzést az ACPI processnek (annak az API-jára), hogy villogtassa a LED-et.
Monitor bekapcsolása eseménynél mi történik pontosan?
Beküldte 444tibi -
Értékelés:
Csak, hogyismondjam, a szórakozós munkahelyi gépre sikerült egy Kubuntut feltennem, és eddig még nem söpört el a népharag, több évtizedes Wines múlttal rendelkező kollégáim egészen pozitív visszajelzésekett adtak és használják.
És van akinek ezt az egy kattintást is nehéz megmagyarázni.
Érdekes hogy ez egy teljesen más pc mint az enyém, mégis 10-ből 1x jelentkezik ugyanaz a hiba mint az enyémen.
Monitor visszajövet nem áll vissza hdmi-re a hang. Ezért keresgélek ezen a vonalon.
Nem nagy dolog de ugye a kihívás..
Amúgy láthatjátok hogy jó ideje semmi komoly nyavajgásom nincs pedig már 3 pc-n fut közvetlen közelembe az Ubi.
Ez a poszt is inkább unaloműzésből és némi agytréning miatt született.
Monitor bekapcsolása eseménynél mi történik pontosan?
Beküldte atime -
Értékelés:
Monitor bekapcsolása eseménynél mi történik pontosan?
Beküldte 444tibi -
Értékelés:
másik gép és Kubuntu, KDE felülettel telepítve.
Az én gépem meg először Xubuntu volt, és arra tettem a komplett KDE Plasmát.
Vagyis akkor ez KXubuntu mert tudok választani hogy XFCE vagy KDE felülettel induljon.
Monitor bekapcsolása eseménynél mi történik pontosan?
Beküldte 444tibi -
Értékelés:
addig eljutottam hogy a képernyő (monitor) állapotát így le lehet kérdezni:
tibi@TibiXubuntu:~$ xset -q |grep Monitor
Monitor is On
tibi@TibiXubuntu:~$ sleep 10 ; xset -q |grep Monitor
Monitor is Off
tibi@TibiXubuntu:~$
A sleep 10 azért hogy az enter lenyomása után el tudjam küldeni a monitort alvóba az xset dpms force off paranccsal.
És jól működik mert a sleep utáni grep kimenetbe ott a Monitor is Off.
Ezt lefuttatgatva mondjuk 10 másodpercenként, ha a kimenet Off akkor értelemszerűen semmit nem kell csinálni, de ha átvált ON-ba, akkor egyszer le kéne futni a pactl set-card-profile 0 output:hdmi-stereo parancsnak.
De csak 1x, és utána nyugalom, a következő Off-On váltásig.
Egyáltalán jó az elképzelésem, ha igen akkor viszont ennek a kivitelezése meghaladja a képességeimet.
Szerintem T.István is valami ilyesmi szkriptet csinált nekem csak az meg méginkább kínaiul van számomra.
Megoldva
Beküldte 444tibi -
Értékelés:
Nem saját fejből mert az nem ment, külső segítséggel elkészült a kis szkript ami a monitor ébredése után automatikusan visszakapcsolja a hdmi audiót.
Megoldva
Beküldte kimarite -
Értékelés:
Vagy esetleg a crontab futtatja időközönként?
István nem mondta el, hogyan működik?
A wait és a monitor kifejezések a változók, behelyettesíthetőek később bárhova.
Amikor igaz (true) az xset kimenet, be lesz kapcsolva a HDMI stereo profil.
Megoldva
Beküldte 444tibi -
Értékelés:
Ezért feldobtam egy speciálisan szkriptekkel foglalkozó helyre a problémámat, szerencsére nem hajtottak el mint lámát és ott kaptam ezt a szkriptet. És működik.
Nem kell crontab mert ha 1x elindítom, akkor folyamatosan fut, ezt a feladatkezelőbe látom.
Halványan azt sejtem hogy 10 másodpercenként kekérdezi hogy a monitor épp on vagy off, és ez alapján fut le a végén lévő parancs minden monitor ébredésnél.
Megoldva
Beküldte T.István -
Értékelés:
#! /bin/bash <-kötelező bevezető, innen tudja a bash, hogy ez szkript, nem pedig a sült krumli receptje TXt-ben.
function wait <-függvény definiálása, a függvény neve WAIT.
{ <- nyitó karakter
sleep 10 <- a WAIT függvény tartalma / utasítás készlete, várakozik 10 időegységet
} <- záró karakter
function monitor <-függvény definiálása, a függvény neve MONITOR.
{<- nyitó karakter
xset q | grep -q "Monitor is On" <- a MONITOR függvény tartalma / utasítás készlete, lekérdezi a monitor állapotát, ami egy szöveg halmaz, ebben a szöveghalmazban grep-el keresi a "Monitor is On" sztringet, ha van találat, akkor lesz egy boolean érték is, aminek True az állapota, False, ha nincs találat.
}<- záró karakter
# // eddig tartott az u.n. definíciós szakasz, innen következik a végrehajtó szakasz
while true <-ciklus nyitás, a ciklus addig fut, amíg alábbi parancsok kimenetei igazak (True)
do < -csináld (az alábbiakat)
while monitor <- míg a Monitor függvény (fentebb definiálva) értéke igaz (True)
do <- csináld (az alábbiakat)
wait <- hajsd végre a wait függvényt (várakozz 10 időegységet)
done <- ennyi / kész (do / csinálás vége)
while ! monitor <- míg a Monitor függvény (fentebb definiálva) értéke hamis (False) #// megjegyzés: A felkiáltójel a negálás jele, azaz NOT a jelentése, tehát a parancs pontosan így szól: amíg a monitor függvény értéke NEM True
do <- csináld (az alábbiakat)
wait <- hajsd végre a wait függvényt (várakozz 10 időegységet)
done <- ennyi / kész (do / csinálás vége)
pactl set-card-profile 0 output:hdmi-stereo <- állítsd be a hangkimenetet a HDMI-re # -ez ugye a cikluson belül akkor fut le 10 időegységenként, ha a Monitor függyény értéke igaz.
done<- ennyi / kész (do / csinálás vége) - ez a legfelső While True záró parancsa.
Megoldva
Beküldte kimarite -
Értékelés:
parancsor kimenete-e a „Monitor is On”.
Ha igen (while true), azaz „igaz” (de korábban nem ez volt), akkor egyszer futtatja a parancsort:
Aztán fut tovább. A változást figyeli. A „Monitor is Off” -ról (vagy miről) a „Monitor is On” -ra.
Én ezen nem is gondolkodtam, annyira „elvoltatok”. :)
Megoldva
Beküldte kimarite -
Értékelés:
Megoldva
Beküldte kimarite -
Értékelés:
Megoldva
Beküldte kimarite -
Értékelés:
Mert, ha figyeltetnénk a hang beállítást, az is egy plusz lépés lenne.
Megoldva
Beküldte T.István -
Értékelés:
Igen, ez így meredeknek tűnik, de az egész rendszer (számítógépes rendszer) így működik, azaz gyakorlatilag ebből áll a működés lényege. Folyamtosan fut kismillió lekérdezés, USB portok állapota valami 5-20 ms időközönként (van-e valami bedugva), PCI alrendszer állapota, meg minden, az óra, az időzítés, klikk (egér) és billentyűzet (történ-e gomb lenyomása), minden őrült ciklusokból áll, amik folyamatosan figyelgetnek, lekérdeznek, és szabály szerint reagálnak. Ha egy parancsikon lenne az asztalon, amire klikkelve lefut a parancs, akkor is lenne egy folyamatos figyelés futtatása, ami azt figyeli, hogy klikkeltek-e a parancsikonon. Tehát az, hogy eseményvezérelt (ikonon klikkelés), vagy automatizált folyamatos futású job, az ebből a szempontból annyira nem tér el egymástól.
Lehetne a fenti kódba további eleganciát beletenni, hogy pl. egy változóval még figyelje, hogy volt-e az elöző ciklushoz képest változás, és csak akkor futtatná a hang átiránytását, de tulajdonképpen ez is csak további terhelést jelent, amit nyerünk a vámon, elveszítjük a réven. Jól van ez így, ahogy van.
Megoldva
Beküldte 444tibi -
Értékelés:
Nagy köszönettel tartozom Istvánnal a szájbarágós leírásért.
És az nekem is eszembe jutott hogy a monitor OFF alatt folyamatosan lefut a kimeneti parancs, viszont csináltam teszteket és nem így van.
Mivel el tudom küldeni a monitort alvóba, a set dpms force off paranccsal, erre van is egy ikonom a panelon, és visszatérésnél láttam többször hogy nem folyamatosan triggereli a pulseaudiót hogy hdmi-re álljon a hanem a monitor visszajövet után láttam pár másodperccel hogy akkor kapcsol visza hdmi-re.
A szkript alapján nem tudom ez hogyan működik de működik.
Vagy csak véletlen lenne, de 8-10x teszteltem.
Bátorkodtam a szkript írójától magyarázatot kérni, készségesen válaszolt, és ezt írta:
"Ugye van 2 függvény, a wait az simán vár 10 másodpercig, a monitor pedig lekérdezi a monitor állapotát. A főprogram először addig pörög amíg a monitor be van kapcsolva. Megnézi az állapotot, vár 10 másodpercet, megint megnézi és így tovább. Ha egyszer kikapcsoltnak látja a monitort átlép a második részbe ami hasonlóan működik de arra vár, hogy visszakapcsoljon a monitor. Ekkor lefut az általad adott parancs és kezdődik minden előlről."
Az utóbbit én sem találom pontosan a szkriptbe de valahogyan mégis így működik.
Bár ezek elvi síkú kérdések de szerintem nagyon érdekes téma, legalábbis nekem az.
Megoldva
Beküldte kimarite -
Értékelés:
Mert utóbbi magyarázata:
Forrás:
https://linuxize.com/post/bash-while-loop/
És akkor ez így lenne (részlet):
Nekem úgy tűnt, így lenne jó.
A ! a nem, a false. Vagyis, amikor a monitor változó nem a „Monitor is On”, akkor ... (do)
Megoldva
Beküldte kimarite -
Értékelés:
Megoldva
Beküldte kimarite -
Értékelés:
(most volt időm belemélyedni)