Customized Remote Control Keys

From MythTV Official Wiki
Jump to: navigation, search

This page documents remote control tips, hints, and customised remote control buttons. These are generally applicable to all remote control setups. For setup steps and customisations specific to a particular type of remote control see ???

Button Customization

Alt-Tab Emulation

You need to have irexec (lirc-x in debian) running to call external scripts and xdotool running in order to emulate keyboard input. Call the script with:

remote = devinput
prog = irexec
config = /usr/local/bin/ &
repeat = 0
delay = 0

and should be simply:

xdotool key Alt+Tab

Restart Mythtv Button

Give the mythtv user permission to restart mythtv via sudo. Edit /etc/sudoers and add the following line:

mythtv    ALL=NOPASSWD: /etc/init.d/mythbackend

If you are running mythtv as a different user you will change mythtv to the user name you are using.

This sets up sudo so that user mythtv can do "sudo /etc/init.d/mythbackend restart".

Add something like this to the lircrc file in your ~/.mythtv directory (or is it the .lircrc file in your home directory for irexec?) e.g. if user fred runs mythtv on your system this would be /home/fred/.mythtv/lircrc:

# Power Off/Exit
prog = irexec
button = OFF
config = /usr/local/bin/my_myth_restart

Put the following script into /usr/local/bin/my_myth_restart


sudo /etc/init.d/mythbackend restart

Then make it executable with chmod a+x /usr/local/bin/my_myth_restart

From PaulPick in the mythtv mailing list.

Configure power button for DPMS sleep/unsleep

DPMS is useful for avoiding burned-in screen. Most people do not want to use DPMS or screensavers because you need to press a key on the keyboard or move the mouse to wake up the screen once DPMS activates. This is painful if a remote control is normally used to control Mythtv. If you configure the power button on the remote to toggle DPMS on or off then you can avoid burned-in screens.

LIRC can be configured to wake up the Mythtv display from DPMS screen blanking. This is done using a script via irexec. The same button can also be used to make the display go to sleep.

First edit the ~/.lircrc file to include the following stanza. A good Howto and MCE .lircrc file for Fedora Core 4 or 5 you can find here [1]:

    prog = irexec
    button = Power
    repeat = 3
    config = /usr/local/bin/
    #config = Key Alt-Escape CurrentWindow

Note that irexec must be running to make this all work. This can be done via the script, detailed in the main HOWTO Jarod Wilson has written [2], but could be different for other linux distributions such as Debian or SUSE or Ubuntu.

Create a shell script in /usr/local/bin/, called[3]

STATUS=`ps -e | grep $PROG | grep -v grep | wc -l | awk '{print $1}'`

if [ `echo $DISPLAY | grep -c ":0"` -ge 1 ]
    if [ $STATUS -eq 0 ]
        ( $PROG & )

        if [ -a /tmp/mythpowerbutton-off ]
                touch /tmp/mythpowerbutton-on;
                touch /tmp/mythpowerbutton-off;
                sleep 3;
                if [ -a /tmp/mythpowerbutton-on ]
                    rm -rf /tmp/mythpowerbutton-o* && killall $PROG
                rm -rf /tmp/mythpowerbutton-o*
        rm -rf /tmp/mythpowerbutton-o*
exit 0

Make the script executable:

chmod a+x /usr/local/bin/

If there are any other sections in the ~/.lircrc file that are associated with the POWER button, then they should be removed or you may see multiple things happen at once.

Now when the Power button on the remote is pressed, the screen should blank (DPMS on) and with one more press the Mythtv GUI should reappear (DPMS off).

Using xset to control DPMS directly

The script above simply stops and starts the mythfrontend process. You may be able to use "xset" to enable/disable DPMS blanking of the screen.

This will disable Energy Star DPMS and turn on the screen.

xset -dpms dpms force on 

This will re-enable Energy Star DPMS and turn off the screen after 2 minutes of no activity.

xset +dpms dpms 120

Combining DPMS on/off and Launching Myth

This script will do two things, it will act as a power button for your screen, most useful if your using a monitor for a screen that does not have a remote control but does obey the DPMS power on and off commands (most modern LCD's). It will also act as a way to launch mythfrontend in case it has crashed/etc. This was originally written for Mythbuntu to allow it to better be used as a dedicated frontend without requiring a mouse/keyboard.

Create a shell script in /usr/local/bin/, called

MONITORSTAT=`xset q|grep -c Monitor\ is\ On`
DPY=`echo $DISPLAY|sed 's/localhost://'|sed 's/\.\w*$//'`

if [ "$MONITORSTAT" -eq "1" ]; then
        echo "monitor is on!"
        xset -display $DPY dpms force off
elif [ "$MONITORSTAT" -eq "0" ]; then
        echo "monitor is off!"
        xset -display $DPY dpms force on

if [ "$MYTHSTATUS" -eq "0" ]; then
        echo "myth not running!"
        mythfrontend.real -l /var/log/mythtv/mythfrontend.log &
elif [ "$MYTHSTATUS" -eq "1" ]; then
        echo "myth is running!"

Add Repeat to Specific Buttons

By default, buttons will not continually repeat when held down, but must be pressed repeatedly. For common functions, such as scrolling through the program guide, pressing "Down" over and over gets quite annoying. Fortunately, you can add this behavior manually by specifying the "repeat" attribute.

 prog = mythtv
 button = Down
 config = Down
 repeat = 3

The number specified means that every nth instance will be sent. Depending on your system and remote, you may want to increase or decrease this value. (Note: A value of 1 is probably too fast for most situations.)

See Also