Оказывается, по крайней мере в Linux 2.6 несуществующие процессы могут удерживать дескрипторы файлов. Я понятия не имею, как, но когда мы принудительно очистили несуществующие процессы sshd, количество дескрипторов снова уменьшилось.
С переменными окружения IM , установленными в моем.xinitrc:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
это сработало после перезагрузки. Я думал, что уже вышел из системы и вошел в нее, но, возможно, этого должно быть достаточно.