The QuickKeyboard (QK) is a TiVo Keyboard widget by David Blackledge that is extensible and is designed to support handlers that allow quick entry via the TiVo Remote. Generally, handlers are defined to allow key selection with two button presses on the remote.
QK also provides the ability to move a cursor through your text to edit/insert.
QK is designed to be used with a number of included handlers as well as programmer-defined handlers of other kinds. Programmers can define what the keyboard layout is, what the user's button press cues are, and additional cues which can change with every button press. Each button press can set a character or a proposed character or a string of characters.
Included handlers (in the "handlers" subpackage):

- Quadrants - the original inspiration - the keyboard is divided into quadrants. The first keypress selects the quadrant, the second keypress chooses an item within the quadrant.
- RowColumn - The keyboard is displayed as a grid with keys down the side and across the top. The first keypress is a row selection, the second keypress is a column selection. The keyboard is layed out such that 01=a and 26=z to create a useful mental map.
- Texting - telephone / texting style: keep pressing 2 to go through a,b,c,2, etc. Press another key to commit that one and start selecting another.
- TextingRowColumn - a grid of the Texting keys where you first press the number you would use in the Texting keyboard, then you press the position in that key's list to select the actual character (21=a, 22=b)
- Directional - like the traditional keyboard, but uses the numbers to define directions and selection. The major advantage is that you can move diagonally with 1, 3, 7, and 9.

You can cycle through known keyboards with the Record key. (programmers can register theirs in the list). Future possibilities:

- Dictionary text completion - handlers are allowed to give more than one character as the possible completion "character", so it could be the rest of a matching likely word. Ideally this will be supported at the main QK level, rather than via a handler.
- Preferences - at least memory of the last-used keyboard so it will be selected the next time a user is prompted with a QK anywhere on that server.