[mythtv-users] User-definable Menu Option?

R. G. Newbury newbury at mandamus.org
Fri Aug 12 19:42:08 UTC 2011


On 08/12/2011 01:56 PM, Raymond Wagner wrote:
> On 8/12/2011 13:43, James MacKenzie wrote:
>> Is there any way that a user-definable menu option could be added to MythTV?
>
> If you're talking about the main menu, yes.  The first two levels of
> menu are defined in XML.  There are a couple packaged "menu themes" to
> choose from, or you can write your own with an EXEC option that calls an
> external command.
>
>> Reason:  I'm using wireless networking, and with the location of things, every
>> once in a while I lose connectivity.

The menu files are in 
/usr/|local/|share/mythtv/themes/classic/tvmenu.xml  or /default/tvmenu.xml

But these just describe the layout of items, and do not control their 
functionality. You would have to delve into the code to add the button 
functionality.

A far easier method requires only a free button on your remotea and a 
script tied to the button. Lirc and your lircrc file make that 
button/script combo available through lirc and irexec.

Since you can ssh into the box, the box is not locking up, so lirc is 
available and so would irexec if it was running. I use a button on my 
remote, to restart mythfrontend when it freezes.

(Gee life was soooo hard when we had to get up and actually walk across 
the room to change channels! </sarc>


Here is the stanza for your lircrc file:

# -------------- Begin section for irexec ------------------
# Red button, starts mythfrontend
begin
     prog = irexec
     button = KEY_POWER
     repeat = 5
     config = /usr/local/sbin/mythpowerbutton.sh
end
# -------------- End section for irexec --------------------

My imon remote uses the devinput conf. You will have to figure out what 
your chosen button maps to in your configuration.


This is the mythpowerbutton script:

**************************************
#!/bin/bash

# check for running mythfrontend
STATUS=`ps -ae | grep mythfrontend | grep -v grep | wc -l | awk '{print 
$1}'`
#echo "Running status = " $STATUS

# check for proper Display
count=`echo $DISPLAY | grep ":0" | wc -l `

if [ $count -ge 1 ] ; then
        # echo "Starting Mythfrontend"
        # if no mythfrontend, then start one
     if [ $STATUS -eq 0 ] ; then
         echo "Starting Mythfrontend"
         /usr/local/bin/mythfrontend -v playback,extra -l 
/var/log/mythfrontend.log &
     else
         # kill all running mythfrontends
         # echo "Killing Mythfrontend"
         pid=`ps -ae | grep mythfrontend | awk '{print $1}'`
         #echo "Running process is   "$pid
         kill -9 $pid;
     fi
fi
*****************************************


And you need to run 'irexec --daemon' on each boot (etc/rc.d/rc.local is 
a good spot). irexec reads ~/.lircrc and reacts only to its own entries.

Just looking at the mythpowerbutton.sh script above, I realize that the 
version which is on the mythbox has a couple of sound effects lines for 
feedback at the end of each branch of the if-else-fi.

IIRC I used 'mplayer /usr/share/sounds/KDE-Sys-App-Positive.ogg'   and 
KDE-Sys-App-Negative.ogg
although .../sounds/kapman/levelup.ogg could work for both.


Geoff
 





              R. Geoffrey Newbury			




More information about the mythtv-users mailing list