LIRC Infrared Remote Control: Difference between revisions
From WickyWiki
No edit summary |
|||
| Line 2: | Line 2: | ||
[[Category:Ubuntu Remote]] | [[Category:Ubuntu Remote]] | ||
[[Category:2009]] | [[Category:2009]] | ||
== Install == | |||
* https://help.ubuntu.com/community/LIRC | * https://help.ubuntu.com/community/LIRC | ||
<syntaxhighlight lang=bash> | |||
sudo apt-get install lirc | |||
</syntaxhighlight> | |||
Important files: | Important files: | ||
| Line 10: | Line 17: | ||
* /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 | ||
== Configure == | == Configure == | ||
| Line 104: | Line 104: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Problem starting | == Problem with automatically starting at boot == | ||
Note: don't change anything if you don't have this problem | |||
Problem to start lirc at boot, modules load fine, daemon fails | Problem to start lirc at boot, modules load fine, daemon fails | ||
| Line 120: | Line 122: | ||
sudo gedit /etc/init.d/lirc | sudo gedit /etc/init.d/lirc | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Example event script == | == Example event script == | ||
Example ".lircrc": | |||
Note: not all supporting scripts are provided. | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
# | |||
# | # Uses by 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 most software you need to enable the lirc remote plugin | ||
# | |||
# In this file: | |||
# | |||
# - banshee | # - banshee | ||
# - vlc | # - vlc | ||
# - totem | # - totem | ||
# - rhythmbox | # - rhythmbox | ||
# - general | # - general mode | ||
# banshee - music player | |||
begin banshee | begin banshee | ||
| Line 189: | Line 185: | ||
end | end | ||
#20110925 there seems to be a bug so the following does not work | |||
begin | begin | ||
prog = irexec | prog = irexec | ||
| Line 201: | Line 197: | ||
config = banshee --set-position=`banshee --query-position | sed 's/.*: /-10+/'|bc` | config = banshee --set-position=`banshee --query-position | sed 's/.*: /-10+/'|bc` | ||
end | end | ||
#volume up | #volume up | ||
| Line 210: | Line 203: | ||
button = dcc_counter_reset | button = dcc_counter_reset | ||
config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /10+/'|bc` | config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /10+/'|bc` | ||
repeat = 0 | |||
repeat = | |||
end | end | ||
| Line 219: | Line 211: | ||
button = dcc_time | button = dcc_time | ||
config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /-10+/'|bc` | config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /-10+/'|bc` | ||
repeat = 0 | |||
repeat = | |||
end | end | ||
end banshee | |||
# vlc - video player | |||
# | # | ||
# full list of VLC .lirc keys: | # full list of VLC .lirc keys: | ||
| Line 364: | Line 353: | ||
end | end | ||
# Audio | # Audio Sync'ing | ||
begin | begin | ||
prog = vlc | prog = vlc | ||
| Line 382: | Line 371: | ||
end vlc | end vlc | ||
# totem - video player | |||
begin totem | begin totem | ||
| Line 471: | Line 458: | ||
end totem | end totem | ||
# rhythmbox - audio player | |||
begin rhythmbox | begin rhythmbox | ||
| Line 509: | Line 494: | ||
repeat = 3 | repeat = 3 | ||
end | end | ||
begin | begin | ||
| Line 560: | Line 544: | ||
end rhythmbox | end rhythmbox | ||
# general mode | |||
#mode | #mode | ||
| Line 570: | Line 551: | ||
prog = irexec | prog = irexec | ||
button = dcc_mode | button = dcc_mode | ||
config = ~/Scripts/lirc-menu.sh & | config = ~/Scripts/lirc/lirc-menu.sh & | ||
end | end | ||
| Line 578: | Line 559: | ||
prog = irexec | prog = irexec | ||
button = dcc_0 | button = dcc_0 | ||
config = ~/Scripts/lirc-mode-0-*.sh & | config = ~/Scripts/lirc/lirc-mode-0-*.sh & | ||
# | #mode=unchanged | ||
end | end | ||
| Line 586: | Line 567: | ||
prog = irexec | prog = irexec | ||
button = dcc_1 | button = dcc_1 | ||
config = ~/Scripts/lirc-mode-1-*.sh & | config = ~/Scripts/lirc/lirc-mode-1-*.sh & | ||
#mode = | #mode = banshee | ||
mode = | mode = rhythmbox | ||
end | end | ||
| Line 595: | Line 576: | ||
prog = irexec | prog = irexec | ||
button = dcc_2 | button = dcc_2 | ||
config = ~/Scripts/lirc-mode-2-*.sh & | config = ~/Scripts/lirc/lirc-mode-2-*.sh & | ||
mode = totem | mode = totem | ||
end | end | ||
| Line 603: | Line 584: | ||
prog = irexec | prog = irexec | ||
button = dcc_3 | button = dcc_3 | ||
config = ~/Scripts/lirc-mode-3-*.sh & | config = ~/Scripts/lirc/lirc-mode-3-*.sh & | ||
mode = vlc | mode = vlc | ||
end | end | ||
#4 | #4 toggle media server | ||
begin | begin | ||
prog = irexec | prog = irexec | ||
button = dcc_4 | button = dcc_4 | ||
config = ~/Scripts/lirc-mode-4-*.sh & | config = ~/Scripts/lirc/lirc-mode-4-*.sh & | ||
#mode=unchanged | |||
end | end | ||
#5 | #5 toggle remote desktop | ||
begin | begin | ||
prog = irexec | prog = irexec | ||
button = dcc_5 | button = dcc_5 | ||
config = ~/Scripts/lirc-mode-5-*.sh & | config = ~/Scripts/lirc/lirc-mode-5-*.sh & | ||
#mode=unchanged | |||
end | end | ||
#6 | #6 random quote | ||
begin | begin | ||
prog = irexec | prog = irexec | ||
button = dcc_6 | button = dcc_6 | ||
config = ~/Scripts/lirc-mode-6-*.sh & | config = ~/Scripts/lirc/lirc-mode-6-*.sh & | ||
#mode=unchanged | |||
end | end | ||
#7 | #7 monitor off | ||
begin | begin | ||
prog = irexec | prog = irexec | ||
button = dcc_7 | button = dcc_7 | ||
config = ~/Scripts/lirc-mode-7-*.sh & | config = ~/Scripts/lirc/lirc-mode-7-*.sh & | ||
#mode=unchanged | |||
end | end | ||
#8 | #8 rsync backup notify | ||
begin | begin | ||
prog = irexec | prog = irexec | ||
button = dcc_8 | button = dcc_8 | ||
config = ~/Scripts/lirc-mode-8-*.sh & | config = ~/Scripts/lirc/lirc-mode-8-*.sh & | ||
#mode=unchanged | |||
end | end | ||
#9 | #9 toggle metacity | ||
begin | begin | ||
prog = irexec | prog = irexec | ||
button = dcc_9 | button = dcc_9 | ||
config = ~/Scripts/lirc-mode-9-*.sh & | config = ~/Scripts/lirc/lirc-mode-9-*.sh & | ||
#mode=unchanged | |||
end | end | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 15:05, 24 December 2012
Install
sudo apt-get install 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
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
I use this for notifications with remote events.
sudo apt-get install libnotify-bin
notify-send -t 6000 -i ~/Scripts/lirc.ico "Remote"
Problem with automatically starting at boot
Note: don't change anything if you don't have this problem
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
Example event script
Example ".lircrc":
Note: not all supporting scripts are provided.
#
# Uses by 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 most software you need to enable the lirc remote plugin
#
# In this file:
# - banshee
# - vlc
# - totem
# - rhythmbox
# - general mode
# 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
#volume up
begin
prog = irexec
button = dcc_counter_reset
config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /10+/'|bc`
repeat = 0
end
#volume down
begin
prog = irexec
button = dcc_time
config = banshee --set-volume=`banshee --query-volume | sed 's/.*: /-10+/'|bc`
repeat = 0
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/lirc-menu.sh &
end
#0
begin
prog = irexec
button = dcc_0
config = ~/Scripts/lirc/lirc-mode-0-*.sh &
#mode=unchanged
end
#1
begin
prog = irexec
button = dcc_1
config = ~/Scripts/lirc/lirc-mode-1-*.sh &
#mode = banshee
mode = rhythmbox
end
#2
begin
prog = irexec
button = dcc_2
config = ~/Scripts/lirc/lirc-mode-2-*.sh &
mode = totem
end
#3
begin
prog = irexec
button = dcc_3
config = ~/Scripts/lirc/lirc-mode-3-*.sh &
mode = vlc
end
#4 toggle media server
begin
prog = irexec
button = dcc_4
config = ~/Scripts/lirc/lirc-mode-4-*.sh &
#mode=unchanged
end
#5 toggle remote desktop
begin
prog = irexec
button = dcc_5
config = ~/Scripts/lirc/lirc-mode-5-*.sh &
#mode=unchanged
end
#6 random quote
begin
prog = irexec
button = dcc_6
config = ~/Scripts/lirc/lirc-mode-6-*.sh &
#mode=unchanged
end
#7 monitor off
begin
prog = irexec
button = dcc_7
config = ~/Scripts/lirc/lirc-mode-7-*.sh &
#mode=unchanged
end
#8 rsync backup notify
begin
prog = irexec
button = dcc_8
config = ~/Scripts/lirc/lirc-mode-8-*.sh &
#mode=unchanged
end
#9 toggle metacity
begin
prog = irexec
button = dcc_9
config = ~/Scripts/lirc/lirc-mode-9-*.sh &
#mode=unchanged
end