github.com/euroelessar/qutim/tree/master/core/src/corelayers/idledetector
Здесь имеется рабочий код для Windows/MacOS X/X11, протестировано, работает, апи на Qt :)
Изначально взято из Psi, потом немного доработано. Более общего решения не существует, только реализации под конкретную платформу