Here's the full command set for SageTV as of V1.2.8, sorry for the formatting, I just copied it out of the code:
Code:
LEFT = 2;
RIGHT = 3;
UP = 4;
DOWN = 5;
PAUSE = 6; // s
PLAY = 7; // d
FF = 8; // f
REW = 9; // a
TIME_SCROLL = 10; // g
CHANNEL_UP = 11; // PgUp
CHANNEL_DOWN = 12; // PgDn
VOLUME_UP = 13; // r
VOLUME_DOWN = 14; // e
TV = 15; // v
FASTER = 16; // m
SLOWER = 17; // n
GUIDE = 18; // x
POWER = 19; // z
SELECT = 20; // Enter
WATCHED = 21; // w
RATE_UP = 22; // k
RATE_DOWN = 23; // j
INFO = 24; // i
RECORD = 25; // t
MUTE = 26; //
FULL_SCREEN = 27; // Ctrl-F
HOME = 28; // home
OPTIONS = 29; // o
NUM0 = 30;
NUM1 = 31;
NUM2 = 32;
NUM3 = 33;
NUM4 = 34;
NUM5 = 35;
NUM6 = 36;
NUM7 = 37;
NUM8 = 38;
NUM9 = 39;
SEARCH = 40;
SETUP = 41;
LIBRARY = 42;
POWER_ON = 43;
POWER_OFF = 44;
MUTE_ON = 45;
MUTE_OFF = 46;
AR_FILL = 47;
AR_4X3 = 48;
AR_16X9 = 49;
AR_SOURCE = 50;
VOLUME_UP2 = 51;
VOLUME_DOWN2 = 52;
CHANNEL_UP2 = 53;
CHANNEL_DOWN2 = 54;
PAGE_UP = 55;
PAGE_DOWN = 56;
PAGE_RIGHT = 57;
PAGE_LEFT = 58;
PLAY_PAUSE = 59;
PREV_CHANNEL = 60;
SageTV does support the Girder Event plugin for channel changing, but not for any general OSD support at the moment.