LIRC Infrared Remote Control: Difference between revisions
No edit summary |
|||
| Line 3: | Line 3: | ||
* https://help.ubuntu.com/community/LIRC | * https://help.ubuntu.com/community/LIRC | ||
Important files | Important files: | ||
* /etc/init.d/lirc #loads module and starts deamon | * /etc/init.d/lirc #loads module and starts deamon | ||
* /dev/lirc0 #lirc device | * /dev/lirc0 #lirc device | ||
| Line 9: | Line 9: | ||
* /etc/lirc/lircd.conf #lirc remote configuration | * /etc/lirc/lircd.conf #lirc remote configuration | ||
* ~\.lircrc #lirc configuration of actions for vlc, totem etc | * ~\.lircrc #lirc configuration of actions for vlc, totem etc | ||
== Install == | == Install == | ||
| Line 24: | Line 25: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Remote interface: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
| Line 41: | Line 42: | ||
</blockquote> | </blockquote> | ||
Remote configuration: | |||
Find the conf-file to go with your specific remote on internet: | Find the conf-file to go with your specific remote on internet: | ||
| Line 49: | Line 50: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Configure events, this file is used by the irexec daemon | Configure events, this file is used by the irexec daemon: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
| Line 55: | Line 56: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Start LIRC services: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
| Line 67: | Line 68: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Test: | |||
Raw remote interface output: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
| Line 75: | Line 76: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Remote keys pressed: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
sudo irw /dev/lircd | sudo irw /dev/lircd | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Record buttons: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
| Line 87: | Line 89: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Note: never have had the receiver working, but I didnt need it either, | |||
== Notifications == | |||
sudo apt-get install libnotify-bin | sudo apt-get install libnotify-bin | ||
notify-send -t 6000 -i ~/Scripts/lirc.ico "Remote" | notify-send -t 6000 -i ~/Scripts/lirc.ico "Remote" | ||
== Other stuff == | |||
Problem to start lirc at boot, modules load fine, daemon fails | |||
remote: lirc: starting LIRC modules [ok] | remote: lirc: starting LIRC modules [ok] | ||
| Line 105: | Line 111: | ||
Note: this was not needed for Urbuntu 11.04 | Note: this was not needed for Urbuntu 11.04 | ||
== | == Example event script == | ||
#extract full list of VLC .lirc keys | #extract full list of VLC .lirc keys | ||
vlc -H --advanced 2>&1 |sed -n '/--key/ {s/^\ *--//; s/^\(.*\) <[^>]*>\ *\(.*\)$/\2 -> \1/;h}; /^.*[^ ].*-> key/ p; /^ -> key/ { n; s/^[ \t\n]*//M; G; s/\n//; p}' | vlc -H --advanced 2>&1 |sed -n '/--key/ {s/^\ *--//; s/^\(.*\) <[^>]*>\ *\(.*\)$/\2 -> \1/;h}; /^.*[^ ].*-> key/ p; /^ -> key/ { n; s/^[ \t\n]*//M; G; s/\n//; p}' | ||
<blockquote> | |||
<syntaxhighlight lang=bash> | |||
############################################### | |||
### | |||
### needs irexec as daemon (irexec -d) | |||
### | |||
### General mode can be found at the bottom. | |||
### To prevent execution within a mode AND the general section use "flags = quit" | |||
### | |||
############################################### | |||
# run irw in a terminal and press your remote buttons to see what they are | |||
# in this file: | |||
# - banshee | |||
# - vlc | |||
# - totem | |||
# - rhythmbox | |||
# - general | |||
############################################### | |||
### banshee - music player | |||
############################################### | |||
begin banshee | |||
begin | |||
prog = irexec | |||
button = dcc_start | |||
config = banshee --toggle-playing | |||
#config = banshee --pause | |||
#config = banshee --play | |||
delay = 1000 | |||
end | |||
begin | |||
prog = irexec | |||
button = dcc_stop | |||
config = banshee --pause | |||
#config = banshee --stop | |||
end | |||
begin | |||
prog = irexec | |||
button = dcc_track_down | |||
config = banshee --previous | |||
end | |||
begin | |||
prog = irexec | |||
button = dcc_track_up | |||
config = banshee --next | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = power | |||
config = quit | |||
flags = mode | |||
end | |||
#20110925 there seems to be a bug so the following does not work | |||
begin | |||
prog = irexec | |||
button = dcc_right | |||
config = banshee --set-position=`banshee --query-position | sed 's/.*: /10+/'|bc` | |||
end | |||
begin | |||
prog = irexec | |||
button = dcc_left | |||
config = banshee --set-position=`banshee --query-position | sed 's/.*: /-10+/'|bc` | |||
end | |||
#to obtain xte: | |||
#sudo apt-get install xautomation | |||
#volume up | |||
begin | |||
prog = irexec | |||
button = dcc_counter_reset | |||
config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /10+/'|bc` | |||
#xte 'key XF86AudioRaiseVolume' | |||
repeat = 1 | |||
end | |||
#volume down | |||
begin | |||
prog = irexec | |||
button = dcc_time | |||
config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /-10+/'|bc` | |||
#xte 'key XF86AudioLowerVolume' | |||
repeat = 1 | |||
end | |||
end banshee | |||
############################################### | |||
### vlc - video player | |||
############################################### | |||
# | |||
# full list of VLC .lirc keys: | |||
# vlc -H --advanced 2>&1 |sed -n '/--key/ {s/^\ *--//; s/^\(.*\) <[^>]*>\ *\(.*\)$/\2 -> \1/; h}; /^.*[^ ].*-> key/ p; /^ -> key/ { n; s/^[ \t\n]*//M; G; s/\n//; p}' | |||
begin vlc | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_start | |||
repeat = 1 | |||
config = key-play-pause | |||
delay = 1000 | |||
end | |||
# key-position - shows where you are in the video | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_stop | |||
repeat = 1 | |||
config = key-position | |||
end | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_right | |||
repeat = 1 | |||
#config = key-jump+medium | |||
config = key-jump+short | |||
end | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_left | |||
repeat = 1 | |||
#config = key-jump-medium | |||
config = key-jump-short | |||
end | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_track_up | |||
repeat = 1 | |||
config = key-next | |||
delay = 1000 | |||
end | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_track_down | |||
repeat = 1 | |||
config = key-previous | |||
delay = 1000 | |||
end | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_counter_reset | |||
repeat = 1 | |||
config = key-vol-up | |||
end | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_time | |||
repeat = 1 | |||
config = key-vol-down | |||
end | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_rec_mute | |||
repeat = 1 | |||
config = key-toggle-fullscreen | |||
delay = 1000 | |||
end | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_record | |||
repeat = 1 | |||
config = key-quit | |||
end | |||
# Cycle aspect ratio | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_append | |||
repeat = 1 | |||
config = key-aspect-ratio | |||
delay = 1000 | |||
end | |||
# Subtitles | |||
begin | |||
prog = vlc | |||
remote = * | |||
button = dcc_start_mark | |||
repeat = 1 | |||
config = key-subtitle-track | |||
delay = 1000 | |||
end | |||
# Faster | |||
begin | |||
prog = vlc | |||
button = <remotebutton> | |||
repeat = 3 | |||
config = key-faster | |||
end | |||
# Slower | |||
begin | |||
prog = vlc | |||
button = <remotebutton> | |||
repeat = 3 | |||
config = key-slower | |||
end | |||
# Snapshots | |||
begin | |||
prog = vlc | |||
button = <remotebutton> | |||
repeat = 3 | |||
config = key-snapshot | |||
end | |||
# Audio Sync'ing | |||
begin | |||
prog = vlc | |||
button = <remotebutton> | |||
repeat = 3 | |||
config = key-audiodelay-up | |||
end | |||
# Audio Delay DOWN | |||
begin | |||
prog = vlc | |||
button = <remotebutton> | |||
repeat = 3 | |||
config = key-audiodelay-down | |||
end | |||
end vlc | |||
############################################### | |||
### totem - video player | |||
############################################### | |||
begin totem | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_start | |||
repeat = 1 | |||
config = pause | |||
config = play | |||
delay = 1000 | |||
end | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_stop | |||
repeat = 1 | |||
config = pause | |||
end | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_right | |||
repeat = 1 | |||
config = seek_forward | |||
end | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_left | |||
repeat = 1 | |||
config = seek_backward | |||
end | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_rec_mute | |||
repeat = 1 | |||
config = fullscreen | |||
delay = 1000 | |||
end | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_counter_reset | |||
repeat = 1 | |||
config = volume_up | |||
end | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_time | |||
repeat = 1 | |||
config = volume_down | |||
end | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_track_up | |||
repeat = 1 | |||
config = next | |||
end | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_track_up | |||
repeat = 1 | |||
config = previous | |||
end | |||
begin | |||
prog = totem | |||
remote = * | |||
button = dcc_record | |||
repeat = 1 | |||
config = quit | |||
end | |||
end totem | |||
############################################### | |||
### rhythmbox - audio player | |||
############################################### | |||
begin rhythmbox | |||
begin | |||
prog = rhythmbox | |||
button = power | |||
config = quit | |||
flags = mode | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = dcc_start | |||
config = play | |||
config = pause | |||
delay = 1000 | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = dcc_stop | |||
config = pause | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = | |||
config = stop | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = dcc_counter_reset | |||
config = volume_up | |||
repeat = 3 | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = dcc_time | |||
config = volume_down | |||
repeat = 3 | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = dcc_track_up | |||
config = next | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = dcc_track_down | |||
config = previous | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = | |||
config = mute | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = | |||
config = shuffle | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = | |||
config = repeat | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = dcc_right | |||
config = seek_forward | |||
end | |||
begin | |||
prog = rhythmbox | |||
button = dcc_left | |||
config = seek_backward | |||
end | |||
end rhythmbox | |||
############################################### | |||
### | |||
### general mode | |||
### | |||
############################################### | |||
#mode | |||
begin | |||
prog = irexec | |||
button = dcc_mode | |||
config = ~/Scripts/lirc-menu.sh & | |||
end | |||
#0 | |||
begin | |||
prog = irexec | |||
button = dcc_0 | |||
config = ~/Scripts/lirc-mode-0-*.sh & | |||
#maintain current mode | |||
end | |||
#1 | |||
begin | |||
prog = irexec | |||
button = dcc_1 | |||
config = ~/Scripts/lirc-mode-1-*.sh & | |||
#mode = rhythmbox | |||
mode = banshee | |||
end | |||
#2 | |||
begin | |||
prog = irexec | |||
button = dcc_2 | |||
config = ~/Scripts/lirc-mode-2-*.sh & | |||
mode = totem | |||
end | |||
#3 | |||
begin | |||
prog = irexec | |||
button = dcc_3 | |||
config = ~/Scripts/lirc-mode-3-*.sh & | |||
mode = vlc | |||
end | |||
#4 | |||
begin | |||
prog = irexec | |||
button = dcc_4 | |||
config = ~/Scripts/lirc-mode-4-*.sh & | |||
end | |||
#5 | |||
begin | |||
prog = irexec | |||
button = dcc_5 | |||
config = ~/Scripts/lirc-mode-5-*.sh & | |||
end | |||
#6 | |||
begin | |||
prog = irexec | |||
button = dcc_6 | |||
config = ~/Scripts/lirc-mode-6-*.sh & | |||
end | |||
#7 | |||
begin | |||
prog = irexec | |||
button = dcc_7 | |||
config = ~/Scripts/lirc-mode-7-*.sh & | |||
end | |||
#8 | |||
begin | |||
prog = irexec | |||
button = dcc_8 | |||
config = ~/Scripts/lirc-mode-8-*.sh & | |||
end | |||
#9 | |||
begin | |||
prog = irexec | |||
button = dcc_9 | |||
config = ~/Scripts/lirc-mode-9-*.sh & | |||
end | |||
</syntaxhighlight> | |||
</blockquote> | |||
Revision as of 12:56, 28 October 2011
2009 Remote control : LIRC
Important files:
- /etc/init.d/lirc #loads module and starts deamon
- /dev/lirc0 #lirc device
- /etc/lirc/hardware.conf #lirc device configuration
- /etc/lirc/lircd.conf #lirc remote configuration
- ~\.lircrc #lirc configuration of actions for vlc, totem etc
Install
sudo apt-get install lirc
Configure
I use a "Home-brew (16x50 UART compatible serial port)" / tty0
sudo dpkg-reconfigure lirc
Remote interface:
sudo gedit /etc/lirc/hardware.conf
REMOTE_MODULES="lirc_dev lirc_serial" REMOTE_DEVICE="/dev/lirc0" LOAD_MODULES="true" LIRC_SERIAL_PORT="0x03f8" LIRC_SERIAL_IRQ="4" LIRC_SERIAL_CFLAGS=""
Remote configuration:
Find the conf-file to go with your specific remote on internet:
sudo gedit /etc/lirc/lircd.conf
Configure events, this file is used by the irexec daemon:
gedit ~/.lircrc
Start LIRC services:
sudo service lirc restart
irexec daemon added system -> preferences -> sessions:
irexec -d
Test:
Raw remote interface output:
sudo mode2 -d /dev/lirc0
Remote keys pressed:
sudo irw /dev/lircd
Record buttons:
irrecord --list-namespace sudo irrecord --disable-namespace --device=/dev/lirc0 lircremote.conf
Note: never have had the receiver working, but I didnt need it either,
Notifications
sudo apt-get install libnotify-bin notify-send -t 6000 -i ~/Scripts/lirc.ico "Remote"
Other stuff
Problem to start lirc at boot, modules load fine, daemon fails
remote: lirc: starting LIRC modules [ok] starting remote control daemon(s): LIRC Terminated [fail]
Added "sleep 1" directly after "modprobe":
sudo gedit /etc/init.d/lirc
Note: this was not needed for Urbuntu 11.04
Example event script
- extract full list of VLC .lirc keys
vlc -H --advanced 2>&1 |sed -n '/--key/ {s/^\ *--//; s/^\(.*\) <[^>]*>\ *\(.*\)$/\2 -> \1/;h}; /^.*[^ ].*-> key/ p; /^ -> key/ { n; s/^[ \t\n]*//M; G; s/\n//; p}'
###############################################
###
### needs irexec as daemon (irexec -d)
###
### General mode can be found at the bottom.
### To prevent execution within a mode AND the general section use "flags = quit"
###
###############################################
# run irw in a terminal and press your remote buttons to see what they are
# in this file:
# - banshee
# - vlc
# - totem
# - rhythmbox
# - general
###############################################
### banshee - music player
###############################################
begin banshee
begin
prog = irexec
button = dcc_start
config = banshee --toggle-playing
#config = banshee --pause
#config = banshee --play
delay = 1000
end
begin
prog = irexec
button = dcc_stop
config = banshee --pause
#config = banshee --stop
end
begin
prog = irexec
button = dcc_track_down
config = banshee --previous
end
begin
prog = irexec
button = dcc_track_up
config = banshee --next
end
begin
prog = rhythmbox
button = power
config = quit
flags = mode
end
#20110925 there seems to be a bug so the following does not work
begin
prog = irexec
button = dcc_right
config = banshee --set-position=`banshee --query-position | sed 's/.*: /10+/'|bc`
end
begin
prog = irexec
button = dcc_left
config = banshee --set-position=`banshee --query-position | sed 's/.*: /-10+/'|bc`
end
#to obtain xte:
#sudo apt-get install xautomation
#volume up
begin
prog = irexec
button = dcc_counter_reset
config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /10+/'|bc`
#xte 'key XF86AudioRaiseVolume'
repeat = 1
end
#volume down
begin
prog = irexec
button = dcc_time
config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /-10+/'|bc`
#xte 'key XF86AudioLowerVolume'
repeat = 1
end
end banshee
###############################################
### vlc - video player
###############################################
#
# full list of VLC .lirc keys:
# vlc -H --advanced 2>&1 |sed -n '/--key/ {s/^\ *--//; s/^\(.*\) <[^>]*>\ *\(.*\)$/\2 -> \1/; h}; /^.*[^ ].*-> key/ p; /^ -> key/ { n; s/^[ \t\n]*//M; G; s/\n//; p}'
begin vlc
begin
prog = vlc
remote = *
button = dcc_start
repeat = 1
config = key-play-pause
delay = 1000
end
# key-position - shows where you are in the video
begin
prog = vlc
remote = *
button = dcc_stop
repeat = 1
config = key-position
end
begin
prog = vlc
remote = *
button = dcc_right
repeat = 1
#config = key-jump+medium
config = key-jump+short
end
begin
prog = vlc
remote = *
button = dcc_left
repeat = 1
#config = key-jump-medium
config = key-jump-short
end
begin
prog = vlc
remote = *
button = dcc_track_up
repeat = 1
config = key-next
delay = 1000
end
begin
prog = vlc
remote = *
button = dcc_track_down
repeat = 1
config = key-previous
delay = 1000
end
begin
prog = vlc
remote = *
button = dcc_counter_reset
repeat = 1
config = key-vol-up
end
begin
prog = vlc
remote = *
button = dcc_time
repeat = 1
config = key-vol-down
end
begin
prog = vlc
remote = *
button = dcc_rec_mute
repeat = 1
config = key-toggle-fullscreen
delay = 1000
end
begin
prog = vlc
remote = *
button = dcc_record
repeat = 1
config = key-quit
end
# Cycle aspect ratio
begin
prog = vlc
remote = *
button = dcc_append
repeat = 1
config = key-aspect-ratio
delay = 1000
end
# Subtitles
begin
prog = vlc
remote = *
button = dcc_start_mark
repeat = 1
config = key-subtitle-track
delay = 1000
end
# Faster
begin
prog = vlc
button = <remotebutton>
repeat = 3
config = key-faster
end
# Slower
begin
prog = vlc
button = <remotebutton>
repeat = 3
config = key-slower
end
# Snapshots
begin
prog = vlc
button = <remotebutton>
repeat = 3
config = key-snapshot
end
# Audio Sync'ing
begin
prog = vlc
button = <remotebutton>
repeat = 3
config = key-audiodelay-up
end
# Audio Delay DOWN
begin
prog = vlc
button = <remotebutton>
repeat = 3
config = key-audiodelay-down
end
end vlc
###############################################
### totem - video player
###############################################
begin totem
begin
prog = totem
remote = *
button = dcc_start
repeat = 1
config = pause
config = play
delay = 1000
end
begin
prog = totem
remote = *
button = dcc_stop
repeat = 1
config = pause
end
begin
prog = totem
remote = *
button = dcc_right
repeat = 1
config = seek_forward
end
begin
prog = totem
remote = *
button = dcc_left
repeat = 1
config = seek_backward
end
begin
prog = totem
remote = *
button = dcc_rec_mute
repeat = 1
config = fullscreen
delay = 1000
end
begin
prog = totem
remote = *
button = dcc_counter_reset
repeat = 1
config = volume_up
end
begin
prog = totem
remote = *
button = dcc_time
repeat = 1
config = volume_down
end
begin
prog = totem
remote = *
button = dcc_track_up
repeat = 1
config = next
end
begin
prog = totem
remote = *
button = dcc_track_up
repeat = 1
config = previous
end
begin
prog = totem
remote = *
button = dcc_record
repeat = 1
config = quit
end
end totem
###############################################
### rhythmbox - audio player
###############################################
begin rhythmbox
begin
prog = rhythmbox
button = power
config = quit
flags = mode
end
begin
prog = rhythmbox
button = dcc_start
config = play
config = pause
delay = 1000
end
begin
prog = rhythmbox
button = dcc_stop
config = pause
end
begin
prog = rhythmbox
button =
config = stop
end
begin
prog = rhythmbox
button = dcc_counter_reset
config = volume_up
repeat = 3
end
begin
prog = rhythmbox
button = dcc_time
config = volume_down
repeat = 3
end
begin
prog = rhythmbox
button = dcc_track_up
config = next
end
begin
prog = rhythmbox
button = dcc_track_down
config = previous
end
begin
prog = rhythmbox
button =
config = mute
end
begin
prog = rhythmbox
button =
config = shuffle
end
begin
prog = rhythmbox
button =
config = repeat
end
begin
prog = rhythmbox
button = dcc_right
config = seek_forward
end
begin
prog = rhythmbox
button = dcc_left
config = seek_backward
end
end rhythmbox
###############################################
###
### general mode
###
###############################################
#mode
begin
prog = irexec
button = dcc_mode
config = ~/Scripts/lirc-menu.sh &
end
#0
begin
prog = irexec
button = dcc_0
config = ~/Scripts/lirc-mode-0-*.sh &
#maintain current mode
end
#1
begin
prog = irexec
button = dcc_1
config = ~/Scripts/lirc-mode-1-*.sh &
#mode = rhythmbox
mode = banshee
end
#2
begin
prog = irexec
button = dcc_2
config = ~/Scripts/lirc-mode-2-*.sh &
mode = totem
end
#3
begin
prog = irexec
button = dcc_3
config = ~/Scripts/lirc-mode-3-*.sh &
mode = vlc
end
#4
begin
prog = irexec
button = dcc_4
config = ~/Scripts/lirc-mode-4-*.sh &
end
#5
begin
prog = irexec
button = dcc_5
config = ~/Scripts/lirc-mode-5-*.sh &
end
#6
begin
prog = irexec
button = dcc_6
config = ~/Scripts/lirc-mode-6-*.sh &
end
#7
begin
prog = irexec
button = dcc_7
config = ~/Scripts/lirc-mode-7-*.sh &
end
#8
begin
prog = irexec
button = dcc_8
config = ~/Scripts/lirc-mode-8-*.sh &
end
#9
begin
prog = irexec
button = dcc_9
config = ~/Scripts/lirc-mode-9-*.sh &
end