Tente exportar a variável DISPLAY
para sessões X existentes.
Supondo que seja :0
, inclua o seguinte no início do seu script (bem, pelo menos antes de executar qualquer comando relacionado ao X).
export DISPLAY=":0"
Eu acho que você também pode precisar conceder autorização para o host local, executando o seguinte em um dos seus terminais X existentes. (Eu estou supondo que é você, e só você neste sistema, se não, isso dará a outros usuários locais acesso ao seu monitor X)
xhost +localhost
Já faz um tempo desde que eu realmente toquei com X, então espero que alguém possa vir e me corrigir.