Если Вы запланировали заранее, что Вы хотите получить доступ к одному приложению от нескольких отличающихся X сессий, можно выполнить его в виртуальном X-сервере: отображения приложения в виртуальном X-сервере и виртуальном X-сервере появляются как окно в любом количестве реальных X-серверов.
Одна возможность для виртуального X-сервера является VNC. Запустите vncserver
программа; это создает виртуальный X-сервер и выполнения ~/.vnc/xstartup
, который обычно работает ~/.xinitrc
как startx
. Затем звоните xvncviewer
показать окно, содержащее дисплей виртуального X-сервера. Виртуальный сервер продолжает работать, пока выходы сессии или Вы не работаете vncserver -kill
; можно подключить и разъединить средства просмотра по желанию. Вы, возможно, должны указать число дисплея на командной строке, например. vncserver :3
и xvncviewer :3
. К сессиям VNC можно получить доступ от различных машин, если никакой брандмауэр не мешает: xvncviewer somehost:3
. Существует несколько реализаций серверов VNC и средств просмотра.
Хорошая архитектура должна была бы разделить экран на два окна, один для ввода команд и один для дисплея программы. Это в основном, что сделал бы нормальный клиент MUD. Можно сделать это на Экране с split
команда (C-a S
).
Создайте именованный канал для передачи входа от входного окна до окна telnet: mkfifo mud-input-fifo
. В одном из Windows, запущенных telnet mud.example.com 1234 <mud-input-fifo
или nc mud.example.com 1234 <mud-input-fifo
(nc
netcat, швейцарский нож сетей). В другом окне, выполненном rlwrap tee mud-input-fifo
(rlwrap предоставляет выпуск строки любой входной программе строки).
Emacs мог сделать это также. Но Вы закончили бы тем, что реализовали клиент MUD в Emacs, который был сделан прежде (mu.el
, mud.el
, mudel.el
, eMUDs, …).
Это не делает то, что Вы спрашиваете, но во многих системах (включая Linux и большую часть BSDs), можно установить ключ для "rprnt" действия:
stty rprnt '^R'
и нажатие клавиши, в то время как в программе, которая использует tty драйвер для входной обработки [который я думаю, telnet делает, когда Вы подключены к необработанному сервису как это], заставит входную строку вновь отображать на следующей строке
Таким образом, Ваш экран будет похож:
SERVER PROMPT> your text your text your text your textOUTPUT FROM SERVER^R
your text your text your text your text your text_
Кроме того, необходимо будет получить настоящий клиент MUD как tinyfugue.