This is a utility to allow control of the TiVo display (video and audio). This only affects the output sent to the TV -- it has no effect on what is recorded.

The control uses the IOCTLs discovered and documented by embeem (mbm).

Copyright (C) 2002 Graham R. Cobb. The package is distributed under the GPL (see the copyright notices and the COPYING file).

DISPLAYCTL For TiVo is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

DISPLAYCTL For TiVo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

IMPORTANT NOTES: TiVo is a registered trademark of Tivo, Inc. This software is not created, endorsed, reviewed, approved or in any other way associated with Tivo, Inc.


The DISPLAYCTL distribution contains sources and some informational files as well as the executable: displayctl.

Copy the displayctl executable to a suitable directory on the Tivo (e.g. /var/hack/bin).


Summary usage information can be displayed by invoking dsplayctl with the --help option.

displayctl executes display control commands specified as options, in the order they are specified on the command line. Any error terminates processing immediately -- remaining options are ignored.

Standard options

Expert options

The effects of these options are not completely understood.

Option arguments

Many options take arguments (e.g. on/off or a numeric value). The normal getopt rules for these apply:

Several options take on/off values. The following values are interpreted as on: on, +, true, yes, unblank, unmute, restore, unhide. The following values are interpreted as off: off, -, false, no, blank, mute, remove, hide.


displayctl -v- -s- -t+

Blank video and mute sound, turn on text display

displayctl --pause --text remove

Pause video and hide text overlay.

displayctl -d off

Turn off display.

displayctl --osd-data 1 2 3 4 5 6 --osd-patch 756

Overwwrite 6 bytes of OSD data starting at offset 756.

displayctl --osd-data 1 --osd-length 512 --osd-patch 8

Overwrite 512 bytes of OSD data starting at offset 8. The first byte written will be 1, the remaining bytes will be 0.

displayctl --osd-length 512 --osd-data 1 --osd-patch 8

Overwrite 1 byte of OSD data starting at offset 8. Note that the --osd-data option overrides the previously specified --osd-length. Contrast this with the previous example.

displayctl --osd-data 1 2 --osd-patch 0 --osd-data --osd-length 512 --osd-patch 100

Overwrite 2 bytes of OSD data starting at offset 0. Then overwrite 512 bytes at offset 100 with zeroes. The extra --osd-data is necessary to clear the data from the previous option so that the data buffer will be all zeroes (alternatively --osd-length 0 could have been used).


In version 1.0

Initial release.

In version 1.1

Add OSD stuff.

Return to Graham's TiVo page

This page has been accessed Access counter times.

Graham Cobb