Tente colocar a definição da variável em .profile em vez de .bashrc . Este último tem uma instrução perto do topo que faz com que ele saia muito cedo quando executado por um shell não interativo. Saia e volte a ver para ver se funciona.
Também não se esqueça de adicionar export da seguinte forma:
export TMPDIR="$HOME/tmp"
Se isso não funcionar, modifique o lançador (está em /usr/share/applications ) para que a linha Exec diga:
Exec=sh -c 'TMPDIR="$HOME/tmp" emacs'