LINUX.ORG.RU

WM

 ,


1

3

Допустим, я хочу написать свой WM с блекджеком и шлюхами. В какую сторону мне копать?

Насколько я понимаю, композитный WM это обычное полноэкранное приложение. Оно перехватывает битмапы окон остальных приложений и рисует на своём как хочет. Это обеспечивается путём специальной регистрации в иксах при старте. Я прав? Если да, то можно сначала написать просто приложение, которое рисует воображаемые окошки внутри себя и даёт их таскать и т. д., отладить всю работу, а потом уже превратить это в WM, получая список окошек и битмапы для их у иксов, а не создавая самому.

Также насколько я понимаю, композитный WM использует для всего OpenGL. Содержимое окошек, битмапы из темы оформления - всё это грузится в текстуры, а затем натягивается на треугольники.

Реально ли использовать для создания окна WM и работы с OpenGL SDL?

★★★★★

Последнее исправление: KivApple (всего исправлений: 1)

Ответ на: комментарий от MyTrooName

Путём беглого просмотра понял, что клиенты и WM общаются с помощью атомов и сообщений, чтобы договориться об открытии/закрытии окна, заголовке, значке, ресайзинге, перемещении и т. д. А ещё, что WM создаёт окно, которое становится корневым.

А что насчёт отрисовки? Остальные приложения должны как-то передать в WM свои битмапы, чтобы он нарисовал их. Они не могут рисовать их сами, потому что WM может применять к ним всякие размытия, прозрачности и т. д.

KivApple ★★★★★
() автор топика

Вот хорошая вводная. Несколько лет назад статью видел. Может, что-то и устарело. Было в блогах KDE, больше ее там нет. Кто-то успел скопировать к себе:

http://www.talisman.org/~erlkonig/misc/x11-composite-tutorial/

Вроде как ориентирвано все на Qt, но там в основном разговоры про функции Xlib, поэтому адаптируется легко и просто.

Также насколько я понимаю, композитный WM использует для всего OpenGL.

Нет. Если нет OpenGL, то использовать может XRender. И даже Core Protocol! В статье как раз использование XRender и показано. Но, по-моему, уже все (?) композитные WM отошли от XRender и все исключительно через GL.

Zubok ★★★★★
()

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

novoxudonoser
()
Ответ на: комментарий от novoxudonoser

не хватает драг анд дропа

Не хватает именно драг'n'дропа или того, что он должен сделать, например какое-либо поведение окон в следствие его.

Другими словами, это уже реализовано (или возможно реализовать) через хоткеи, но хочется именно мышкой?

redhat
()
Ответ на: комментарий от redhat

ды у меня целый большой список того что нехватает

дран энд дроп и удобный ресайз мышкой это просто удобные перделки, вовсе не критично важно

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

novoxudonoser
()
Ответ на: комментарий от KivApple

они шлют битмапы x11-серверу, а не WM-у

WM сам ничего не рисует на окнах обычно, только рамки и root-окно.

MyTrooName ★★★★★
()

начни лучше не с WM, а с каких-нибудь таскбаров

MyTrooName ★★★★★
()

пили композитор сразу под wayland, может хоть какая-то польза от твоего велосипеда будет

x4DA ★★★★★
()
Ответ на: комментарий от Zubok

Но, по-моему, уже все (?) композитные WM отошли от XRender и все исключительно через GL.

Не, еще есть, которые предлагают вариант XRender. Например, Compton, Unagi (WTF?), Cairo Composite Manager, предполагаю еще xcompmgr и xfwm из XFCE. Kwin вроде до сих пор fallback в XRender делает (а compiz?). Но возможности эффектов в XRender ограничены обычно.

А GNOME, Unity вроде только GL используют.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.