A zene- és videólejátszók használatánál felmerülhet az, hogy egy idő után vagy adott tartalom végére érve, a lejátszó kapcsolja ki a gépet. Az időzítés mindig izgalmas téma. Van ahol, az alkalmazásban is megoldott, és van ahol, nem.
Most megmutatom, én mit használok a Kaffeine lejátszónál a tévézés alkalmával...
A Kaffeine egy fapados videó lejátszó, és frontend-je a VLC lejátszót használja backend-ként.
A könnyebb megértésért olvasd el a leírás előzményét:
Időzített VLC kikapcsolás és a rendszer leállítása
D-Bus
A parancssor a Media Player Remote Interfacing Specification D-Bus (MPRIS) szolgáltatásra épül. Más lejátszók is használják, de a VLC, és ezáltal a Kaffeine is támogatja.
A D-Bus-ról részletesen:
https://www.freedesktop.org/wiki/Software/dbus/
Az időzített parancssor, melyet természetesen terminálban szükséges futtatnod, több elemből áll:
- Időzítés (sleep | például másodpercben).
- Lejátszás leállítása (Stop).
- Lejátszó kikapcsolása (Quit).
- Rendszer kikapcsolása (PowerOff).
sleep 3600 ; dbus-send --session --type=method_call --dest=org.mpris.kaffeine /Player org.freedesktop.MediaPlayer.Stop ; sleep 5 ; dbus-send --session --type=method_call --dest=org.mpris.kaffeine / org.freedesktop.MediaPlayer.Quit ; dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
A terminált ne zárd be, mert ezzel az időzítést megszakítod.
A VLC, és a Kaffein Qt keretrendszerben készülnek, ebből következően a GTK+ -s D-Feet D-Bus nézegetőben -manapság még- nem láthatóak, de a Qt D-Bus Viewer (D-Bus nézegető) alkalmazásban igen.
Az elemek a nézegetőkben csak az alkalmazások elindítása után jelennek meg, vagyis az alkalmazáshoz kapcsolt D-Bus folyamat indítása után (Connected to D-Bus.).
MPRIS / Qt
Hasznos, ha telepíted a csomagot:
sudo apt-get install libmpris-qt5-1
Qt D-Bus Viewer
Telepítés:
sudo apt-get install qttools5-dev-tools
A parancssorok felépítésének logikája lekövethető a képről (a Quit kiemelve, de látszik a Stop elhelyezkedése is, továbbá a kiválasztható Session Bus és a System Bus fülek):
A képen látható információk és a parancssor összefüggései
dbus-send --session --type=method_call --dest=org.mpris.kaffeine /Player org.freedesktop.MediaPlayer.Stop
- A dbus-send alkalmazás felhasználóként (session) vagy rendszer folyamatként (system) meghív egy szolgáltatást (Services)
- A D-Bus a telepített alkalmazásokat saját szolgáltatásaiként kezeli, melyeket a Services lapon, a Session Bus vagy a System Bus fül alatt találsz meg. Válaszd azt a parancssoros kapcsolót (session vagy system), ahol a szolgáltatás látható. Az alkalmazások általában felhasználóként, a rendszerfolyamatok pedig rendszer folyamatként futnak.
- A type kapcsolóval párosított method_call (típus: hívás) beállítás szükséges az alkalmazás parancssoros vezérléséhez (D-Bus).
- A dest kapcsolónál a vezérelni kívánt szolgáltatás (Services) nevét szerepeltesd (org.mpris.kaffeine).
- A Methods lapon a /, a /Player vagy az /org/freedesktop/MediaPlayer (példa) az a megcímezni kívánt D-Bus $PATH (cím, elérési út), amely a különböző vezérlési lehetőségeket tartalmazza, és mindenképpen közvetlenül nyilacska elem mellett helyezkedik el.
- Egy adott $PATH kibontása után (nyomd meg a nyilacska elemet) láthatóak az org.freedesktop.MediaPlayer.Stop, az org.freedesktop.MediaPlayer.Quit, és az "org.freedesktop.login1.Manager.PowerOff" (példa) elemek, vagyis, az elérhető vezérlési lehetőségek (Stop, Quit, PowerOff).
A parancssorok egyben, és elemeikre bontva
Megfigyelhető, hogy mikor szükséges a session (felhasználó), és mikor a system (rendszer) D-Bus kapcsoló.
Stop (lejátszás megállítása)
dbus-send --session --type=method_call --dest=org.mpris.kaffeine /Player org.freedesktop.MediaPlayer.Stop
- dbus-send --session --type=method_call
- --dest=org.mpris.kaffeine
- /Player
- org.freedesktop.MediaPlayer.Stop
Quit (kilépés az alkalmazásból)
dbus-send --session --type=method_call --dest=org.mpris.kaffeine / org.freedesktop.MediaPlayer.Quit
- dbus-send --session --type=method_call
- --dest=org.mpris.kaffeine
- /
- org.freedesktop.MediaPlayer.Quit
PowerOff... a rendszer kikapcsolása
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
- dbus-send --system --print-reply
- --dest=org.freedesktop.login1
- /org/freedesktop/login1
- "org.freedesktop.login1.Manager.PowerOff" boolean:true
A negyedik sor szintén szabványosan épül fel a macskakörmökkel, habár, kissé máshogyan, mint az előző két példában láttuk. Más a módszer. Ugyanitt feltűnik egy változó (boolean), melynek értéke true (igen). Ezzel azt fejezzük ki a D-Bus rendszernek, hogy az itt megadott elem (*PowerOff) hatását engedélyezzük. A true ellentéte a false...
Az alkalmazás a menüben (indítóikon):
Elemei:
- Qt D-Bus Viewer
- /usr/lib/qt5/bin/qdbusviewer
- Qt-os D-Bus nézegető
Ikon a menüelemhez (töltsd le, másold be az ~/.icons könyvtárba, majd tallózd be az elem szerkesztésekor a menüszerkesztőben):
https://github.com/EliverLara/candy-icons/issues/359
D-Feet
Telepítés:
sudo apt-get install d-feet
A D-Feet kinézete (példa):
Enjoy :-)
Hozzászólások
off
Beküldte kimarite -
Értékelés:
A segítőkész fórumtársnak ajánlom, aki a parancssor (és a Windows) megszállottja. :))
off
Beküldte 444tibi -
Értékelés:
Hol tévére, hol smplayerre, hol a böngészőbe videóra alszok el.
Marad a kétkattintásos időzített gépkikapcsolás.