С чего начать, если я хочу написать компоновщик Wayland?

Я полагаю, что в Интернете не бродит «Руководство для начинающих по программированию серверов Wayland», а источник Weston выглядит обескураживающе.

Есть ли базовый сервер Wayland, на который я могу взглянуть, чтобы понять, с чего начать? Что-то, что я могу запустить под X, что я могу подтвердить, получает ввод. Я уверен, что смогу уйти оттуда.


person J V    schedule 25.07.2014    source источник
comment
Возможно, вы могли бы взглянуть на исходный код Cairo Dock для Wayland glx-dock. org/mr_article.php?b=5&a=73 . Просто идея.   -  person Stephane Rolland    schedule 04.10.2014
comment
также одним из удаленных ответов на этот вопрос здесь была ссылка, указывающая на книгу Яна Ньюмарча Programming Wayland Clients: jan.newmarch.name/Wayland/index.html На данный момент у меня были трудные моменты при попытке войти в этот домен, но я надеюсь, что эта книга, наконец, поможет.   -  person Stephane Rolland    schedule 01.06.2015
comment
Я как раз хотел спросить то же самое. На самом деле должно быть руководство для начинающих по написанию компоновщика вейлендов, это сделало бы вещи намного интереснее (тонны разработчиков-любителей стекались бы, чтобы создать свой собственный компоновщик вейлендов, и было бы забавно посмотреть, кто из них станет королями в мире). конец этого; может даже превзойти популярность gnome и kde)   -  person Cestarian    schedule 04.03.2016


Ответы (3)


Взгляните на Small Wayland Compositor. Вы можете либо использовать его как библиотеку для дальнейшего развития, либо проверить, как он работает внутри, если вы хотите начать с нуля.

person weltensturm    schedule 12.12.2014
comment
Я думаю, что это сделало мое путешествие в Wayland намного проще. - person Jerric Lyns John; 14.12.2014
comment
Существует также github.com/swaywm/wlroots (на котором, как мне кажется, основан SwayWM). Существует каталог примеров, в который вы можете заглянуть. - person user1121956; 01.07.2019
comment
И какой-нибудь простой компоновщик/WM на его основе: github.com/vktec/asc - person user1121956; 01.07.2019

Я написал минимальный компоновщик Wayland, который работает поверх X11, в надежде, что он может оказаться полезным. для других людей, которые хотят научиться писать компоновщик wayland.
Это около 500 строк кода, которые на самом деле представляют собой минимальный код, необходимый для размещения нескольких экземпляров weston-terminal и их перемещения.

person eyelash    schedule 22.12.2015
comment
Это именно то, что я хотел увидеть, при условии, что он действительно работает (еще не было возможности попробовать его скомпилировать и запустить), хотя я не просто хочу, чтобы он работал в X, я хочу, чтобы он мог работать без этого. Если он работает, это именно то, что я хотел :) хороший короткий и простой примерно 500 строк кода, который мало что делает, но работает как отправная точка. Чем короче, тем лучше. - person Cestarian; 04.03.2016
comment
Пожалуйста, сообщите мне, если у вас есть какие-либо проблемы с его запуском. Написание собственного бэкенда все еще в моем списке дел, но это будет немного сложнее, чем бэкэнд X11. - person eyelash; 07.03.2016
comment
О, так у него нет родного бэкенда :( Тогда я, возможно, не буду его пробовать. Но, пожалуйста, дайте мне знать, когда у вас будет нативный бэкенд! - person Cestarian; 07.03.2016
comment
@Cestarian У меня также есть ~150 LOC пример того, как использовать OpenGL без какого-либо сервера отображения, но это, вероятно, не совсем то, что вы ищете :) - person eyelash; 07.03.2016
comment
Файлы wayland* в корневом каталоге также выглядят интересно (github.com/eyelash/tutorials) - person user1121956; 01.07.2019

Я могу только порекомендовать взглянуть на исходники KWayland (особенно если вы вас интересует, как протокол wayland соотносится с объектно-ориентированным миром).
KWayland — это объектно-ориентированная (C++/Qt) оболочка для клиентских и серверных библиотек wayland, которая также включает в себя минимальный сервер (tests/renderingservertest.cpp ).

person eyelash    schedule 08.11.2015