LINUX.ORG.RU

Solus отказывается от GTK

 , , ,


3

2

Один из лидеров проекта Solus Linux, Джошуа Стробл (Joshua Strobl), объявил о намерении отказаться от GTK при разработке как будущих версий Budgie, так и всей экосистемы приложений в Solus. В своем блоге он высказал ряд упреков в адрес текущего состояния и планов развития GTK, а также философии разработки GNOME.

По его словам, повсеместное насаждение Adwaita как единственно верной темы рабочего стола и попутное удаление части API для разного рода кастомизации добавило головной боли разработчикам, поддерживающим стек GNOME в дистрибутивах или интегрирующим в него свои приложения. Все предлагаемые варианты настройки внешнего вида приложений на базе GTK и сопутствующих библиотек отклоняются, а участники команды GNOME в ответ грубят в тикетах и соцсетях.

Жалуется Джошуа и на то, что выпущенный чуть менее года назад GTK 4 немного усложнил код для работы с виджетами, запретив прямое наследование. Но гораздо более важной проблемой ему видится упразднение API X11, в частности для получения конфигурации подключенных мониторов. Двигаясь в сторону полной поддержки Wayland, GNOME удалил функции опроса X-сервера, поручая разработчику писать собственные интерфейсы для обращения напрямую к X11 (либо к API других ОС, если приложение оказалось кроссплатформенным).

В то время как рабочая функциональность удаляется, многие известные ошибки в GNOME не исправляются месяцами и годами (в частности, автор приводит в пример ошибки с прокруткой в GtkListView и с переключением на другое окно при открытом выпающем списке в GtkPopover). При этом Джошуа описывает это в разрезе собственного опыта написания с использованием GTK своего аудиоплеера Koto.

Релиз GTK 4 не оправдал ожидания авторов Solus, надеявшихся на ряд обещаемых изменений в libhandy, которые в итоге так и не были добавлены. А дорожная карта к GTK 5 предрекает ещё большее закручивание гаек в части кастомизации и общий регресс как в UX, так и для использования библиотки в сторонних приложениях. Джошуа прямым текстом утверждает, что использование в разработке GTK 4 и выше — это выстрел себе в ногу.

По итогам этих размышлений лидеры проекта Solus приняли решение отказаться от использования GTK в Budgie и в целом минимизировать присутствие GNOME в своем пользовательском окружении, перейдя к выбору одного из следующих GUI-тулкитов:

  • EFL (библиотека в основе Enlightment Desktop);

  • Qt;

  • iced (кроссплатформенная GUI-библиотека для Rust).

В случае Qt разработчикам Solus не хочется писать код на C++, и к тому же смущает «коммерческая лицензия» Qt и неприятный осадок. iced находится в ранней стадии разработки и многие полезные вещи придется писать с нуля, а ресурсов для этого нет.

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

Что касается дистрибутива, то версия с GNOME будет собираться в отдельный образ, и ей будет уделен минимум внимания, будет обеспечена лишь базовая работоспособность. В Budgie 11 не будет никаких зависимостей от GTK.

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

★★★★★

Проверено: hobbit ()
Последнее исправление: sudopacman (всего исправлений: 9)

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

Вам ещё раз показать Blender, Shotcut и прочие? Или Google Chrome продемонстрировать?

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

Ну так пускай рисует стандартный полупустой заголовок.

Так а где и у кого его брать? libdecor представлен совсем недавно, остальные рисуют какую-то дичь или вообще ничего не рисуют. Всё это нарушает UX/UI используемый в GNOME и тормозит продвижение Wayland в GNOME-based окружениях.

Потому что X11 ≠ Wayland, и требования у них к клиентским приложениям разные.

Вижу, что вынужден повторять одно и то же по десятому кругу, а до вас эта простейшая мысль всё никак не дойдёт, увы.

А я тоже повторю свой аргумент, который вы так и не смогли оспорить по десятому кругу: отсутсвие поддержки xdg-decoration в Mutter вызвано не техническими причинами, а сугубо политическими. И это политическое решение GNOME только мешает распространению и развитию Wayland.

Не используйте связку GNOME + Wayland. Используйте то окружение, которое более соответствует вашим чаяниям. Спасибо.

Возможно вскоре я так и поступлю. Тем более KDE на Wayland-сеансе стал недавно более-менее юзабельным. Вот прямо сейчас читаю фактически этот же спор (но с другим пользователем) трёхлетней давности и вижу что ничего не изменилось, всё тот же «Fix the applications and libraries that claim the support Wayland, but don’t do it properly.», когда у других уже есть рабочее и не костыльное решение.

Штош, с таким подходом GNOME-разработчиков понятно почему Valve выбрали для своего Steam Deck тот же KDE.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от peregrine

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

Ваши сообщения несут околонулевую смысловую нагрузку.

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

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

Если остаётся белый лист на фоне всего остального тёмного, то смысл использовать тёмную тему.

Вы на ЛОР-е когда сообщение пишите не замечаете что фон белый, текст чёрный или вас напрягает?

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

Ну запусти панель переключатели раскладки, да.

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

Sorry

А пытался ли хоть кто-нибудь, какую-нибудь спецификацию для окон разработать?

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

Какие окна? Это ПРОТОКОЛ!

Не о Wayland речь …

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

Ну так кто-то сомневается в том что в ближайшем будущем вялый будет запускать фулскрин окошко с электроном, а в нём уже и будут юзеры работать?

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

Стукачи заели, скучно стало.

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

papin-aziat ★★★★★
()
Ответ на: комментарий от EXL

отсутсвие поддержки xdg-decoration в Mutter вызвано не техническими причинами, а сугубо политическими

Ну, в Issue на GitLab они ссылались на то, что в Mutter будет «сложно» добавить поддержку SSD. Не знаю, правда ли это настолько сложно, но налицо либо вопиющая некомпетентность, либо зловредность (а на деле и то, и другое).

sudopacman ★★★★★
()
Ответ на: комментарий от papin-aziat

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

Имеется ли спецификация в которой отражено это «светлое будущее»?

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

тебя спрашивают почему твой ничего не умеющий, гном, который занимает меньшую долю, чем даже одно КДЕ (и по моему, даже меньше чем ХФЦЕ)

На этот счёт достаточно репрезентативной выборки я не видел.

Вроде в Arch KDE был на первом месте. Однако, в Debian ситуация обратная. А учитывая популярность Ubuntu, пользователи которой нигде толком не учитываются, я бы позволил себе сомневаться в вашем утверждении.

ломает весь опенсорсный десктоп

Часовню тоже GNOME развалил?

И как же выходит у такого непопулярного по вашим словам GNOME ломать аж весь «опенсорсный десктоп»? Что-то не сходится. 😉

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

Если Гном своим оконным менеджером берётся регулировать окнами, то и декорации им тоже должен, иначе нафиг он вообще нужен? Точка.

Читайте стандарт протокола Wayland до просветления. По сто раз объяснять одно и то же мне уже надоело. Всего хорошего.

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

Ну, в Issue на GitLab они ссылались на то, что в Mutter будет «сложно» добавить поддержку SSD.

Это очень слабая отговорка после их радужных статей о том, как «они сделают революцию» и избавятся от стандартных title bar’ов: https://blogs.gnome.org/tbernard/2018/01/26/csd-initiative/

Решение там сугубо политическое.

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

Я не являюсь пользователем программы MuseScore.

Ну вот, кстати, свежий мокап Audacity на культях:

https://twitter.com/Tantacrul/status/1438151993386733570/photo/1

Будет реализовано скорее всего тоже на QML, потому что пилить это будет соседняя команда.

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

Nothing in the Wayland protocol requires Client Side Decorations or forbids Server Side Decorations

Ещё раз процитирую xdg-decoration, который вы все здесь с таким усердием облизываете:

If compositor and client do not negotiate the use of a server-side decoration using this protocol, clients continue to self-decorate as they see fit.

continue to self-decorate as they see fit

continue

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

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

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

о, они отказываются от wx? В винде qt довольно тормозной.

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

А примеры использования QtQuick/QML в профессиональном или коммерческом ПО, которое вышло в релиз имеются?

Я только одно знаю – Genymotion.

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

Я постараюсь остаться в блаженном неведении по поводу того, о чём ты говоришь. Если меня лично будет в целом устраивать, то на каких языках, тулкитах и философиях это будет стоять, — неважно! Важно то, что шляпа — контора ответственная и самая продуктивная.

papin-aziat ★★★★★
()
Ответ на: комментарий от Rootlexx

Кстати, с этого надо было спор начинать и не продолжать.

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

Так а где и у кого его брать? libdecor представлен совсем недавно

Я же вам уже писал, что ещё не всё готово к Wayland. Со временем везде добавят, как недавно добавили в SDL.

отсутсвие поддержки xdg-decoration в Mutter вызвано не техническими причинами, а сугубо политическими

Да хрен с ним с mutter. Вам не нравится отсутствие заголовков окон в Wayland-сеансе GNOME — но ровно то же самое может быть и в любом другом композиторе! Потому что xdg-decoration опционально. Сколько ещё раз повторить?

Если вы топите за серверные декорации, то вы должны идти не в багтрекер GNOME, а к писателям стандартов Wayland, чтобы включили упомянутое расширение в core. Тогда и только тогда вы можете расчитывать на «нормальное» (по-вашему) поведение приложений в любом композиторе.

Возможно вскоре я так и поступлю

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

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

Ломают опенсорсный десктоп подмяв разработку всего гтк под себя, зарулив разработку вейланда в нужную только им сторону, даже системды подрулили под себя, имея внутриредхатовское единое управление, которому и линуксовый десктоп и разнообразие опенсорсного мира по барабану. Заметь, каждый из этих проектов контролируется редхатом. Недавно я писал о том, как Шаттлорт жаловался когда-то на выталкивание Каноникла от разработки гнома и пр. (когда те разрабатывали Юнити), все ржали. Теперь Солусы жалуются, ржоте, ну конечно, вы же на стороне гиганта, гигант присмыкателей не тронет...

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

Вы на ЛОР-е когда сообщение пишите не замечаете что фон белый, текст чёрный или вас напрягает?

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

Rootlexx ★★★★★
()
Ответ на: комментарий от papin-aziat

Эх, рад, что у тебя теплится порох в пороховницах, но я на сегодня баиньки.

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

А пытался ли хоть какую-нибудь спецификацию для окон разработать?

Вопрос не в спецификациях — они есть — а в единообразии. Есть несколько спецификаций и стандартов, а также описываемых ими реализаций.

Rootlexx ★★★★★
()
Последнее исправление: Rootlexx (всего исправлений: 1)
Ответ на: комментарий от Rootlexx

Кто — я? 🙂

Вопрос не в спецификациях — они есть — а в единообразии. Есть несколько спецификаций и стандартов, а также описываемых ими реализаций.

Следующим постом ведь я извинился и привел корректный текст вопроса …

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

Следующим постом ведь я извинился и привел корректный текст вопроса …

Прошу прощения, но я читаю (и, соответственно, отвечаю) последовательно. Когда я увидел ваше сообщение, я своё отредактировал.

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

А кто какой придерживается?

Потому что из постов следует, что постоянно изобретают НОВОЕ КОЛЕСО …

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

Имеется ли спецификация в которой отражено это «светлое будущее»?

Даже лучше, много читать не надо. Накатывай Федору и увидишь, светлое будущее будет выглядеть примерно так.

papin-aziat ★★★★★
()
Ответ на: комментарий от Rootlexx

Если вы топите за серверные декорации

Я топлю за то, чтобы заголовки окон работали в GNOME 3 в приложениях под Wayland. А как они это сделают: пропихнут ли libdecor в каждый проект, реализуют в Mutter этот xdg-decoration или отправят патчи каждому разработчику тулкита – всё равно. Как пользователь я про эти технические аспекты не хочу знать.

Fedora с Wayland-сеансом по умолчанию вышла 6 лет назад. Три года я ждал решения этой проблемы и не дождался. Прошло ещё три года, а проблема до сих пор не решена.

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

А почему я, собственно, не могу спросить в баг-трекере GNOME причину того, что они не внедряют xdg-decoration для решения существующей и актуальнейшей проблемы?

EXL ★★★★★
()
Ответ на: комментарий от papin-aziat

Даже лучше, много читать не надо. Накатывай Федору и увидишь, светлое будущее будет выглядеть примерно так.

Без спецификаций поломают …

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

Я топлю за то, чтобы заголовки окон работали в GNOME 3 в приложениях под Wayland.

Заголовки окон — это рудимент из 80-х годов, который в Wayland решили не тащить. Хотите заголовки, пользуйтесь XWayland. Там ICCCM, там оконный менеджер и заголовки.

Ты б ещё выпадающее меню попросил.

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

Заголовки окон — это рудимент из 80-х годов, который в Wayland решили не тащить.

Ага, и в итоге GNOME-разработчики сделали этот костыль, который делает… заголовок окна!

Ж - Логика.

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

Я топлю за то, чтобы заголовки окон работали в GNOME 3 в приложениях под Wayland. А как они это сделают: пропихнут ли libdecor в каждый проект, реализуют в Mutter этот xdg-decoration или отправят патчи каждому разработчику тулкита – всё равно. Как пользователь я про эти технические аспекты не хочу знать.

Вот это я могу понять и считаю здравой позицией.

Fedora с Wayland-сеансом по умолчанию вышла 6 лет назад. Три года я ждал решения этой проблемы и не дождался. Прошло ещё три года, а проблема до сих пор не решена.

Согласен, что всё продвигается медленно. Однако же и инерция велика: сколько людей реально пользовались Wayland те 6 лет назад, а не переключались немедленно на сеанс Xorg? Даже в GNOME 3.30 пользоваться Wayland-сеансом было не то чтобы нереально, но весьма некомфортно. Если сравнивать с историей развития X11 и экосистемы вокруг него длиной в десятилетия, то Wayland всё ещё очень молодой проект, особенно если вести отсчёт от состояния «хотя бы можно кое-как пользоваться».

Кроме того, мешает и наличие Xwayland: разработчики просто не заинтересованы в полноценной поддержке Wayland, если их программы продолжают работать через прослойку, как ни в чём не бывало. (Та же Qt, ЕМНИП, продолжает работать через xcb по умолчанию, если используется сеанс GNOME на Wayland.)

А почему я, собственно, не могу спросить в баг-трекере GNOME причину того, что они не внедряют xdg-decoration для решения существующей и актуальнейшей проблемы?

Спросить вы, безусловно, можете — никаких проблем. Но не требовать немедленно реализовать поддержку опционального расширения и лезть в бутылку в случае отказа.

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

… но я читаю (и, соответственно, отвечаю) последовательно.

Вот в Windows имеется ЕДИНАЯ ОКОННАЯ ПОДСИСТЕМА.
А разных GUI, как крыс в подвалах …

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

Ну ладно, тогда я тебе ещё раз скажу то, что уже сказал (но другими словами, может, так дойдёт).

Есть базовый протокол Wayland. Но многим десктопным приложениям для полноценной работы недостаточно базового протокола, и требуются расширения (опциональные для протокола в целом). Если разработчик композитора отказывается реализовать расширение, нужное для работы определённого приложения, то пользователи скажут, что этот разработчик мудак. Так вот, гномоделы отказываются реализовать расширение, нужное для работы многих приложений. Смекаешь?

Давай даже ещё раз полностью перечитаем описание xdg-decoration, чтобы понять, что ты сморозил фигню:

This interface allows a compositor to announce support for server-side decorations.

A window decoration is a set of window controls as deemed appropriate by the party managing them, such as user interface components used to move, resize and change a window’s state.

A client can use this protocol to request being decorated by a supporting compositor.

If compositor and client do not negotiate the use of a server-side decoration using this protocol, clients continue to self-decorate as they see fit.

Там ничего нет про то, что поддержка CSD со стороны приложения обязательна. Ты всего лишь интерпретировал так, потому что тебе так выгодно. А предложение «A client can use this protocol to request being decorated by a supporting compositor» как раз повторяет то, что я выше написал: если приложение хочет, чтобы декорации рисовал композитор, то оно использует этот протокол. Так же, как можно использовать другие расширения для реализации другой функциональности, не вошедшей в базовый протокол.

А если разработчик отказывается реализовать расширение, пытаясь вместо этого насадить другим свое видение, то он мудак (в подавляющем большинстве случаев).

sudopacman ★★★★★
()
Последнее исправление: sudopacman (всего исправлений: 1)
Ответ на: комментарий от anonymous

Вот в Windows имеется ЕДИНАЯ ОКОННАЯ ПОДСИСТЕМА. А разных GUI, как крыс в подвалах …

А в Linux ее НЕТ!
Да только ли ее?

Похоже на анархию ...
anonymous
()
Ответ на: комментарий от sudopacman

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

Пользователи могут говорить что угодно: что разработчики мудаки, что мы с вами тоже мудаки… Пользователи хотят «чтобы работало так, как им хочется», и обычно совершенно не разбираются в причинах-следствиях принятых разработчиками решений.

Если расширение протокола опционально, это по определению означает, что оно может отсутствовать в данном конкретном композиторе. А значит, если приложение хочет работать под данным композитором, то оно обязано реализовывать схожую функциональность самостоятельно, если это возможно.

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

Там ничего нет про то, что поддержка CSD со стороны приложения обязательна

If compositor and client do not negotiate the use of a server-side decoration using this protocol, clients continue to self-decorate as they see fit.

Вам перевести?

«Если композитор и клиент не согласуют использование декораций со стороны сервера, используя данный протокол, то клиенты продолжают декорировать себя самостоятельно (т.е. использовать декорации на стороне клиента — моё примечание)».

Что значит «продолжают», объяснять нужно?

Не согласовали SSD — должны продолжать использовать CSD (включая отсутствие видимых декораций). Если приложение хочет декорации, но не согласовало использование SSD с композитором, и затем вместо рисования декораций на стороне клиента не рисует их вовсе, то оно сломано.

Rootlexx ★★★★★
()
Последнее исправление: Rootlexx (всего исправлений: 3)
Ответ на: комментарий от sudopacman

Там ничего нет про то, что поддержка CSD со стороны приложения обязательна

Никто и не заставляет. Будет голое окно без декораций. Ну какбы, а что не так он сказал-то? Хочешь декорации:

  • запрашивай опциональный протокол
  • нету, рисуй декорации сам (aka CSD и libdecor)
  • не хочешь CDS, костыль свой велик
  • не хочешь ничего - ну и хрен с ними с этими декорацяими, пользователи перетопчутся.
SkyMaverick ★★★★★
()
Ответ на: комментарий от anonymous

А в Linux ее НЕТ!

Кстати GUI QT было как надстройкой на WIN API /близнецы братья/.
Да таковым и осталось и стало кросc-платформенным …

И все ok!
anonymous
()
Ответ на: комментарий от papin-aziat

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

только не к светлому, а к глубокому

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

Разработчики GNOME представили библиотеку libdecor с HIG’ом, которую уже начал использовать SDL2. Интересно (нет) что ты там напишешь на этот раз.

А что изменилось собственно? Кто-то написал простенькую библиотечку и кто-то начал её использовать? Ну ок. Теперь надо написать ещё одну библиотечку для КДЕ, для Енлайтмент, для Мате и для Бунги, для ДЕ от Васяна и каждая программа должна все эти библиотечки цеплять в зависимости от того, под чем запущена? Я правильно понимаю твою мысль?

Или хватит тупить и признаешь наконец, что задача, которую ты хотел поручить SSD или libsimplewindow.so - это идиотизм, борьба с ветряными мельницами? Ну а либдекор - это да, библиотечка, если кому-то нужно то что она делает, то на здоровье.

Да-да, хотел бы я тебе уменьшить все кнопочки в твоём DE в заголовках окна до размера блох на кошке и понаблюдать с недельку как ты их «выщипываешь» курсором.

Ну извини, так вот оно сделано в MPV. У него все кнопки такие, все по размеру пропорциональны окну. Не нравится - пользуйся другим.

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