Приложения qt4 не работают в Xephyr

Не беспокойтесь об этом, если нет действительно многих зависимостей.

Носильщики / упаковщики в командах знают, как обрабатывать зависимости времени сборки и времени выполнения. И упомянутые вами инструменты могут быть установлены не во всех системах (особенно pkg-config ), но все они довольно распространены и хорошо понятны.

Вы должны задокументировать зависимости, и это все, что нужно знать этим людям.

3
07.09.2016, 17:30
2 ответа

Хотя вопрос предполагал, что Xephyr был запущен правильно (поскольку информация по этому поводу не предоставлена), я, по крайней мере, подтвердил, что qBittorrent отлично работает в Xephyr на Debian Xfce Wheezy.

На скриншоте ниже показан qBittorrent 2.9.8 в Xephyr.

qBittorrent 2.9.8 in Xephyr on Debian Xfce Wheezy

Это было протестировано на Debian Xfce Wheezy и с использованием последних пакетов libqtcore4 и xserver-xephyr , доступных на данный момент, которые аналогичны версиям, указанным в вопросе.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.9 (wheezy)
Release:    7.9
Codename:   wheezy

$ dpkg-query -W | grep libqt
libqt4-dbus:i386    4:4.8.2+dfsg-11
libqt4-network:i386 4:4.8.2+dfsg-11
libqt4-xml:i386 4:4.8.2+dfsg-11
libqtcore4:i386 4:4.8.2+dfsg-11
libqtdbus4:i386 4:4.8.2+dfsg-11
libqtgui4:i386  4:4.8.2+dfsg-11

$ dpkg-query -W | grep xephyr
xserver-xephyr  2:1.12.4-6+deb7u6

Определение проблемы

Единственным релевантным поиском, который я нашел, была Ошибка 71421 , сообщающая о том, что «приложения Qt5 не работают с Xephyr».

При попытке запустить какие-либо приложения Qt5 (или явно GTK3) внутри Xephyr они не работают (так как ничего не показано). GTK2 или Qt4 работают так же хорошо, как и приложения GLX (например, glxgears). Также протестирован на автономном X-сервере без запущенного DM - Qt5 отлично работает там, только внутри Xephyr они этого не делают.

Эта ошибка похожа на вопрос, за исключением того, что затрагивает только приложения Qt5. Ошибка возникла из-за Qt5 и была исправлена ​​недавно, в конце апреля этого года.

Кроме того, не было предоставлено никакой информации о том, как приложение запускалось в Xephyr.

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

Основываясь на процитированном тексте, у меня есть еще кое-что, чтобы сомневаться: работал ли Xephyr с неверными аргументами? Или, скорее, как приложение было запущено в Xephyr от имени другого пользователя?

Если вы действительно уверены, что приложения Qt4 не работают в Xephyr, это может быть проблема, о которой не сообщалось в пакете Qt4. Но поскольку я подтвердил, что qBittorrent (на основе Qt4) отлично работает в Xephyr, это может быть проблема с «другим пользователем» или с тем, как Xephyr запускался из текущего сеанса.

Об использовании Xephyr

Это несколько онлайн-источников, которые объясняют использование Xephyr для выполнения определенных задач.

  1. Ксефир на ArchWiki. Хорошее место для начала работы с Xephyr, но мало что объясняет об обширном использовании, кроме запуска терминала или оконного менеджера в Xephyr.

  2. Не знаю, как начать работу с Ксефиром. Что я делаю не так? в списке рассылки Xorg от четверг, 23 января, 17:16:40 PST 2014. Другой способ запуска Xterm в Xephyr.

  3. Как запустить несколько рабочих столов X? на суперпользователе, спросил 22 июля '09. Один из ответов предлагал использовать Ксефир. Аналогично тому, как предложено в источнике №1.

  4. Многопользовательская конфигурация / Xephyr: Как создать мультитерминал с Xephyr в Викиучебниках.

  5. Скриншоты с нескольких X-серверов на Unix и Linux Stack Exchange, задано 21 августа 2014 года.

  6. Как: запустить firefox (и другие вещи) как отдельный пользователь с Xephyr . Кажется, это наиболее похожее использование, как указано в вопросе.

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

При этом есть что-то непонятное для понимания первого предложения «использование Xephyr для запуска приложений от имени другого пользователя, во время входа в систему как основного пользователя». В конце концов, я не создавал «другого пользователя» для тестового запуска qBittorrent в Xephyr. Возможно, кто-то другой может дать лучший ответ.

1
27.01.2020, 21:31

Может быть полезно узнать, какая команда используется для запуска Xephyr и какой оконный менеджер используется.

Я пробовал это:

Xephyr :1 &
DISPLAY=:1 openbox &
DISPLAY=:1 qbittorrent

и получил неполное содержимое окна qbittorrent. Попробовав то же самое с xfwm4:

Xephyr :1 &
DISPLAY=:1 xfwm4 &
DISPLAY=:1 qbittorrent

, все в порядке, и qbittorrent можно использовать.

Я не могу объяснить, почему существует разница, но, очевидно, она есть. Я заподозрил проблемы с составной частью и попытался запустить Xephyr с включенной составной частью:

Xephyr +extension Composite :1 &

но, похоже, это не имеет значения.

РЕДАКТИРОВАТЬ: xfwm4 имеет возможности композитинга, openbox - нет. Возможно, композит все же является решающим ключом.

0
27.01.2020, 21:31

Теги

Похожие вопросы