Зачем графическим программам нужно назначить окно?

Мой вопрос лучше объясняется как сценарий. Представьте, что у вас есть рабочий стол, на котором установлена ​​какая-то форма Linux (я использую arch). Теперь давайте добавим, что на вашем компьютере работает VNC-сервер, предоставляя вам виртуальный рабочий стол.

Я открываю Firefox на своем рабочем столе, а затем заходим в мой vnc, чтобы что-то работать. Если мне нужно что-то сделать в Google, я открою Firefox и получаю сообщение об ошибке, что сеанс уже запущен, поэтому теперь мне нужно закрыть предыдущую сессию Firefox, а затем открыть ее в своем vnc. Если я забуду, что он работает в моем vnc, я должен сделать то же самое, чтобы открыть его на своем рабочем столе.

Я знаю, что есть способы исправить эту конкретную проблему, но это всего лишь пример. Почему (в этом примере) Firefox нужно назначить только одному окну?

Почему Firefox не может быть создан и не назначен для какого-либо конкретного окна, а затем, когда я хочу его на конкретном рабочем столе, он просто загружает его там вместо того, чтобы закрывать и перезапускать его или запускать другой экземпляр? Я полагаю, что лучший способ выразить это: почему графические процессы не запускаются на своем собственном сервере, а затем передаются / перемещаются на любые запрашивающие рабочие столы?

  • Включение растровых шрифтов выборочно в X?
  • Как скопировать и вставить текст, который находится в странном окне (на фото здесь)?
  • Как я могу запустить отдельный сеанс X на другом физическом дисплее?
  • Как я могу снова получить X для автоматического определения характеристик монитора?
  • Как изменить гравитацию (win_gravity) окна?
  • Почему я не могу запускать приложения GUI из «root»: «Не указан протокол»?
  • Ctrl-Alt-F1 не работает с X
  • Значение разных токенов в строке конфигурации шрифта
  • One Solution collect form web for “Зачем графическим программам нужно назначить окно?”

    Программы, которые могут подключаться к нескольким серверам X11 за один раз, очень и очень редки. В основном это специализированные приложения, предназначенные для проверки одного сеанса X11 и отображения результатов на другом, или подобных вещей. Общие приложения практически никогда не поддерживают это. Я не уверен, но я думаю, что многие из клиентских библиотек X11 содержат глобальные переменные и другие различные биты, связанные с предположением, что в каждом процессе будет только одно соединение X11.

    Обычно это не проблема, потому что если вы хотите, чтобы приложение отображалось на двух разных дисплеях, вы просто запускаете две копии. Проблема в том, что Firefox не поддерживает одновременную работу двух копий в одной учетной записи (независимо от того, находятся ли они на одном дисплее или нет).

    Linux и Unix - лучшая ОС в мире.