There is a Qt solution for this... and KDE does it (I seem to recall). Perhaps you can find simple solutions there...