roxee - Remote control your Boxee from another computer
roxee [-pudhHv] [-s boxee] [--<jsonrpc|httpapi> port] [X11-specific options]
Pair this program with a Boxee. This operation must be done the first time you connect for the Boxee to develop a relationship with roxee.
Unpair with your Boxee. This option deletes your relationship with your Boxee.
The Boxee likes to crank up the volume to 100% on boot. For some setups, this is very very loud. With this option, if roxee ever finds your system volume to be 100%, it will reset it to this value.
Run in debugging mode. This mode will print a lot of information to the screen. Specifying this option twice will enable debug on the internal JSON implementation.
Specify the Boxee name or IP address to connect. This overrides the Zeroconf behavior and forces the Boxee. This is useful if roxee cannot find your Boxee via Zeroconf, or if you have more than one Boxee.
Specify an alternate port for the JSON RPC protocol to the default 9090
.
You probably don't need to set this.
Specify an alternate port for the HTTPAPI protocol to the default 8800
.
You probably don't need to set this.
Print a program synopsis and exit.
Print the full manual for roxee and exit.
Print a version statement and exit.
roxee is a very simple remote control application for your Boxee. You run this software on any computer and can control various functions of the Boxee, including navigation, volume, etc.
The roxee window is very simple, it consists of a volume meter, the Roxee logo, and a small number of buttons. When the window has focus, the keys entered on the keyboard will be sent as commands to your Boxee. This window is created using the perl(1) Tk module, which must be installed on your system for roxee to function.
The small design of roxee is purposeful. It is designed so you can keep it running in a corner of your window and input keys, control volume, etc. quickly, and at any time. You can run roxee for days and accross reboots of your Boxee, it will reconnect if it needs to.
roxee works by making a socket(3) call to your Boxee and communicating via the published JSON API. This network connection only works if your network allows communication between devices.
To increase portability, roxee implements it's own JSON encoding and decoding routines. These routines are not fully standards conformant, but are sufficient for communicating with the Boxee JSON implementation. These routines are based on the Data::Dumper module which is part of perl-core.
If run in debug mode (using the --debug
command-line options),
roxee will print all method calls and their responses to standard output.
Features which are not available via the standard Boxee GUI (such as volume control in all applications) are always available via roxee. N.B. volume functions are purposely disables in areas of Boxee and changing the volume can sometimes produce negative artifacts in the audio output.
The Boxee has multiple players, and each one can play/pause/skip/etc. roxee will search for active players and send your action requests based on the following order: Picture, Video, Audio
The legacy protocol support (the XBMC HTTP port) is disabled by default in Boxee.
You can enable this functionality by going into the Settings
-> Network
-> Servers
section and check Enable webserver
and make sure the port is set to the default 8800.
If you don't allow this access,
the sending of printable characters will not function.
This means,
no typing into search boxes.
Hopefully this functionality will be added into the Boxee JSON protocol before the XBMC HTTP protocol is disabled.
The bottom of the Roxee window has a set of icons. These can be used if you forget the keyboard shortcuts for actions.
If you have local shares mapped from your Boxee, roxee can browse your shares and play files. roxee opens a new file manager window which allows you to navigate through your shares. With this interface, you can play content without the need to turn on your television.
All standard Tk::Listbox keys apply for navigating through the file manager.
In addition,
and to keep consistancy with the Boxee and roxee
,
the following keys are bound:
Go back
Select an item or enter a sub-directory.
Close the file manager window.
Boxee wants you to use Zeroconf (aka Avahi or Bonjour) to discover their device.
The roxee Zeroconf implementation relies on your system having the dig(1) binary installed.
This program is installed on nearly all Linux systems and on all Mac OSX systems.
If you wish to disable this,
or you do not have the dig(1) program on your system,
use the --server
or -s
command-line options to specify the name or IP address of your boxee.
Doing so will ensure Zeroconf is not attempted.
Part of the Boxee API is a device "ping". This is done upon successful connection with a Boxee to ensure you are talking to the right device. If a successful "ping" response is not received, then roxee will not attempt to pair with whatever it is talking to and will exit.
The first time you run roxee,
you must "pair" it with your Boxee.
This is part of the Boxee API and a requirement for successful remote control.
When you run roxee with the --pair
command-line option,
it will initiate the sequence for your.
You should do this with your Boxee up and visible,
as it will print a 4-digit number on your screen.
You need to enter this 4-digit code into roxee for the pairing to be successful.
roxee waits for you to enter keys and then performs the actions you desire. There are no prompts and you don't have to press enter to send events. Just type into the roxee window, and it will forward your keystrokes. The following keys are supported.
Open a file manager window to navigate and select a file for playback. This action is also available as an icon on the bottom-right corner of the roxee window.
Exit roxee, closing the window.
Using your arrow keys, you can control selected items.
Go back to the Boxee home page.
Toggle Mute.
Volume down. This action is also available as an icon on the bottom of the roxee window.
Volume up. This action is also available as an icon on the bottom of the roxee window.
Go back
Select item or simulate mouse click
Toggle Play/Pause. This action is also available as an icon on the bottom of the roxee window.
Stop playing. This action is also available as an icon on the bottom of the roxee window.
Goto next or previous items in playlist. These actions is also available as icons on the bottom of the roxee window.
Move forward or backward in the current track by 10 seconds.
Leap forward or backward in the current track by one minute.
The left (or otherwise primary) mouse click will send the same event to the Boxee.
Take control of the mouse so motions can be sent to the Boxee.
The cursor will change to help signify the difference in modes.
You will not be able to leave the roxee application until you press the Insert
key again.
send the key, this uses the legacy protocol and only works when it is enabled on your Boxee.
roxee should run forever as long as you don't try to communicate with it while the Boxee is off-line. If you want to exit, enter Control-C or Control-D in the roxee window, and it will exit.
roxee completed successfully.
An invalid command-line option was specified.
roxee could not find your boxee. Try specifying it on the command-line.
Attempts to communicate with the remote device via the Boxee published JSON API failed.
roxee received an error during connection with the Boxee.
You probably need to pair the device with Boxee first.
See the --pair
command-line option for instructions.
William Totten
Copyright (C) 2011 William Totten
License GPLv2: GNU GPL version 2 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
perl, IO::Socket::INET, Tk, http://developer.boxee.tv/JSON_RPC
http://roxee.glaciated.org/