mentre se faccio un: su utente -c programma il programma si avvia.
fai 'su utente - c programma' da dove? da terminale grafico o da console?perche' nel primo caso hai gia' il DISPLAY impostato, mentre nel secondo devi mipostarlo
DISPLAY=:0 programma e poi il 'su' lo puoi usare anche da cron... o ancora meglio (imho) usa uno script d'avvio