LIRCMD is the LIRC mouse daemon. This can be used to use your ir remote as a mouse.
First you have to know that to use ANY mouse in x11, you have to add it to your xorg.conf.
Add these lines to your xorg.conf:
Section "InputDevice" Identifier "Remote" Driver "mouse" Option "Protocol" "IntelliMouse" Option "SendCoreEvents" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection
Next you have to load the correct driver to make it work. Add to the file /etc/modules the entry:
Create a new file /etc/udev/rules.d/55-uinput with one line:
Now you must tell lirc to start the mouse daemon and where the config file is. Edit your /etc/lirc/hardware.conf to have these settings:
Here is an example file:
# /etc/lirc/hardware.conf # #Chosen Remote Control REMOTE="Packard Bell receiver" REMOTE_MODULES="lirc_dev lirc_serial" REMOTE_DRIVER="" REMOTE_DEVICE="/dev/lirc0" REMOTE_SOCKET="" REMOTE_LIRCD_CONF="packard_bell/lircd.conf.packard_bell" REMOTE_LIRCD_ARGS="" #Chosen IR Transmitter TRANSMITTER="None" TRANSMITTER_MODULES="" TRANSMITTER_DRIVER="" TRANSMITTER_DEVICE="" TRANSMITTER_SOCKET="" TRANSMITTER_LIRCD_CONF="" TRANSMITTER_LIRCD_ARGS="" #Enable lircd START_LIRCD="true" #Don't start lircmd even if there seems to be a good config file START_LIRCMD="true" #Try to load appropriate kernel modules LOAD_MODULES="true" # Default configuration files for your hardware if any LIRCMD_CONF="/etc/lirc/lircmd.conf" #Forcing noninteractive reconfiguration #If lirc is to be reconfigured by an external application #that doesn't have a debconf frontend available, the noninteractive #frontend can be invoked and set to parse REMOTE and TRANSMITTER #It will then populate all other variables without any user input #If you would like to configure lirc via standard methods, be sure #to leave this set to "false" FORCE_NONINTERACTIVE_RECONFIGURATION="false"
Create a new file /etc/lirc/lircmd.conf. You have to tell lirc which buttons will move the cursor what direction. use irw to determine your button names if you need. Also note the TOGGLE_ACTIVATE is the button you will push to turn on and off your mouse capabilities of your remote. You must push this button before the other buttons will command the cursor, and you must push it again for these buttons to have their regular usage.
# # lircmd config file # PROTOCOL IntelliMouse # ACCELERATOR start max multiplier ACCELERATOR 2 30 5 TOGGLE_ACTIVATE * Go MOVE_N * 2 MOVE_NE * 3 MOVE_E * 6 MOVE_SE * 9 MOVE_S * 8 MOVE_SW * 7 MOVE_W * 4 MOVE_NW * 1 MOVE_IN * CH+ MOVE_OUT * CH- #BUTTON1_TOGGLE * 5 #BUTTON1_TOGGLE * RADIO #BUTTON2_TOGGLE * VOL+ #BUTTON3_TOGGLE * SOURCE BUTTON1_CLICK * 5 BUTTON1_CLICK * Asterix BUTTON3_CLICK * \# # BUTTONx_CLICK, BUTTONx_UP, BUTTONx_DOWN are also possible
There is an issue with the init script in Ubuntu. There is no way to pass arguments to the lircmd daemon at start up. We need to start it with the --uinput flag. to do this you need to edit /etc/init.d/lirc. Note: line 194 added " -- --uinput".
191 if [ "$START_LIRCMD" = "true" ]; then 192 [ -d "/var/run/lirc" ] || mkdir -p "/var/run/lirc" 193 log_daemon_msg "Starting remote control mouse daemon : LIRCMD " 194 start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/lircmd -- --uinput < /dev/null 195 log_end_msg $? 196 fi
After this is changed restart your lirc daemon and look to see a message that the lircmd has been started:
tom@desktop /etc/init.d $ sudo service lirc restart
* Stopping remote control mouse daemon: LIRCMD [fail] * Stopping remote control daemon(s): LIRC [ OK ] * Loading LIRC modules [ OK ] * Starting remote control daemon(s) : LIRC [ OK ] * Starting remote control mouse daemon : LIRCMD [ OK ]