Как стать автором
Обновить
13
-4

Software developer

Отправить сообщение

Хм, он вроде давно же работает в Wayland, когда года 2 назад в wxwidgets добавили подержку wayland. Как помню мыло было только в иконках, так же как в либреофис, а в интерфейсе там надо было настройки менять и все нормально отображалось.

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

фишка в прямом доступе к памяти и избавление от бутылочного горлышка

Так разве MIT-SHM(MIT Shared Memory Extension, XShm) в X11 не тоже самое делает?

Все равно не понимаю причем тут базовый протокол, и fractional scaling т.к. обработчик FS реализуется отдельно.

https://wayland.app/protocols/fractional-scale-v1

Можете все же вы ссылки на багрепорты с пруфами скинете?

Я программировал fs для egl приложения, и у меня не было никаких проблема с fs. Поэтому я не понимаю вас.

The sent scale is the numerator of a fraction with a denominator of 120.

А это разве проблема?))

Пруфы? Ссылки на код?

О какой конкретно проблемы вы говорите? Скинете ссылку на багрепорт?

И причем тут базовая функция scale клиента которая обрабатывает scale в клиенте? https://wayland-client-d.dpldocs.info/wayland.client.protocol.wl_output_listener.html

Автору плюс за статью. Но в статье есть несколько мифов, которые были скопированы и отнесены к недостаткам Wayland.

Унификация и стандартизация.

FS давно уже поддерживают все нормальные композиторы, проблема только есть в XWayland. Но это не проблема Wayland, это проблема X11.

Дробный масштаб если поддерживается соответствующий протокол не вызывает мыла. Мыло возникает только в Xwayland и там другая проблема, которая описана ниже в комментах. Но сейчас у меня осталось только одно приложение, которое не умеет нативно работать в Wayland и это Steam. Например в VS Code починили Wayland в последних релизах. Думаю, если у вас дистрибутив не эпохи царя гороха, то вы вряд ли найдете приложение, которое не умеет работать нативно в Wayland.

KDE не колхозят свой протокол для Fractional Scaling, это бы сломало совместимость и никто бы его кроме них не реализовал. Они решали проблему синхронизации размеров и координат виртуальных поверхностей Xwayland с композитором и реализовали это через хак - спавнят все диаголовые окна в центре экрана. Проблема заключается в том, что там сложные расчеты, надо считать unscale и scale размеры, что делали патчем xwayland. Патчи эти не принял никто. Но можно обойтись без патча xwayland, и делать unscale на стороне композитора, мыла не будет в xwayland, но окна будут спавниться в рандомном месте экрана, поэтому можно с помощью хака их спавнить всегда в центре экрана. Я делал похожий хак и MR для Hyprland https://github.com/hyprwm/Hyprland/pull/3942 и вот багрепорт https://github.com/hyprwm/Hyprland/issues/3029

ДОЛЖНЫ думать об удобстве её использования

Тут ключевая ошибка мышления, все думают как им удобно. Программисты это не UI специалисты, которые продумывают интерфейс. Это не коммерческий софт, где есть отдельные люди для этого. Поэтому все делается, по мере возможности, если вас не устраивает, форкайте и присылайте MR, люди коллективно подумают, и если все хорошо и правильно, примут ваш код в основной проект. Даже в коммерческом софте с одинаковым функционалом, хоткеи и скролл работают по разному! Все на усмотрение разработчика, ваши привычки не равно привычкам разработчика!

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

Экстеншены вестона и кде используются только внутри кде и вестона. Это не официальные расширения. Я вот не пойму зачем вы упорно игнорируете реальность. Вот список официальных.

find /usr/share/wayland-protocols -type f
/usr/share/wayland-protocols/stable/presentation-time/presentation-time.xml
/usr/share/wayland-protocols/stable/viewporter/viewporter.xml
/usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml
/usr/share/wayland-protocols/stable/linux-dmabuf/linux-dmabuf-v1.xml
/usr/share/wayland-protocols/staging/content-type/content-type-v1.xml
/usr/share/wayland-protocols/staging/drm-lease/drm-lease-v1.xml
/usr/share/wayland-protocols/staging/ext-idle-notify/ext-idle-notify-v1.xml
/usr/share/wayland-protocols/staging/ext-session-lock/ext-session-lock-v1.xml
/usr/share/wayland-protocols/staging/fractional-scale/fractional-scale-v1.xml
/usr/share/wayland-protocols/staging/single-pixel-buffer/single-pixel-buffer-v1.xml
/usr/share/wayland-protocols/staging/tearing-control/tearing-control-v1.xml
/usr/share/wayland-protocols/staging/xdg-activation/xdg-activation-v1.xml
/usr/share/wayland-protocols/staging/xwayland-shell/xwayland-shell-v1.xml
/usr/share/wayland-protocols/staging/cursor-shape/cursor-shape-v1.xml
/usr/share/wayland-protocols/staging/ext-foreign-toplevel-list/ext-foreign-toplevel-list-v1.xml
/usr/share/wayland-protocols/staging/security-context/security-context-v1.xml
/usr/share/wayland-protocols/staging/ext-transient-seat/ext-transient-seat-v1.xml
/usr/share/wayland-protocols/unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml
/usr/share/wayland-protocols/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml
/usr/share/wayland-protocols/unstable/input-method/input-method-unstable-v1.xml
/usr/share/wayland-protocols/unstable/input-timestamps/input-timestamps-unstable-v1.xml
/usr/share/wayland-protocols/unstable/keyboard-shortcuts-inhibit/keyboard-shortcuts-inhibit-unstable-v1.xml
/usr/share/wayland-protocols/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
/usr/share/wayland-protocols/unstable/linux-explicit-synchronization/linux-explicit-synchronization-unstable-v1.xml
/usr/share/wayland-protocols/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml
/usr/share/wayland-protocols/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml
/usr/share/wayland-protocols/unstable/primary-selection/primary-selection-unstable-v1.xml
/usr/share/wayland-protocols/unstable/relative-pointer/relative-pointer-unstable-v1.xml
/usr/share/wayland-protocols/unstable/tablet/tablet-unstable-v1.xml
/usr/share/wayland-protocols/unstable/tablet/tablet-unstable-v2.xml
/usr/share/wayland-protocols/unstable/text-input/text-input-unstable-v1.xml
/usr/share/wayland-protocols/unstable/text-input/text-input-unstable-v3.xml
/usr/share/wayland-protocols/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml
/usr/share/wayland-protocols/unstable/xdg-foreign/xdg-foreign-unstable-v1.xml
/usr/share/wayland-protocols/unstable/xdg-foreign/xdg-foreign-unstable-v2.xml
/usr/share/wayland-protocols/unstable/xdg-output/xdg-output-unstable-v1.xml
/usr/share/wayland-protocols/unstable/xdg-shell/xdg-shell-unstable-v5.xml
/usr/share/wayland-protocols/unstable/xdg-shell/xdg-shell-unstable-v6.xml
/usr/share/wayland-protocols/unstable/xwayland-keyboard-grab/xwayland-keyboard-grab-unstable-v1.xml

Ну т.е. каждый пилит то что хочет.

Не пилят! Только свой софт который в паре с композитором работает может использовать эксперементальные расширения. Например так работают плагины в hyprland.

А разрабам софта что поддерживать?

Официальные расширения. см. выше.

Или скажете что есть базовые протоколы которые обязаны поддерживать все композиторы?

Не обязан никто поддерживать все. Все реализуют, то что им нужно. Например не всем нужен fractional scaling, банально это может быть простой wayland сервер для смартфона, где остальной интерфейс уже рисуют например с помощью egl. Но если вы пишете софт взаимодействующий с сервером, то он должен поддерживать официальные расширения, которые вам необходимы, и не городить изобретение колеса.

Что за глупость. Почему я вообще должен? Как это вообще относится к обсуждению вообще?

Так вы же топите за X11. Сделайте и рассказывайте, как все круто в X11, а на данный момент это потуги горе теоретика, который никогда не программировал ни X11 ни Wayland.

Так запустите, сделайте бенчмарк сборки, сколько она займет.

Проблема старого оборудования заключается в том, что оно содержит кучу ошибок, проектировалось на старых системах без должного тестирования. В современном мире они никому не нужны, разработчик кто поддерживал этот драйвер мог уже уйти из жизни, и кроме него никто в этом не разбирается. А у других людей нет этого оборудования, другие подсистемы, и другие задачи. Ядро сложное и содержит более 30млн строк кода, и каждый разработчик разбирается только в паре подсистем. Инженер проектировщик автодорог, не может стать врачом проктологом! Так же поддержка старого оборудования требует грязных хаков кода, написан код под старые компиляторы, и мешает поддержке более современного оборудования, компиляторов и безопасных стандартов С, отсюда не редко страдает производительность всего ядра! Весь этот старый код очень усложняет добавление нового кода и поддержку современного оборудования. Благо разработчики начали вычищать этот мусор и грязный код, чтобы было проще его сопровождать и разобраться в нем. Нужна поддержка старого оборудования, качайте старое ядро с архива, и не мешайте разработчикам делать свою работу.

Согласен с вами. Когда занимался Open Source проектами, то почти каждый второй приходит, и считает, что ты им что-то должен! Притом они очень настойчиво и в грубой форме пытаются в этом тебя убедить! И не важно, что ты итак тратишь свои деньги и время на поддержание проекта. Open Source это не благотворительность, у людей есть кроме этого основная работа, семья, и еще куча проблем. Если что-то не устраивает, бери и форкай проект, это никто не запрещает.

Может это сделаете вы?

У вас там сборка зависла. Я нашел инфу по бесплатным лимитам, там всего 500мб дают хранилища под релизы. GE пользуется платной подпиской. Да, и как показано по вашей ссылке, ваша сборка накрылась медным тазом.

1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность