LIRC Infrared Remote Control: Difference between revisions
mNo edit summary |
mNo edit summary |
||
| Line 3: | Line 3: | ||
[[Category:2009]] | [[Category:2009]] | ||
== | == Sources == | ||
* http://www.lirc.org | |||
* https://help.ubuntu.com/community/LIRC | * https://help.ubuntu.com/community/LIRC | ||
* http://ubuntuforums.org/showthread.php?t=2151195 | * http://ubuntuforums.org/showthread.php?t=2151195 | ||
== Install == | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
| Line 47: | Line 50: | ||
</blockquote> | </blockquote> | ||
Setup serial port for use with LIRC: | |||
<syntaxhighlight lang=bash> | |||
sudo setserial /dev/ttyS0 uart none | |||
</syntaxhighlight> | |||
Restart LIRC services: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
sudo | sudo service lirc restart | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Test raw remote output: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
sudo mode2 --device=/dev/lirc0 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Note: never have had the 'home brew' transmitter working. | |||
== Assign keys == | |||
Record buttons: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
sudo | irrecord --list-namespace | ||
sudo irrecord --disable-namespace --device=/dev/lirc0 lircremote.conf | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Recording keys does not work very well, you better try to find the conf file for your remote on the internet ad place its contents in this file: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
sudo | sudo gedit /etc/lirc/lircd.conf | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Test | Test remote keys pressed: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
sudo | sudo irw /dev/lircd | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Configure commands == | |||
Configure events, this file is used by the irexec daemon: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
gedit ~/.lircrc | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Start irexec deamon, you could make this start automatically: | |||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
irexec -d | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Notifications == | == Notifications == | ||
Revision as of 07:44, 16 August 2014
Sources
- http://www.lirc.org
- https://help.ubuntu.com/community/LIRC
- http://ubuntuforums.org/showthread.php?t=2151195
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="" ...
Setup serial port for use with LIRC:
sudo setserial /dev/ttyS0 uart none
Restart LIRC services:
sudo service lirc restart
Test raw remote output:
sudo mode2 --device=/dev/lirc0
Note: never have had the 'home brew' transmitter working.
Assign keys
Record buttons:
irrecord --list-namespace sudo irrecord --disable-namespace --device=/dev/lirc0 lircremote.conf
Recording keys does not work very well, you better try to find the conf file for your remote on the internet ad place its contents in this file:
sudo gedit /etc/lirc/lircd.conf
Test remote keys pressed:
sudo irw /dev/lircd
Configure commands
Configure events, this file is used by the irexec daemon:
gedit ~/.lircrc
Start irexec deamon, you could make this start automatically:
irexec -d
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 Syncing
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