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
== Install ==
<syntaxhighlight lang=bash>
sudo apt-get install lirc
</syntaxhighlight>


== Configure ==
== Configure ==
Line 104: Line 104:
</syntaxhighlight>
</syntaxhighlight>


== Problem starting (outdated)  ==
== 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>
Note: this was not needed for Urbuntu 11.04


== Example event script ==
== Example event script ==


Example ".lircrc":


 
Note: not all supporting scripts are provided.
Example ".lircrc":


<syntaxhighlight lang=bash>
<syntaxhighlight lang=bash>


###############################################
#
###
# Uses by irexec as daemon (irexec -d)
### needs irexec as daemon (irexec -d)
#
###
# - General mode can be found at the bottom.
### General mode can be found at the bottom.
# - To prevent execution within a mode AND the general section use "flags = quit"
### 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:
# run irw in a terminal and press your remote buttons to see what they are
 
# in this file:
# - banshee
# - banshee
# - vlc
# - vlc
# - totem
# - totem
# - rhythmbox
# - rhythmbox
# - general
# - general mode
 


###############################################
# banshee - music player
### banshee - music player
###############################################


begin banshee
begin banshee
Line 189: Line 185:
     end
     end


    #20110925 you will need banshee 2.2 or newer for the following to work
#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
#to obtain xte:
#sudo apt-get install xautomation


#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`
#xte 'key XF86AudioRaiseVolume'
repeat = 0
repeat = 1
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`
#xte 'key XF86AudioLowerVolume'
repeat = 0
repeat = 1
end
end
end banshee


end banshee


###############################################
# vlc - video player
### vlc - video player
###############################################
#
#
# full list of VLC .lirc keys:
# full list of VLC .lirc keys:
Line 364: Line 353:
end
end


# Audio Syncing
# Audio Sync'ing
begin
begin
prog = vlc
prog = vlc
Line 382: Line 371:
end vlc
end vlc


###############################################
# totem - video player
### totem - video player
###############################################


begin totem
begin totem
Line 471: Line 458:
end totem
end totem


###############################################
# rhythmbox - audio player
### 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
### 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 &
#maintain current mode
#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 = rhythmbox
#mode = banshee
mode = banshee
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