Következő Előző Tartalom

4. A .lircrc, valamint pár tipp a LIRC-cel használható programokhoz (XMMS, MPlayer)


A .lircrc

Most jön a dolog legizgalmasabb része, a programok és a .lircrc összehangolása. A .lircrc a home könyvtárunkban foglaljon helyet, a szintaxisa a következő:

begin
  prog = ...
  remote = ...
  button = ...
  repeat = ...
  config = ...
  mode = ...
  flags = ...
end

Mi mit jelent?

prog
Megadja a program nevét, aminek a parancs szól

remote, button
A megadott távirányító megadott gombja, ami később majd egy akciót eredményez. A "*" alkalmazható joker karakterként, de több távirányító esetén jobb teljes névvel hivatkozni.

repeat
Megadja, hogy mi történik, ha többször egymásután nyomjuk meg az adott gombot. 0 esetén a program nem veszi figyelembe a többszörös lenyomást, egy lenyomásnak számítja. Minden más pozitív szám azt adja meg a lircd-nek, hogy hányszor adja át a parancsot a programnak, ismétlés esetén. Az alapbeállítás a 0.
A fordító megjegyzése:
Ez a funkció nálam nemigazán működött. Nem sikerült tehát megoldanom azt, hogy hosszabb nyomvatartás esetén újra és újra kiadásra kerüljön az aktuális parancs. Elsőre talán úgy tűnhet, hogy nem lehet enélkül élni, de a cucc élvezeti értékét (szvsz) nem vészesen csökkenti.

config
Az átadandó parancs. Ez programonként változik, az XMMS hangerőnövelésre például a VOL_UP parancsot használja. További infókért olvasd el a LIRC doksiját!

mode
Megad a programnak egy speciális módot.

A flagekre most nem térek ki, az alap működéshez nem szükségesek. Egy példa konfiguráció:

begin
   prog = xmms
   button = chup
   config = PREV
   repeat = 1
end

Amint látható, az XMMS-nek adunk parancsot, a chup gomb lenyomására hajtja végre a PREV parancsot (előző szám a playlistben). A repeat 1, azaz ha többször nyomjuk meg, egyre feljebb lépked, 1-szer adja ki a parancsot.

Az XMMS, MPlayer és a többi program parancslistáját az adott dokumentációban olvashatod el.

Az irexec nevű program segítségével különböző programokat indíthatsz el, vagy parancsokat futtathatsz le. Erre egy egyszerű példa:

begin
   button = MENU_DOWN
   prog = irexec
   repeat = 0
   config = echo -e "\a"
end

Így, ha megnyomjuk a MENU_DOWN-nak konfigolt gombot, akkor egy pittyenést hallunk a PC-speaker felől. Persze akármit megadhatunk; programokat indíthatunk, stb.

XMMS

Az XMMS esetében szükségünk lesz az xmms-lirc csomagra (a legtöbb disztrib része, de ha mégsem, akkor töltsük le a forrást az xmms.org-ról). Ha lefordítottuk / felraktuk a programot, akkor az XMMS beállításaiban az "Effekt/Általános modulok" fülön, az Általános modulok részben meg kell jelennie a lirc pluginnek. Jelljük ki, és pipáljuk be a használatát. Ezután indítsuk újra a programot, és ha már van .lircrc-nk akkor működnie kell az irányításnak. Fontos: itt is, mint bármilyen más program esetében, ha bármit is változtatunk a .lircrc-n, újra kell indítanunk az adott programot. Ha a daemont indítjuk újra valamiért, akkor elveszik a kapcsolat az adott programmal, ezesetben szintén a program újraindítása segít.

Az XMMS-nek átadható parancsok megtalálhatóak az xmms-lirc README fájljában, ugyanitt találunk példa konfigfájlokat.

A .lircrc-ben a config-nak "xmms"-t kell megadni.

MPlayer

Az MPlayer dokumentációjában szintén megtalálhatóak a parancsok. Ha használni akarod az LIRC-et az MPlayerrel, akkor fordításnál be kell kapcsolnod a LIRC támogatását; tehát, add át a configure scriptnek a --enable-lirc opciót (persze lehet, hogy megtalálja magától) Elképzelhető, hogy az MPlayer számára szükséges a liblircclient0 és liblircclient-devfüggvénykönyvtár.

A .lircrc-ben a config-nak "mplayer"-t kell megadni.

KDE-s alkalmazások irányítása dcop-pal

Mivel a KDE-s alkalmazások legtöbbje képes ezzen a "protokollon" keresztül kommunikálni, ezt saját hasznunkra fordíthatjuk.

A dcop parancs kiadására valami hasonló kimenetet kapsz:
amarok
kded
quanta-8622
knotify
kio_uiserver
klauncher
konqueror-5930
konqueror-5932

Ebből engem például az Amarok médialejátszó irányítása érdekelt. Nézzük csak meg közelebbről! ( dcop amarok )
qt
KBookmarkManager-/home/radu/.kde/share/apps/amarok/fileBrowserBookmarks.xml
KBookmarkManager-/home/radu/.kde/share/apps/konqueror/bookmarks.xml
KBookmarkNotifier
KDirNotify-1
KIO::Scheduler
MainApplication-Interface
collection
html-widget1
html-widget2
html-widget3
ksycoca
player (default)
playlist

A lényeges a player "csoport". Gondolom már mindenki a falat kaparja, annyira izgatott, szóval: dcop amarok player
QCStringList interfaces()
QCStringList functions()
void play()
void playPause()
void stop()
void next()
void prev()
void pause()
void seek(int s)
void seekRelative(int s)
void enableRandomMode(bool enable)
void scanCollection()
int trackTotalTime()
[...]

Tehát: ha azt akarjuk, hogy a MENU_DOWN -ra a következő számra ugorjon az Amarok, írjuk bele a konfigfájlunkba ezen sorokat: begin
   button = MENU_DOWN
   prog = irexec
   repeat = 0
   config = dcop amarok player "next()"
end

Természetesen, hogy mindez korrektül működjön, néhány feltételnek - mint például az Amarok és az irexec futása - teljesülnie kell. Az irexec nélkülözhetetlen, mivel ez "veszi" a parancsot, az Amarokot viszont már akár hozzárendelhetjük távirányítónk egyik gombjához is.

Ügyeljünk arra, hogy ne legyen átfedés a gombok között (avagy figyeljünk oda, hogy mely programok futnak), mert ellenkező esetben kellemetlen lehet, hogy a pillanatra megállított XMMS-ben tékozló mp3-unk full hangerőn halálra rémiszt bennünket egy gyengébb hangerejű film MPlayerrel való megtekintése közben... :)

Magasfokú aberrációk

Van, aki lustaságnak, van, aki kényelemnek nevezi a következő ötletet. Ha az ember olyan típus, mint jómagam, azaz szeret zenére dögleni / elaludni, az tudja, mennyire ünneprontó érzés fáradtan shutdown-t álligatni előre a gépen. Ezt kiküszöbölendő a 4-es gomb mondjuk a monitort kapcsolja ki, míg a 7-es az adott időpillanattól számított 1 órán belül kikapcsolja a gépet a shutdown segítségével. Ezt részletesen nem mutatom be, ha nem muszáj, viszont egy kis segítséget adhatok :)

Monitor kikapcsolása

xset dpms force off
(Természetesen DPMS támogatás szükséges hozzá!)

Számítógép kikapcsolása

#!/bin/bash
p=`date +%H*60+%M+60 | bc`
s=$[$p/60]:$[$p-($p/60)*60]
shutdown -t1 -a -h $s

Következő Előző Tartalom