> Мы потратили последние десять лет на «исправление» X с помощью оборачивания его расширениями и плагинами. Однако, X имеет минимальную поддержку версионирования расширений.Говорят, Wayland вообще не расширяем.
> X имеет четыре подсистемы ввода: базовый протокол X11, Xinput 1.0, Xinput 2.0, Xinput 2.2. Xinput 1.0 канул в Лету, но оставшиеся три остаются взаимосвязанными. Daniel Stone описал это так: «Есть всего три человека, которые действительно понимают, как подсистемы ввода уживаются вместе... И я не думаю, что являюсь одним из них».
Звучит так, как будто Xi2 написан в 1990-м. Нет, в 2009-м. Если эти люди не могут написать с нуля Xi для иксов, то у них и для Wayland не получится.
> Подсистема ввода в Wayland очень похожа на Xinput 2.2 ... Примечание от Daniel: как один из авторов мультитача в X, я считаю себя достаточно компетентным, чтобы назвать его кошмарным.
Ну я же говорил.
> Много лет назад у кого-то появилась идея «механизм, а не алгоритм». Фраза является отсылкой к тому, что X имеет свой уникальный API для рисования и собственную библиотеку вроде GTK+ или Qt. ... «Внешний вид толстых линий должен точно соответствовать спецификации, которая обязывает их выглядеть уродливо».
Эм, а где тут что-то плохое?
> X большой и тупой.
По-моему, исчерпывающая аргументация. ВСЕ НА WAYLAND!!!11
А если серьёзно - напомнить для каких компьютеров проектировались X?
> Прежде чем мы (сообщество) начали выкидывать его компоненты и использовать обходные пути, X имел внутри почти полную ОС, включая свой сервер печати и свой бинарный транслятор для ELF, COFF и a.out.
В компьютерной компании женским туалетом пользуется 1% людей. Давайте уберём его, он не нужен!
> Композитинг и синхронизация окон. Разработчики научили X композитингу с помощью Composite Extension. Композитинг хорош для простых случаев, как то: рабочий стол, OpenGL. Но если вы захотите использовать hardware overlays (т.е видео), может случиться катастрофа.
Отправьте багрепорт.
> Шрифты. Разработчики пытались перенести шрифты под управление X-сервера с помощью расширения STSF, и предоставить клиентам достаточную информацию, чтобы те могли правильно определить расположение шрифтов на экране. Но количество информации, достаточной для выполнения данной задачи, превышало размер самих шрифтов. В итоге было решено предоставить клиентам полную свободу действий, избавившись от шрифтов на сервере.
Гонять битмапы и на иксах можно.
> «Пожалуйста, создайте мне X.conf. Пожалуйста, используйте его для настройки.» Зачем?!
А что если у меня многомониторная конфигурация? А что если у меня новая NVIDIA, старая NVIDIA и ATi на одном компьютере? Иксы сами не догадаются что сделать.
> Со временем это было исправлено ... параметры по умолчанию подчищены и могут теперь определяться автоматически ... Многие имели проблемы с многомониторными конфигурациями в Linux, ну или хотя бы перенастраивали X после перезагрузки.
Ну сами же себе противоречите. «Конфиг не нужен, это недостаток иксов, надо исправить! Оп-па, два монитора сами не определились, опять недостаток иксов!»
> В течение длительного периода (а может быть и до сих пор) при подключении дополнительного монитора в Linux основной монитор имел композитинг, а дополнительный — нет.
NVIDIA - всё работает.
> Многомониторные конфигурации и гибридная графика (Optimus) отданы клиентам
А Qt с GTK договорятся между собой о том, как им сконфигурировать мониторы? А программистам теперь учить медиаплеер конфигурировать NVIDIA Optimus?
> Бесполезная иерархия окон. В X каждое поле ввода и текстовая надпись имеют своё окно со своим родителем. Никто не знает, какую же функцию выполняет эта иерархия.
Это создаёт проблемы разработчику?
> Отчасти придирка, отчасти разумное беспокойство... В X11 каждая из координат— 2-байтное число со знаком. То есть, на всех ваших дисплеях должно быть не более 32,768 пикселей. При 100dpi это даёт вам 8,3-метровый дисплей. Замечательно... Но вот факты для сравнения: Windows XP имеет 96 DPI, а мой телефон — 320+. Добавьте сюда растущие разрешения и несколько мониторов, и вы увидите, что проблема приближается очень даже быстро.
Выпустите новый X-Server 1.15, где всё будет исправлено. Или отправьте багрепорт.
> Скринсейвер — это окно, которое просит X расположить его поверх всех окон, сделать полноэкранным и отдать весь ввод.
Согласен, проблема.
> Разработчики пытались исправить проблему и сделали спецификацию нового расширения, которое в теории работало. Но когда его попытались реализовать, оказалось, что оно серьёзно ломает модель работы X-сервера. Так что проблема существовала 26 лет и продолжает существовать. Расслабьтесь и получайте удовольствие.
Лично у меня первые MP3 появились в 1998 году (15 лет назад).
> Для обеспечения дополнительной безопасности, ваш скринсейвер и скринлокер являются частью композитора. Кроме того, композитор распознает клавиши управления медиа, так что даже при заблокированном экране можно выключить звук.
actkbd (демон на 30 Кб) умеет делать это в иксах - уделал.
> У Wayland нет API для рисования, в обход которого можно было бы работать.
Даже если бы и было, мешало бы кому-нибудь?
> Wayland минималистичен, он не хранит внутри себя псевдо-ОС ради контроля вывода графики.
А кто тогда контролирует? Мама Анархия? Или эта функциональность перекладывается на systemd?
> Клиенты принимают на себя этот удар, что хорошо — им не придётся заботиться о сверхдолгом сопровождении обратной совместимости.
А, теперь каждый запущенный на компьютере клиент - псевдо-ОС для контроля вывода графики.
> Qt5 избавилось от модуля qt3support. X всё ещё сопровождает то, что было написано 26 лет назад.
Qt3 можно установить рядом с Qt4 и Qt5, если понадобится. А почему это X сопровождает что-то там? Пример: какие-нибудь Heroes III и Quake II используют функцию X, которая устарела и больше не используется ничем. При этом Heroes III вообще статически собраны и тянут libX11 с собой! В чём проблема выпустить libX11.so.7 и устанавливать в ОС обе этих библиотеки? 6 и 7 версии?
И что тогда получается, слой совместимости с иксами в вайленд - это ещё 20 лет тянуть эти deprecated-расширения?
> «Вейланд нарушает обратную совместимость» — с тех пор как XWayland закончен и принят в основную ветку, у нас должна появиться почти совершенная обратная совместимость, потому что каждое приложение, использующее X, получает маленький X-сервер для дальнейшей работы с ним.
Конечно нет, сделают как я выше написал: для XWayland будет использоваться libX11.so.6, которая не будет развиваться и туда будут вноситься только багфиксы. Так почему бы сейчас это не сделать? libX11.so.6 со всеми её deprecated-функциями дополнять только багфиксами, и её будут использорвать приложения 10-летней давности, а новые приложения компилировать с libX11.so.7, в который внесены все необходимые изменения и нет deprecated-функций?
> Примечание от Daniel: кроме того, вызовы к вейланду — не блокирующие, рисование всего рабочего стола не остановится из-за зависания или очень дорогой операции на стороне одного из клиентов: остановится только этот клиент.
О чём он? Ну вот завис у меня OpenOffice.org. Что-то я не наблюдаю эффекта поцарапанной дискеты или CD-диска в Windows 9x! Всё остальное работает!
> В вейланде — принудительный композитинг ... Лозунг вейланда — «каждый кадр будет идеальным». Каждый пиксель прорисован как должно и расположен где должно, и появляется, когда клиент того потребует.
> Шрифты отданы клиентам.
Я и в иксах так умею.
> В вейланде есть два вида окон: окна верхнего уровня и подповерхности (в основном для проигрывания видео). Причём, в отличие от X, они синхронизируются. При прокрутке страницы с видео в браузере у вас не будет ни разрывов, ни артефактов.
VSync.
> С точки зрения клиентов, вейланд не оперирует глобальными координатами, предпочитая систему отсчёта поверхности для рисования. Счётчик координат 31-битный, то есть каждая поверхность может иметь 2,147,483,648 пикселей как в ширину, так и в высоту.
Новые версии X-Server выходят постоянно. Не вижу проблемы и там поправить, раз уж проблема известна.
> «В X есть сетевая прозрачность» — её нет. Базовый протокол X и DRI-1 имели сетевую прозрачность, но никто не использует ни то, ни другое. Shared-memory, DRI2 и DRI-3000 не имеют сетевой прозрачности и не работают по сети.
www.linux.org.ru/forum/general/9184431