Számítógép kikapcsolása inaktivitásnál

A legtöbb asztali környezetben be tudjuk állítani a kikapcsolás, illetve az alvó stb. állapotba küldést egy bizonyos idő után. Ez nagyon kényelmes, áramtakarékos megoldás. Ha nem használjuk a gépet (sem egér, sem pedig billentyű mozgás nincs) akkor kapcsolja magát tartalékra.
De sajnos nem mindig megfelelő a beállítási lehetőségek tárháza. Nekem két problémám van az ablakkezelőkkel kapott energiakezelős (általában ilyen, vagy hasonló néven futó) alkalmazásokkal:

  • Legördülős menüből választhatunk kikapcsolási (altatási stb.) időt. Ez nem jelent gondot, hiszen általában őt és 15 perctől pár óráig állítható. Vagy nem. Mert van ahol a legrövidebb idő 15 perc... Így akinek ez a fokozatos beállításnem felel meg, annak vagy kompromisszumot kell kötni, vagy más megoldást keresni.

  • Sok energiakezelő "intelligens". Ez a legtöbb esetben egy energiakezelőt blokkoló megoldásban nyilvánul meg. Intelligensen észleli ha médialejátszás van, vagy éppen egy médiát teljes képernyős módban játszunk le. Logikus, hiszen kinek kell egy film nézés közben, vagy zene hallgatás közben egy hibernált állapotba kerülés? Nekem igen, mert este a számítógépen nézek filmet, vagy hallgatok hangoskönyvet. Aminél jó lenne, ha kikapcsolna egy idő után, ha elalszom.

A bónusz probléma egyértelmű: egy adott asztali környezethez kapjuk a hozzátartozó energiakezelőt. Így aki (mint én sok esetben) ablakkezelőt használ, annak ez nem jó. Bár egyes asztali környezethez gyártott energiakezelőt fel lehet telepíteni pld. az I3wm alá, ami hozza a saját függőségeit is, nem egy túl elegáns megoldás. Amit meg lehet oldani ilyen koloncok nélkül azt meg szeretném oldani egyszerűen.

Az alap probléma már világos és a feladat is egyszerű: egy adott (a példában 10 perc) idő után tegye magát a gép "suspend"-be, ha semmi mozgás sincs az egérrel és a billentyűvel. Akkor is ha egy filmet játszok le. Ezt egyszerűen tudjam ki- és bekapcsolni.

Több megoldást találtam, igaz kevesebbet mint reméltem. Most az xautolock programot mutatom be. Ez a legtöbb tárolóban jelen van, egyszerű és könnyen használható.

Első lépésben a

xautolock -h

vagy a

man xautolock

indításával megismerhetjük az összes lehetőséget. Maga a program sokkal többet tud, mint amire most felhívom a figyelmet!

Az általam használt parancssor nagyon egyszerű és indulásnak ilyen megoldást javaslok:

xautolock -time 10 -locker "systemctl suspend" &

a -time kapcsoló utáni szám percekben adja meg a kikapcsolási időt. A -locker pedig a teendőt. Idézőjelek közt, ha szóköz is van benne! A példa egy systemd-s rendszeren jól működő megoldás, mert a systemctl suspend suspend állapotba teszi a gépet. Logikusan itt azt a típusú altatást használod, ami neked megfelelő. Kitérő: egyes "altatási" módok elvárják, hogy a swap mérete a memória méretének megfelelő vagy nagyobb legyen.
Érdemes ezt a rövidke leírást elolvasni a kernel.org oldalon.
A systemd-ben paraméternek megadható újra indítás, vagy kikapcsolás is. Ez itt ellenjavallt, mert könnyen adatvesztés lesz, ha így leállítod a gépet.
A -locker után bármi képernyővédő, képernyő zároló stb. program megadható, kis internet keresés után már kész példákat is kapsz.
El tudsz indítani egy szkriptet is, ha összetettebb feladatot szeretnél lefuttatni inaktivitás után. Jó gondolat lehet egy olyan szkript, ami adatmentést végez egy bizonyos idő után,ha nem dolgozol a géppel, majd altatja azt.
A lezáró & csak annyit tesz, hogy háttérben kell futtatni a programot a rendszernek.

Hogyan érdemes futtatni?

Nyilván terminálos program, nyitsz egy terminált és elindítod. A leállítása is terminálos megoldású nálam:

killall xautolock

A gépelés elkerülésére érdemes alias-t használni, vagy az indulást, leállítást egy-egy billentyűkötéshez rendelni. Ez alap egy ablakkezelőnél...

Indíthatod folyamatos használatnál az autostart megoldással is. Ez ablakkezelőnként és asztali környezetenként eltér. Úgy használd, ahogy azt a rendszered előírja.

Az asztali környezeted saját energiakezelőjével együtt is használhatod. Ezt mindenképp próbáld ki éles beállítás előtt lehetnek ebből ütközések. Én egy ideig azt a módszer követtem, hogy az ablakkezelő sajátját beállítottam egy időre, és az xautolock-t öt perccel hosszabbra. Ha az asztali környezet saját rendszere altatja a gépet, akkor az xautolock-nak nincs teendője, ha nem (pld. filmet nézek és az gátolja az altatást), akkor az xautolock aktív lesz.

Hozzászólások

sleep

Értékelés: 

0
Még nincs értékelve

Csak azt nem értem, hogy ha nézel egy filmet, akkor minek kapcsolod ki a gépet? smiley
Nálam ez úgy van, hogy nézek egy filmet, és 10 perc után elalszom.

Amúgy ez nem jó?
sleep 600 && systemctl suspend

 

csuhas32 képe

A számítógép késleltetett kikapcsolása

Értékelés: 

0
Még nincs értékelve

Én a TV-okosítóként is szolgáló Mini PC-n az esti film elindítása után a

sleep 10800 && systemctl poweroff -i

parancsot szoktam kiadni.

Itt ugyebár a számérték másodpercekben van megadva, egy perc 60 másodperc, egy óra pedig 60 perc, azaz 10800/60/60=3, vagyis így a parancs kiadásától számított 3 óra leteltével kapcsol ki a számítógép.

Természetesen írhatunk ehelyett más értéket is:

10 perc: 600

30 perc: 1800

1 óra: 3600

2 óra: 7200

Az -i kapcsoló nálam feltétlen szükséges akár ennél a poweroff, akár egy másik hozzászólásban emlegetett suspend esetén, különben amikor reggel felkelek, azt látom, hogy röhögve néz rám a bekapcsolt állapotban lévő számítógép, a parancs nem futott le, helyette egy ilyen hibaüzenettel kíván nekem vidám napot:

csuhas@iklubradio:~$ sleep 10800 && systemctl poweroff
User iklubradio is logged in on seat0.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.
csuhas@iklubradio:~$

A rendszer a Linux Mint Xfce apukája, azaz Xubuntu 22.04.