LINUX.ORG.RU

Wayland — разъяснения от разработчиков KWin

 , ,


0

3

Дисклаймер. В связи с тем, что очень многие (почти все) здесь не понимают, зачем нужен Wayland, пишу в новости, благо есть источник, где кое-что разжёвано. Текст чуть-чуть подсократил, чтобы не захламлять.

Итак, приступим.

  1. В Wayland может быть реализована сетевая прозрачность.

    Это дело конкретного композитора. Всё дело в ошибочном понимании фразы «в Wayland нет сетевой прозрачности». Правильное понимание этой фразы таково: «спецификация Wayland не занимается сетевой прозрачностью и не определяет её». Композиторы могут быть выполнять локальную отрисовку, могут быть сервером и передавать картинку по сети (хоть на много машин одновременно), а могут делать и то и другое. Те, кто думают, что в Wayland сетевой прозрачности быть не может вообще, ошибаются.

  2. Сетевая прозрачность X11 не подходит для современных приложений.

    Она давно устарела, будучи сделанной с расчётом на то, что приложения используют простые команды для отображения содержимого окна, и эти команды можно отправлять по сети. Когда-то это было разумно, но современные приложения не используют X11 для рендеринга, они используют такие технологии как Cairo, Clutter, QPainter (Raster) или OpenGL. В этом случае X11 вынужден отправлять по сети готовую картинку, а для этой ситуации есть технологии, которые делают это гораздо лучше, чем X11. Сетевая прозрачность в X11 померла и так, без участия Wayland.

  3. X11-приложения будут поддерживаться.

    Никто не хочет ломать систему, переход на Wayland будет произведён если и только тогда, когда X11-only приложения будут в ней хорошо работать (через слой совместимости). Сетевую прозрачность X11, очевидно, тоже можно будет использовать.

  4. Сетевой прозрачности не место в оконной системе. Если вы хотите быстрой сетевой прозрачности, ей место в тулките виджетов.

    Оконная система должна просто заниматься отображением картинки, которую ей дали. Она не знает ничего про виджеты, у неё есть только картинка, которую гнать по сети достаточно накладно. Сетевой прозрачности когда-то было место в X11 только потому, что X11 был не только оконной системой, но ещё и тулкитом виджетов.

  5. «Дистибутивы выкинут иксы, моё любимое X11-only приложение не заведётся!»

    Для этого уже есть слои совместимости (X11 приложения можно запускать из композитора Wayland). Поддержку X11 никто не выкинет из дистрибутивов, пока она будет востребована, даже Mac OS X всё ещё поддерживает X11 для совместимости. Постепенно количество X11-only приложений будет уменьшаться (переписывание, естественная смерть), и даже если из вашего дистрибутива поддержку X11 уберут, вы всегда сможете её собрать сами.

Прекратите повторять ошибочные утверждения.

P.S. Отвечу на вопрос «Зачем вообще нужен Wayland, давайте улучшать X11».

Такие (или аналогичные) изменения даже если были бы возможны в X, всё равно бы сломали X11 и дали несовместимый с ним X12. Без слоя совместимости обойтись невозможно, а сам X12 тоже был бы не сахар, так как писался бы с оглядкой на X11. И чем это было бы лучше того, что мы имеем с Wayland?

В основе X11 лежат архитектурные решения более чем двадцатилетней давности (см выше). Так делать уже не надо, очень много функциональности иксов перешло в тулкиты, ядро, D-Bus, и другие системы. Замену легче написать с нуля, которая делает только свою прямую работу, а не пытается объять всё.

>>> Подробности

★★★★★

Проверено: svu ()
Последнее исправление: cetjs2 (всего исправлений: 11)
Ответ на: комментарий от geekless

>И, да — ctrl _можно_ задействовать для переключения раскладки, не теряя возможности использовать хоткеи с ней.

Как? А то не хочется терять часть хоткеев, использующих Alt+Shift. Это, конечно, не Ctrl, но метод настройки должен же быть одинаковым.

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

Там приводятся доводы, которые сводятся к тому что стабильный апи замедляет развитие. Эти доводы можно применить к чему угодно.

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

Я видел баг в багтрекере иксов, и я знаю что это не работает. Я думаю когда к вейланду приделают переключалку, она учтет проблемы иксовой.

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

> «OpenGL родился в X11» и «OpenGL всегда был в X11» — чуешь разницу?

OpenGL все время своего существования был в X11 (и там родился) - - «OpenGL всегда был в X11».

kernel ★★☆
()
Ответ на: комментарий от farafonoff

> Я видел баг в багтрекере иксов, и я знаю что это не работает. Я думаю когда к вейланду приделают переключалку, она учтет проблемы иксовой.

Чо как маленький-то?

1. Слушаешь иксовые события ввода.
2. Ждёшь, пока появится последовательность KeyPress KeyRelease для ctrl, не разделенная другими вариантами.
3. Переключаешь раскладку.
4. ???
5. Профит.

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

https://bugs.freedesktop.org/show_bug.cgi?id=865

Собственно вот этот баг. Патч решает проблему для двухкнопочной переключалки (ctrl+shift) но не работает для однокнопочной (ctrl). Там пишут что проблема в спецификации иксовых библиотек.

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

Ты думаешь, я этого сейчас не заметил?

Проблема в том, что фразу можно понять двояко, и после первого прочтения видится совершенно другой смысл.

Повторю:

Надо мысли формулировать точнее.

Всё понятно?

ChALkeR ★★★★★
() автор топика
Ответ на: комментарий от farafonoff

Пока костыль не замедляет систему и не бажит — это вполне себе решение. А если его ещё документировать…

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

Вообще, у меня последние пару лет на линуксе было 2 независимые переключалки раскладки, одна иксовая (en-ru), вторая UIMовая (en-jp), работало же. Хотя некоторые DE пытались их объединить в SCIM/ibus.
Если в иксы встроено что-то неполноценное — никто не запрещает игнорировать это и использовать сторонний софт.

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

Ты тролль. Только что проверил xev, если на ctrl навешано переключение, то иксы посылают не Control_L, а ISO_Next_Group, а значит твое решение просто не сработает.

Вопрос все еще открыт - с 2004 года.

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

Костыль - понятие архитектурное. Он либо есть либо его нету. Проблема упирается в решения 13-летней давности.

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

>> Надо мысли формулировать точнее.

Всё понятно?

Непонятно, что могло быть непонятно. Любой, кто хоть немного в теме, знает, что X-сервер старше OpenGL - это настолько общеизвестный факт, что понтоваться знанием дат может только нуб.

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

Может, потому что те, кто хотят поменять X11, не знают о них?

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

Я им и не пользуюсь (только по этой причине), я пользуюсь капсом, а там другая проблема - иногда включается сам капслок при переключении, и выключить его можно только через shift+caps.

Вообще идея написать свою переключалку интересна, надо будет попробовать.

farafonoff ★★
()
Ответ на: комментарий от quantum-troll

Ну дык с иксами то же самое. На моих машинах, по крайней мере.

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

> X11 старше линукса, если что.

GNU тоже старше линукса.

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

Да ну рассказывай сказки, я кэпсом переключаю уже пару лет.

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

Я знаю, по дефолту оно как раз на левом альте. Просто мне так удобно, я не давлю шифт, когда давлю кэпс :)

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

Вообще конечно тема рефакторинга, а точнее переписывания с нуля X, точнее некоего X12-X13, дело довольно интересное.

Как я понимаю одна из ключевых проблем в том что нужны Иксы, возможно как отдельная версия на общей кодовой базе, которые были бы заточены под мобильные девайсы. И вообще некая базовая возможность оторвать от X все кроме условных 2-3 «расширений» в любом относительно производном наборе. Идеалом была бы ситуация в которой «базовый» X сервер был размером с ядро qnx и делал бы примерно это - обеспечивал специфичный IPC. Возможно с ядерным модулем в качестве акселератора, как это сделано для wine.

Вторая ключевая проблема в том что server-side код в иксы могут IRL писать только трушные юниксовые программисты. А не все эти зилоты. Это приводит к тому что нарастает зазор между жизнью и X, который приводит к тому что «где тонко там и рвется».

Часть это проблемы это использование Xспецифичной терминологии и понятийного пространства уходящее корнями в седую древность. X не устарели - а вот слова о которых об X говорят в сочетании с упоминаниями вещей вроде imake, производят гнетущее впечатление «говна мамонта». Проблема в том что это наваждение очень сильное и оно реально мешает.

kernel ★★☆
()
Ответ на: комментарий от d9d9

>Аналогично было с крупными динозаврами, которые оказались фэйлом природы и вымерли.

Справедливости ради - ты единственный, кто знает причину вымирания динозавров

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

Выглядит так, будто из иксов надо сделать «браузер». Там как раз передается минимальный объем данных - идеальная сетевая прозрачность. Ну и плюс поддержка любой возможной стилизации картинки малой ценой.

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

> Выглядит так, будто из иксов надо сделать «браузер». Там как раз

передается минимальный объем данных - идеальная сетевая

прозрачность. Ну и плюс поддержка любой возможной стилизации


картинки малой ценой.



Не надо браузер. Нужно понять «нишу» иксов и почему они такие как есть.

Каждая графическая система со временем превращается в X. Тот же абсолютно иксоподобный RDP тут пример. И любая система развивается именно так - сетевая прозрачность для «локальных» приложений без изменения самих приложений с потерей определенных красивостей.

Смысл в том что X(rdp, етс) это фактически удлинение кабеля к монитору средствами ethernet и меди, стандартным кабелем. То есть в сущности - классический терминал мейнфрейма через модем. Наличие «терминала» к мейнфрейму при чем без изменения ПО этого мейнфрейма на расстоянии которое могут обеспечить текущие средства связи.

Если понять это станет совершенно понятно что вейленд фаны переизобретут X, а помешать им сможет только отсутствие ресурсов. Даже даты ориентировочно можно предсказать, посмотрев сколько прошло с win32 gdi до rdp и введя поправочные коэффициенты на то как и кто юудет это оплачивать.

kernel ★★☆
()

Шла тридцатая страница флейма )))

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

> http://xcb.freedesktop.org/opengl/

Реализация бесполезна.

Кстати, сегодня случайно наткнулся на короткий комментарий Jamey Sharp — отца-основателя XCB. Он кое-какие краткие прояснения делает по состоянию процесса на 2010 год:

http://vignatti.wordpress.com/2010/06/15/toolkit-please-xlib-xcb/#comment-1749

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

> Ты тролль. Только что проверил xev, если на ctrl навешано переключение, то иксы посылают не Control_L, а ISO_Next_Group, а значит твое решение просто не сработает.

Ты просто глуп. Смирись.

Вопрос все еще открыт - с 2004 года.

Плохому танцору...

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

> Ты понимаешь что это костыль - при наличии иксовой переключалки делать свою.

Костыль — это то, что в твоей голове мешает решить твою проблему, вместо того чтобы годы подряд как девочка плакаться форумах, что у тебя что-то не работает. Будь мужиком, блджад. Когда тебе телевизор настроить надо, ты тоже бежишь на форумы плакаться?

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

> Я видел баг в багтрекере иксов, и я знаю что это не работает.

Ты видел баг в багтрекере!!! О мой бог, теперь мы будем звать тебя Свидетель Бага!

Я думаю когда к вейланду приделают переключалку, она учтет проблемы иксовой.

Ты хотел сказать, когда к вейланду приделают костыль, который заменит в нём принципиальную невозможность нормально обрабатывать ввод.

Поступи по образцу разработчиков вейланда. Чтобы избавиться от проблем, отруби себе голову. Не хочешь? Ты против инноваций?

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

> Там приводятся доводы, которые сводятся к тому что стабильный апи замедляет развитие. Эти доводы можно применить к чему угодно.

Если ума нет, любые доводы можно смело применять к чему угодно.

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

>Он участвует в решении этой проблемы но с другой стороны, со стороны написания драйверов и со своей обязанностью он справляется а писать «двинун под линукс» (что еще за термин такой?) пусть пишут те кому он нужен, например ты. Мне лично этот «двинун под линукс» не уперся так что для меня это сомнительная технология.

Факты говорят что ничего он не участвует. Кто хочет писать «двигуны», тот их пише в независимости от наличия этого драйвера:) Вот когда этот драйвер допишут до нужной кондиции, тогда можно будет его замечать, так что пиши его побыстрее.

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

А драйверы не нужны?

Нужны, но и среди драйверов бывает конкуренция. На данный момент проще залезть на офсайт, стянуть с него один файлик, установить и не иметь секс с 10500 зависимостями.

Napilnik ★★★★★
()

пять копеек

Зачем Вейланд, на мой взгляд: 1. Икс разрабатывалась исходя из линейного развития: есть самые быстрые видеокарты, ориентация шла на них. Устаревающие машины проходят грейд. Поэтому Иксы делались для самых быстрых, а всем остальным отсосиски кожура. 2. Постепенно кожура и тем, которые являются нетбуками и субноутбуками. Не есть гуд. Понадобился тонкий слой, который позволил бы поднавесить при желании больше фич, если позволит видяха. Но шел бы под экономичные системы (батарейка 9 часов, 5-15 ватт видяха). 3. Постепенно возможности грейда также осложнились - см. например AGP системы, многие из которых работают до сих пор. Для них Иксы УЖЕ ОЧЕНЬ ЖИРНЫ. А вместо иксов пока вакуум.

Вакуум заполнится, невзирая на Вейланд. Если что - народ и на другие ОСи перейдет. Но это будет уже общий просер всего опен сорса.

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

> Native — шустр по сети? Ты хорошо пошутил.

и т.д.

Я не шучу. У меня ZyGrib тот же работает в native по сети (5 мегабит с включённым на раздачу торрентом) почти неотличимо от локальной копии. В raster - меедленная загрузка интерфейса приложения как картинки построчно, которая на каждый чих обновляется. Thunderbird, Eclipse, Pidgin, pgadmin работают опять-таки почти неотличимо от локальных приложений по скорости.

Да, совершенно серьёзно - быстрее чем VNC без lossy сжатия! Сжатие с потерями раздражает левыми цветами и мыльными шрифтами.

В игры не играю, видео смотрится локально хорошо. Потому для меня лично актуальность Wayland и выкидывания native из QT не особо понятны.

P.S. Утверждения, что сейчас X forwarding работает жутко, не подтверждаются личным опытом, сколько раз ни повторялись бы. По крайней мере - остальное ещё хуже.

А то, что всегда есть что улучшать - это да.

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

> А то, что всегда есть что улучшать - это да.

На самом деле будет хорошо, если Wayland таки станет - стандартным, переносимым, лёгким, быстрым, простым и функциональным, при этом заменит или дополнит X Window System на десктопе.

Однако, здоровый консерватизм (не ломай работающее) редко когда мешал.

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

Значит, ты ошибаешься. Да, Native быстрее по сети, чем Raster. Но сам Native тоже очень медленный.

Не всё хуже. Запусти программу, использующую Xaw и сравни.

Если ты ещё не понял: Native шлёт пиксмапы.

ChALkeR ★★★★★
() автор топика
Ответ на: комментарий от DarkFlame

>Thunderbird, Eclipse, Pidgin, pgadmin работают опять-таки почти неотличимо от локальных приложений по скорости.

Два хеннеси этому господину

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

>Факты говорят что ничего он не участвует. Кто хочет писать «двигуны», тот их пише в независимости от наличия этого драйвера:) Вот когда этот драйвер допишут до нужной кондиции, тогда можно будет его замечать, так что пиши его побыстрее.

Все я сдаюсь.

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

Иксы занимают странное промежуточное положение. Там есть ввод с клавиатуры и вывод графики, но нету транспорта звука, есть какое-то ipc, но помимо него запилили еще и dbus. Я думаю определенно стоит разобраться кто какие функции должен выполнять. Понятно конечно, что звука на компьютерах небыло 20 лет назад когда делали иксы, но сейчас колонки такая же неотъемлемая часть рабочего места как монитор и клавиатура.

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

Вот с этого и стоило бы начать: с разработки адекватной сеансовой шины, не такой угребищной как dbus, и не привязанной к иксам. И достаточно универсальной, чтобы поверх неё пускать любые фичи, необходимые для сеанса: и звук, и коннект к графическому серверу, и т.п.

А не заниматься решением несуществующих проблем.

geekless ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.