История изменений
Исправление
sudopacman,
(текущая версия)
:
Мешает. Существует только одна основная реализация X сервера, идущая ещё со времён проекта Athena. Никто им не даст сломать сам X сервер. А менеждер окон можно легко поменять, в том числе и на лету.
Так декорации окна не X-сервер рисует, а WM.
В GNOME у тебя не получится поменять WM; в KDE тоже для полноценной работы требуется KWin.
Обработку окон можно сломать, не меняя кода X-сервера. См. выше про _NET_FRAME_EXTENTS
и _GTK_FRAME_EXTENTS
. Ещё EWMH предполагает, что рабочий стол должен распространяться на все мониторы. Некоторые разработчики (например, i3) догадались, что при таком раскладе нормально пользоваться несколькими мониторами невозможно, и запилили отдельные рабочие столы разных для мониторов. Но такое поведение противоречит стандарту и теоретически может что-то сломать. Поэтому в kwin_x11, например, его наотрез отказываются реализовывать.
Мой главный довод в том, что в X11 есть всё необходимое для всех потребностей в GUI логике. А Wayland какой-то кастрированный. Там много чего нельзя, в том числе и намеренно якобы из-за «безопасности». Если программа вдруг узнает координаты окна, то всё, считай что все деньги со счетов списали хакеры через координаты окна.
Если тебе нужно что-то «мутить» с абсолютными координатами окна, то, скорее всего, ты делаешь что-то не так. Такие костыли потом аукнуться могут, тут даже не в безопасности дело.
Есть, конечно, вещи, которых пока нет, но и они постепенно появляются. Если бы у корпорации были более заинтересованы в допиливании GNU/Linux для «десктопа», то появлялись бы они гораздо быстрее (как и остальные API/стандарты/функции, которых сейчас не хватает).
Сделайте вы нормальный классический GUI сервер без легаси костылей и всей это паранои Wayland и X11 можно будет закапывать.
Общий код лучше оформить в виде библиотеки (есть Wlroots), отделять WM от графического сервера ненужно. Равняться на винду и давать кому попало доступ к содержимому экрана, управлению окнами, событиям ввода и т. д. тоже ненужно, нужна нормальная система разрешений, как в Android.
Исходная версия
sudopacman,
:
Мешает. Существует только одна основная реализация X сервера, идущая ещё со времён проекта Athena. Никто им не даст сломать сам X сервер. А менеждер окон можно легко поменять, в том числе и на лету.
Так декорации окна не X-сервер рисует, а WM.
В GNOME у тебя не получится поменять WM; в KDE тоже для полноценной работы требуется KWin.
Обработку окон можно сломать, не меняя кода X-сервера. См. выше про _NET_FRAME_EXTENTS
и _GTK_FRAME_EXTENTS
. Ещё EWMH предполагает, что рабочий стол должен распространяться на все мониторы. Некоторые разработчики (например, i3) догадались, что при таком раскладе нормально пользоваться несколькими мониторами невозможно, и запилили отдельные рабочие столы разных для мониторов. Но такое поведение противоречит стандарту и теоретически может что-то сломать. Поэтому в KWin, например, его наотрез отказываются реализовывать.
Мой главный довод в том, что в X11 есть всё необходимое для всех потребностей в GUI логике. А Wayland какой-то кастрированный. Там много чего нельзя, в том числе и намеренно якобы из-за «безопасности». Если программа вдруг узнает координаты окна, то всё, считай что все деньги со счетов списали хакеры через координаты окна.
Если тебе нужно что-то «мутить» с абсолютными координатами окна, то, скорее всего, ты делаешь что-то не так. Такие костыли потом аукнуться могут, тут даже не в безопасности дело.
Есть, конечно, вещи, которых пока нет, но и они постепенно появляются. Если бы у корпорации были более заинтересованы в допиливании GNU/Linux для «десктопа», то появлялись бы они гораздо быстрее (как и остальные API/стандарты/функции, которых сейчас не хватает).
Сделайте вы нормальный классический GUI сервер без легаси костылей и всей это паранои Wayland и X11 можно будет закапывать.
Общий код лучше оформить в виде библиотеки (есть Wlroots), отделять WM от графического сервера ненужно. Равняться на винду и давать кому попало доступ к содержимому экрана, управлению окнами, событиям ввода и т. д. тоже ненужно, нужна нормальная система разрешений, как в Android.