посмотри как это в mc делается, там просто перехватывается клавиатурное событие иксового-окна, id окна терминала можно узнать из переменной окружения WINDOWID...
жалко....
но есть выход, посмотрел код мс, там запрашивается состояние модификаторов у root-окна. те код выглядит примерно так:
dpy = XOpenDisplay(NULL);
win = DefaultRootWindow(dpy);
и дальше зовётся XQueryPointer, вот вроде и всё