Add a shut down button to Boxee

Boxee exit menu buttonsHaving a nettop like the Acer Aspire Revo running Ubuntu and Boxee is a great addition to the living room. One thing that I have been meaning to do for a while though is add a proper way to shut the unit down from the remote control when I have finished using it. Walking across the room and using the power button just doesn't seem to be appropriate for a set top box experience! I followed the instructions I found on the Boxee forum to add this feature, but instead of changing the Suspend button into a power off button I decided to add a new button to the log out dialogue. Fortunately this was quite a straightforward procedure.

To add the new button you need to edit a file named DialogButtonMenu.xml which is located under the directory: /opt/boxee/skin/boxee/720p, but before you do so make a back up in case things go wrong.

sudo nano /opt/boxee/skin/boxee/720p/DialogButtonMenu.xml

The file is of course in XML format so be careful to check that you have matching start and end tags. Towards the end of this file is a section that defines the list of items you see in the exit menu. It looks like this:

  <content>
    <item id="11">
      <label>54060</label>
      <onclick>XBMC.ShutDown()</onclick>
      <thumb>icons/icon_dialog_exit.png</thumb>
    </item>
    <item id="12">
      <label>54061</label>
      <onclick>XBMC.Logout()</onclick>
      <thumb>icons/icon_dialog_change_user.png</thumb>
    </item>
    <item id="13">
      <label>54062</label>
      <onclick>XBMC.Suspend()</onclick>
      <thumb>icons/icon_dialog_suspend.png</thumb>
    </item>
</content>

The new button can be added by inserting a new bit of xml below the last item entry which was for the Suspend button, but before the line that says . It will need to look like this:

  <item id="14">
    <label>SWITCH OFF</label>
    <onclick>XBMC.Powerdown()</onclick>
    <thumb>icons/icon_dialog_suspend.png</thumb>
  </item>

You will notice that the other labels have a number whereas this one has text. The reason for this is that the numbers refer to text values that can be inserted depending on the language being used for the device. As I only need an English language front end on my Boxee system I just put some English text in, but you can change it to whatever makes sense to you.

One last job is to fix the positions of the items. If we use the menu now the new Switch off button will not fit in the dialogue box, it will fall out of the right hand side so we need to move all of the buttons to the left. To do this find the line in the DialogButtonMenu.xml file that says:


  <control id="10" type="list">

Below it is a line that will say:

<posx>96</posx>

Change this to a new value to make everything fit:

<posx>36</posx>

Save the file and you should now be able to power off the box using the new button.

References:

Shutdown on Exit, Boxee Forum: http://forums.boxee.tv/showthread.php?t=11947
List of built in functions, XBMC Wiki: http://wiki.xbmc.org/?title=List_of_Built_In_Functions

Add new comment

Comments are always very welcome, but please note the following:
  • Sadly due to the high number of spam comments recently all comments are now manually moderated. You comment will therefore not appear on the site instantly.
  • Comments on this web site are monitored for spam using Mollom. By posting a comment, you accept that your message and other personal details about you will be analysed and stored for anti-spam and quality monitoring purposes, in accordance with Mollom's privacy policy.
  • Please use your own name not a company or website name to submit comments. Your comment will be removed if you don't do this.
  • All links in comments will be marked with a no follow attribute. That means posting a link to your site here won't help your search engine rankings.
  • By submitting a comment you agree that your comment can be reproduced under the same licensing terms as the rest of the content on the site.
  • Comments can be removed at any time without explanation, but won't be removed just because you disagreed with something I said.