Dentro do script, antes que o aplicativo seja iniciado, adicione esta linha:
export DISPLAY=:0.0
Isto diz ao programa que ele tem que rodar no DISPLAY com ID: 0.0 ao invés do terminal onde está sendo chamado, o qual (até onde eu sei) retorna para o TTY7.
Em outras palavras, envia para o ambiente gráfico. Você também pode usá-lo localmente, lançando um programa na área de trabalho a partir de um virtual tty. Eu o uso, por exemplo, quando compiz falha e não há menus ou ícones para reiniciá-lo:
export DISPLAY=:0.0 && compiz --replace