Időzített Kaffeine kikapcsolás és a rendszer leállítása (D-Bus)

kimarite képe

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):

Qt D-Bus Viewer | A parancssor felépítésének logikája lekövethető a képről (a Quit kiemelve, de látszik a Stop elhelyezkedése is)

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):

Qt D-Bus Viewera menüben

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):

A D-Feet kinézete

Enjoy :-)

Hozzászólások

off

Értékelés: 

0
Még nincs értékelve

#1 Kösz Kim nagyon rendes vagy.  Végigrágtam a cikken magam  többször, annyi előnnyel járt hogy van egy d-villamos, vagy d-bus smiley nézegetőm. 
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.