Не совсем вопрос «как решить проблему», но... Мне было интересно, как работает современная архитектура X, с compiz и всем остальным.
Что я знаю об этом:
- В начале был X-сервер, клиенты подключались (предположительно по TCP), а затем отправляли сообщения серверу, чтобы дать ему команду показать окна и т. д.
- Поскольку это не работало (вообще? или просто недостаточно быстро?) для ускорения OpenGL и 3D, были созданы дополнительные API для прямого рендеринга (DRI? и, помимо X-сервера, с какими вещами взаимодействовали X-клиенты для рендеринга и через какие интерфейсы?)
- и, наконец, включаем Compiz: клиенты X в конечном итоге (каким-то образом) выполняют рендеринг в текстуры OpenGL, которые затем объединяются в причудливый экран с полупрозрачными окнами и выводятся на экран.
Что меня особенно интересует, так это какие компоненты есть в системе и как они соединяются друг с другом? Например... если в системе есть ящик с надписью "compiz"... он внутри X-сервера? Если нет, то как отрендеренные изображения из приложений попадают в него? И куда он рендерится? Это еще один X-сервер? Или DRI?
Конечно, я был бы не менее рад, если бы мне указали на какие-либо документы, способные прояснить описанную выше путаницу (при условии, что они будут значительно короче сущностей размером с книгу).
решение1
Вотхорошая статья, которые могут вам помочь.