From Amarok Wiki

IRman

Use the IRman Controller script.

Another easy way to get remote control on Amarok with IRman is to get a copy of uird, and use learn-mode to associate the keys you want with the Amarok DCOP Functions and save this as your uird.conf file.

This is very simple to set up (in fact, shockingly so). Here's the procedure:

  1. Hook up your IRman to /dev/ttySxx
  2. Download the uird tar ball
  3. unpack the tar ball using: tar tzf uird-1.1.tgz
  4. cd uird; make
  5. ./uird -L -t /dev/ttySxx
  6. follow the prompts to teach uird what to do for your remote buttons using the Amarok DCOP documentation for a reference how to make Amarok do things for you.
  7. start up uird as ./uird -N -t /dev/ttySxx -f uird.conf -p NONE and test your remote control functions.


An annotated sample uird.conf file is shown below:

 #
 # NAD 450 remote control (came with their C470 receiver)
 #
 #       This control controls most NAD stereo components from a few years back.
 #       We map the buttons for the CD player and dual tape deck
 #       into Amarok things
 #
 #       CD player buttons
 225-62-82-173-0-0: dcop amarok player pause
 225-62-64-191-0-0: dcop amarok player stop
 225-62-128-127-0-0: dcop amarok player playPause
 225-62-96-159-0-0: dcop amarok player next
 225-62-160-95-0-0: dcop amarok player prev
 #       Map the "Next disc" button to toggle the playlist
 225-62-232-23-0-0: dcop amarok playlist togglePlaylist
 #
 #       Tape Deck A controls:
 #               Reverse Direction button - skip 5 seconds back
 225-62-42-213-0-0: dcop amarok player seekRelative -5
 #               Forward Direction button - skip 5 seconds forward
 225-62-202-53-0-0: dcop amarok player seekRelative 5
 #
 #       Tape Deck B controls:
 #               Reverse Direction button - skip 10 seconds back
 225-62-123-132-0-0: dcop amarok player seekRelative -10
 #               Forward Direction button - skip 10 seconds forward
 225-62-57-198-0-0: dcop amarok player seekRelative 10

Lirc

A homebrew IR-receiver box using the schematics from The LIRC Project will also work. What you'll need to do is to install lircd and setup your /etc/lircd.conf. This is described in the Lirc Documentation. Then you'll have to define what you want the remote to do. This is specified in your ${HOME}/.lircrc file.

Here is a section of my .lircrc file, it is designed to use the Hauppauge remote control, but you can change it to use whatever remote you got.

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Play
 config = dcop amarok player play
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Stop
 config = dcop amarok player stop
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Pause
 config = dcop amarok player playPause
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Vol-
 repeat = 2
 config = dcop amarok player volumeDown 
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Vol+
 repeat = 2
 config = dcop amarok player volumeUp
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Forward
 repeat = 3
 config = dcop amarok player seekRelative 5
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Rewind 
 repeat = 3
 config = dcop amarok player seekRelative -5
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Blank
 config = dcop amarok playlist clearPlaylist
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Mute
 config = dcop amarok player mute
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Skip
 repeat = 3
 config = dcop amarok player next
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Replay
 repeat = 3
 config = dcop amarok player prev
end

begin
 prog = irexec
 remote = hauppauge_pvr
 button = Full
 repeat = 3
 config = dcop amarok player showOSD
end

When all this is done you'll need to make sure that the lircd and irexec is running.

lircd is a system process and it is started with /etc/init.d/lircd (gentoo). irexec should not be run as root, the best thing is to autostart it with your desktop.

Here are a couple more interesting remote control recipes. The first one programs an Internet radio station to the remote control button "1"; substitute the name you've given to the radio stream in Amarok accordingly. The second recipe is for text-to-speech synthesis of the currently playing song using Festival -- useful for checking out the name of a good song when your monitor is off.

begin
	remote = SONY
	button = 1
	prog = irexec
	config = dcop amarok playlistbrowser loadPlaylist '1. ETN.fm (Trance)'; sleep 3; dcop amarok player play
end

begin
	remote = SONY
	button = recall
	prog = irexec
	config = prev_volume=`dcop amarok player getVolume`; dcop amarok player setVolume `expr $prev_volume / 3`; (dcop amarok player artist; echo '  '; dcop amarok player title) | text2wave -F 44100 -scale 3  | aplay; dcop amarok player setVolume $prev_volume
end

IRKick

To be completed