Нужен ли 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 не будет открывать панель предложений при вводе или нажатии кнопки истории, если не запущен менеджер окон. Меню автоматического скрытия тоже не будет работать.


Есть ли открытая ошибка в 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, в первую очередь.


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-сервером, работающим на хосте.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.