Нужен ли X-клиент для работы оконного менеджера?

32

Нужен ли X-клиент для работы оконного менеджера? Может ли X-клиент работать только с X-сервером?

Если у X-клиента нет окна , нужен ли ему оконный менеджер?

Если X-клиент может работать без оконного менеджера, обязательно ли у X-клиента нет окна?

Спасибо.

Тим
источник
4
Когда я впервые столкнулся с X, то есть довольно давно, тот факт, что вам не нужен оконный менеджер, обсуждался в большинстве вводных материалов. Похоже, что это не так в наши дни, но я полагаю, что кто-то может подумать, что это очевидно или пример лени.
dmckee
11
@Tim: Вы, кажется, были достаточно долго, чтобы знать, что понижение не предназначено для того, чтобы передавать «ненависть», «злобу», «жестокость», «дискриминацию» или что-то в этом роде. Понижение - это просто система оценки контента , и некоторые материалы менее ценны, чем другие. (Кстати, я не понизил этот вопрос: я думаю, что этот вопрос великолепен.) См. Также: Можем ли мы сделать более очевидным для новых пользователей, что понижение рейтинга на основном сайте не является оскорблением и фактически может помочь им помочь самим себе? ? на переполнении стека мета.
Даниэль Приден
5
@Tim Некоторые из ваших опровергнутых вопросов кажутся мне бесполезными. Пользовательский интерфейс (альтернативный текст кнопки) поощряет пользователей понижать число «бесполезных» вопросов. Ненависть не является обязательным компонентом. Добавление небольшого намека / утверждения о том, что вопрос может быть потенциально использован в некотором сценарии (даже если он очень незначителен / маловероятен), в основном предотвратит эту реакцию коленного рефлекса. Ваши вопросы, которые я видел, удивительно похожи в том, что в них нет ни одного такого намека / утверждения.
Кубанчик
3
Тим, модераторы бриллиантов имеют доступ к некоторым инструментам, которые обнаруживают шаблон голосования. Отметьте их и попросите, чтобы они изучили это. / мод на физике.se
dmckee
1
Части вашего вопроса кажутся неграмотными. Хуже всего кажется, что «может ли он работать, нужен оконный менеджер?».
hkBst

Ответы:

26

Нет. Хорошо написанным приложениям не нужен оконный менеджер.

Но некоторые «современные» неработающие приложения не будут работать нормально без оконного менеджера (например, Firefox и его адресные строки, которые не будут выпадать [1]).

Многие другие приложения низкого уровня не только предполагают наличие оконного менеджера, но и добавляют оскорбление травме, щелкая, чтобы сфокусировать оконный менеджер. Например, раньше было то, что любое Java-приложение просто сфокусировало бы внимание на запуске.

Если вы хотите протестировать, установите Xephyr(«вложенный» сервер X11), запустите его Xephyr :1, а затем запустите ваши приложения DISPLAY=:1в их среде.

[1] «Потрясающая панель» Firefox не будет открывать панель предложений при вводе или нажатии кнопки истории, если не запущен менеджер окон. Меню автоматического скрытия тоже не будет работать.

mosvy
источник
Есть ли открытая ошибка в Firefox для упомянутой вами проблемы? Я думаю, что открытый исходный код firefox хотел бы исправить ошибку для этой проблемы.
t3dodson
4
@ t3dodson Вы можете попробовать отправить его, но весьма сомнительно, что кто-нибудь захочет просмотреть исправление, исправляющее это. Запуск Firefox на самом деле не поддерживается без оконного менеджера, менеджера сеансов и, в последнее время, работающего сервера pulaudio. Конечно, вы можете его разветвлять, но я не желал бы поддерживать развилку Firefox для своего злейшего врага ;-)
mosvy
Imo любой ответ на эту тему не является полным без упоминания Xephyr. +1
Руи Ф. Рибейро
38

Нет, вам не нужно запускать оконный менеджер, чтобы позволить X-клиенту работать. Некоторые системы предоставляют возможность просто запустить терминал при запуске, и с этого момента вы можете запускать дополнительные программы, в том числе оконные менеджеры. Некоторые настройки киоска, которые хотят запускать только одно приложение, не нуждаются в оконном менеджере. Некоторые реализации X для окон Microsoft избегают диспетчера окон X, позволяя ОС управлять окнами.

Без оконного менеджера вам обычно нужно указывать геометрию для программ, чтобы у вас не было всего, что помещено в верхний левый угол.

В X оконный менеджер - это просто еще один X-клиент. В то время это было необычно, но облегчало использование разных оконных менеджеров.

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

Икар
источник
2
Подсказка: есть инструмент под названием xwit, который действительно помогает при экспериментировании с конфигурациями без wm.
rackandboneman
7

Оконный менеджер удобен для пользователей.

В старые добрые времена у меня был ~/.Xclientsфайл, который гласил:

#!/bin/sh

HOST=`uname -n | sed 's/\..*$//'`

xv -root -rmode 5 $HOME/misc/millennium/theme/Wallpaper.gif -quit &

xterm -geometry 80x24+0+85 \#52x71-104+0 -n $HOST -T $HOST &
xterm -geometry 80x24+510+429 \#52x71-52+0  -n $HOST -T $HOST &
xclock -digital -update 1 -geometry +1059+982 &
xscreensaver -nosplash &
exec /usr/local/lib/X11/fvwm/fvwm

Этот файл будет запущен, когда я запустил X с startx. Когда этот сценарий завершится, X-сервер отключится.

Обратите внимание на последнюю строку: exec .../fvwm. Это строка, которая запустила мой оконный менеджер (fvwm). Все предыдущие приложения ( xv, xterm, xclock, xscreensaver) были запущены до начала оконного менеджера. Поскольку вызов to fvwmбыл последней строкой, а не помещался в фоновом режиме, это означало, что после fvwmзавершения X X закроется.

У запуска X даже был «запасной вариант» по умолчанию ... если файлов конфигурации не было, запускайте X с одним xtermзапуском. Закрытие, xtermкоторое закончило бы X сессию.

Стивен Харрис
источник
В чем было преимущество отсутствия фонового fvwm?
Алекс Хайнал
1
Нам нужно, чтобы скрипт не завершался, потому что, если это произойдет, то X-сервер завершается; не удаляя фон fvwm(и не выполняя его exec), мы гарантируем, что процесс X-сервера все еще не отключается. Выполнение этого последнего процесса fvwmпозволяет пункту меню «выход» работать должным образом.
Стивен Харрис
Понял. Прошло много времени с тех пор, как я сделал очень низкий уровень с X. Должен сказать, что fvwm 2 - один из двух моих любимых оконных менеджеров (другой - kwin 3).
Алекс Хайнал
В моем случае fvwm-1.24rбыл мой любимый оконный менеджер :-)
Стивен Харрис
Я слышал тебя об этом. Кажется, я вспоминаю, что версия v2 была более настраиваемой, чем версия v1 (со всеми параметрами конфигурации в одном текстовом файле и с возможностью повторной загрузки на лету?). Довольно легкий, особенно по сегодняшним меркам. В последний раз я использовал его ежедневно в эпоху P-II IIRC.
Алекс Хайнал
6

Чтобы добавить к другим ответам, я разработал и выпустил приложение с открытым исходным кодом, которое работает без оконного менеджера (то есть вы можете запустить его непосредственно из xinitrc). Есть несколько дополнительных шагов, которые приложение должно сделать в этом случае, помимо управления геометрией и Z-порядком своих диалогов, но это полностью управляемо.

Джордж Ю.
источник
1

Здесь много хороших подробных ответов. Вот простой четкий ответ.

Нужен ли X-клиент для работы оконного менеджера?

Нет: но без того, если вам будет трудно управлять окнами (перемещение, изменение размера, опускание, подъем и т. Д.). Есть другой инструмент, который может сделать это, если вам это нужно.

Может ли X-клиент работать только с X-сервером?

да

Если у X-клиента нет окна, нужен ли ему оконный менеджер?

Если у него нет окон, то не должно быть недостатка в отсутствии менеджера окон.

Если X-клиент может работать без оконного менеджера, обязательно ли у X-клиента нет окна?

Нет, у него могут быть окна.

Попробуй это.

DISPLAY=:21
vncserver -localhost -geometry 1920x1080  -SecurityTypes None $DISPLAY &
ssvnc $DISPLAY
xterm &

тогда в новом xtermтипе fvwm.

Вам может понадобиться установить vncserver, ssvncи fvwm, в первую очередь.

Ctrl-Alt-Делор
источник
1

Да, X-клиент может работать только с X-сервером. В качестве примера я даю своим виртуальным машинам собственную виртуальную консоль на хосте, как это.

# Press CTRL-ALT-F5, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system CentOS -- :4

# Press CTRL-ALT-F6, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system Windows -- :5

Команда «startx» запускает сервер Xorg X на дисплеях: 4 и: 5 с использованием только virt-viewer в качестве клиента.

«CentOS» и «Windows» - это имена, которые я дал своим виртуальным машинам при их установке. -K переключатель для вирт-просмотра делает полный экран с минимальным управлением, так что каждая виртуальная машина появится на владение машиной , пока не нажать CTRL-ALT-Fn , чтобы переключиться на другую виртуальную консоль.

Конечно, CentOS запускает диспетчер дисплеев и оконных менеджеров внутри виртуальной машины, но он не имеет связи с X-сервером, работающим на хосте.

Кен Джексон
источник