Говорим клиенту:

Клиентская программ (например, ваше графическое приложение) знает, какой дисплей использовать из переменной окружения DISPLAY. Ее можно переопределить, либо использовать аргумент -display hostname:0 во время запуска вашей программы. Рассмотрим это на примере.

Наш компьютер известен в сети как light, в домене uni.verse. Если мы запустим обычный X-сервер, переменная DISPLAY будет равна light.uni.verse:0. Но мы хотим запустить программу для рисования xfig на удаленном компьютере dark.matt.er, а в качестве дисплея использовать машину light.

Полагаю, что вы уже вошли на удаленный компьютер dark.matt.er.

Если вы используете csh в качестве оболочки на нем:

dark% setenv DISPLAY light.uni.verse:0
dark% xfig &

или же:

dark% xfig -display light.uni.verse:0 &

Если вы используете sh в качестве оболочки:

dark$ DISPLAY=light.uni.verse:0
dark$ export DISPLAY
dark$ xfig &

или же:

dark$ DISPLAY=light.uni.verse:0 xfig &

или, конечно же:

dark$ xfig -display light.uni.verse:0 &

Кажется, некоторые версии telnet автоматически передают переменную DISPLAY на удаленный компьютер. Если у вас как раз такая, считайте, что вам повезло, и не надо указывать ее вручную. В противном случае, большинство версий telnet передают переменную окружения TERM; можно установить переменную DISPLAY, основываясь на переменной TERM.

Основная идея состоит в том, чтобы при помощи скрипта сделать следующее: перед запуском telnet, добавляем значение переменной DISPLAY к переменной TERM. На другом конце в скрипте .*shrc устанавливаем значение DISPLAY из переменной TERM.