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)

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

Debian, SUSE, RHEL/CentOS/Fedora, Ubuntu используют GNOME 3 по умолчанию.

В перечисленных тобой дистрибутивах GNOME был всегда по умолчанию, ещё задолго до KDE 4 и GNOME 3. Ну кроме SUSE, и то недолго.

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

Мне действительно не нравится, когда приложение которое я постоянно запускаю, появляется без заголовка окна. Кто бы мог подумать!

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

Но сам протокол xdg-decoration является опциональным, поэтому программа никак не должна завязываться на его присутствие.

Более того, в самом 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.
Rootlexx ★★★★★
()
Ответ на: комментарий от Sunderland93

В перечисленных тобой дистрибутивах GNOME был всегда по умолчанию, ещё задолго до KDE 4 и GNOME 3.

Да вот только сколько раз после смерти KDE 3 и GNOME 2 в том же Debian или Ubuntu начинали выбирать дефолтное DE из-за неадекватности GNOME и GNOME-разработчиков? И если бы в это время KDE предоставлял адекватное окружение, а не плазму из KDE 4, всё для KDE могло бы сложиться совсем по-другому.

Впрочем, из KDE Plasma 5 хотя бы Oxygen и неон с окошек убрали, да вот только поздновато. Современный KDE только сейчас начал получать признание того же Valve (Steam Deck) и я искренне надеюсь, что удобнейшие программы KDE-стека вроде Konsole, Yakuake, Okular, Dolphin, Kate, KWrite, Ark, Gwenview и др. не убьют хипстеры с QtQuick/QML наперевес. Они уже испортили центр настроек, например. И вместо порта Amarok на Qt 5 завезли однокнопочную Elisa или что-то вроде того, которой никто не пользуется.

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

Согласен. Но с другой стороны - это самый простой способ дать рамку окну, не прибегая к самописным декорациям при помощи Cairo или велосипедов типа https://gitlab.gnome.org/jadahl/libdecor

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

не убьют хипстеры с QtQuick/QML наперевес

Насчёт ПО не скажу, но вот внедрение QML идёт полным ходом. На нём переписывают все эффекты.

И если бы в это время KDE предоставлял адекватное окружение, а не плазму из KDE 4, всё для KDE могло бы сложиться совсем по-другому.

Я помню только как Debian одно время пытался Xfce по умолчанию включить, но потом отказались

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

И вместо порта Amarok на Qt 5 завезли однокнопочную Elisa или что-то вроде того, которой никто не пользуется

Кстати да, Elisa на редкость угрёбищное поделие.

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

Проблема не в том, что в протоколе Wayland декорации являются опциональными, а в том что разработчики GNOME принципиально никак не хотят решать проблему с отсутствием (или ущербностью) декораций окон в GNOME 3, надеясь на какие-то «CSD-инициативы» из своих влажных снов, как будто у них 99% аудитории и все будут прислушиваться к их инициативам. Этакий манямирок разработчиков GNOME.

А юзеры из-за таких вот принципиальных позиций страдают с убогими заголовками окон либо вообще их отсутствием.

Дурацкое принципиальное решение разработчиков GNOME очень сильно тормозит продвижение Wayland в Linux-дистрибутивы.

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

Вот нинада, если бы не желание выглядеть старше перед одногрупниками яселек, тебе бы тоже оксиджен понравился :)

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

А им оксиджен не нравится...

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

Особенно при виде сдвоенных панелей инструментов, где два градиента слеплены....

Поменять тему GTK не было проблемой ещё 20 лет назад.

AP ★★★★★
()

Имхо, с гтк3 ещё всё было понятно. Ну, хорошо, хоть на 4 версии дошло.

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

Можно подумать, QML как-то определяет функциональность софта.

Странное заявление. QtQuick/QML существенно влияет на UX/UI. На QtQuick/QML ты никогда в здравом уме не сможешь написать вот такой интерфейс профессионального ПО: https://baat.z-lab.me/~exl_lab/screens/idalarge.gif, а на QtWidgets – запросто. C QtQuick/QML ты можешь насоздавать лишь пачку убогих Elisa-плееров и прочих приложений с мобильным интерфейсом, очень «удобных» для использования на десктопах.

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

Справедливости ради, Amarok никогда небыл в KDE дефолтныи. Там дефолтом был Juk. Даже в лутчие времена Амарока. И Жуком тоже никто не пользовался.

Plasma - это ахиллесова пята KDE, да. Но мне, всё же, жаль, что недожали один глобальный стол всей плазмы, что был в самом начале. И отдельное оформление каждого стола. А комнаты - чем идеологически они отличаются от столов, я так и не понял. Весь функционал приписываемый комнатам спокойно мог быть реализован в столах.

Если бы кто написал «неплазму», классический Kicker, для пятокед, или шестокед - расцеловал бы в уста сахарные.

R_He_Po6oT ★★★★
()

Ниосиляторство в чистом виде

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

А документация у них хорошая?

Лучше документация которую я видел в OpenSource проектах у Qt, худшая у XCB. У EFL она весьма посредственная, но хотя бы есть.

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

На QtQuick/QML ты никогда в здравом уме не сможешь написать вот такой интерфейс профессионального ПО: https://baat.z-lab.me/~exl_lab/screens/idalarge.gif, а на QtWidgets – запросто. C QtQuick/QML ты можешь насоздавать лишь пачку убогих Elisa-плееров и прочих приложений с мобильным интерфейсом, очень «удобных» для использования на десктопах.

Кул стори, бро. На QtQuick/QML прямо сейчас дописывается нотный редактор MuseScore 4, например.

https://i.imgur.com/LC5CiMq.png (сборка из гита)

Куча дополнительных панелей, настраиваемые тулбары, именованные воркспейсы и прочее.

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

Поменять тему GTK не было проблемой 20 лет назад

Так правильнее. Теперь за это в Гноме в целом и в Гтк в частности расстреливают.

И мы говорим об ужаснос и дефолтов. В В кде (СЛАВА БОГУ) до сих пор можно поменять на что-то красивое, пусть и ребёнку с психикой изуродованой Адвайтой.

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

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

Что разрабам не нравятся 100500 ужасных на вид тем, с которыми скриншотят их софт — тоже могу понять, хотя не одобряю реакцию.

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

Имхо, с гтк3 ещё всё было понятно. Ну, хорошо, хоть на 4 версии дошло.

Ой, а вы не могли бы разъяснить подробнее, с какими проблемами вы столкнулись при разработке софта на GTK?

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

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

Это всё пустое балабольство. Конкретно тот автор технически абсолютно прав, а разговоры о «разработчики не хотят» и прочее — сродни разговорам о «справедливости», т.е. в пользу бедных.

Декорации на стороне сервера тоже не являются абсолютно бесплатными, ибо с ними тоже нужно работать для получения событий и проч. Однако на это никто не жалуется, поскольку все уже привыкли и воспринимают эту необходимость как должное, а тулкиты интегрировали работу с ними в свой API. Со временем то же самое будет и с декорациями на стороне клиента: те, кто захочет создавать свои, будут это делать, а кто не захочет — за них это будут делать тулкиты/библиотеки. Однако плакать о том, что, мол, злые дяди заставляют делать телодвижения для CSD, хотя так испокон веков и было, и есть и с SSD, — просто глупо.

Но большинство забило и теперь у меня в GNOME 3 приложения использующие SDL2 под Wayland’ом без заголовков окон.

Т.е. забили одни, а виноваты почему-то другие?

Не говоря уже о том, что рисовать заголовок в неполноэкранном режиме по-хорошему должна сама SDL.

Качество работы этих костылей уже достаточно подробно описано на форуме

То, что QGnomePlatform работает плохо — это факт, но это исключительно вопрос допиливания. А где почитать про претензии к libdecor?

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

Да вот только сколько раз после смерти KDE 3 и GNOME 2 в том же Debian или Ubuntu начинали выбирать дефолтное DE из-за неадекватности GNOME и GNOME-разработчиков?

Насколько помню, в Debian основной мотивацией было желание уместить всё на 1 CD.

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

А ты понимаешь смысл того, что цитируешь?

А в репозиторий заглядывал?

Давай помогу: https://pastebin.com/Pfuh8axh.

Это просто для понимания, какая часть интерфейса охвачена.

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

Судя по скриншоту, MuseScore 4 поделка динозавров времен oxygen. Скругленные формы скрипичного, альтового, басового ключей, нот, лиги - не соответствует современному представлению о дизайне. Отвлекает мозг от извлечения звуков из инструмента. Есть же нормальная квадратная нотация. https://commons.wikimedia.org/wiki/File:Graduale_Aboense.jpg#/media/Файл:Graduale_Aboense.jpg

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

У меня другой вопрос. Вот несколько лет назад был срач между гномерами и авторами MPV как раз из-за xdg-decoration. Мпвшники грозились какими-то страшными карами, а в итоге по прошествии некоторого времени запускаешь mpv под вялендом в гноме и видишь кастомный заголовок окна со всеми нужными кнопками. Зачем были все эти разборки, если итог один?

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

Это какая-то слишком сложная шутка. Я для неё слишком тупой, сорян.

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

Т.е. забили одни, а виноваты почему-то другие?

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

Этот мир не вертится вокруг GNOME и никогда не вертелся. Какой именно заголовок окна должен отрисовывать SDL2? Может быть разработчики SDL2 вообще используют KDE и если они захардкодят KDE-заголовок в SDL2-либе будет ли это адекватно? Нет, будет вот эта ситуация из GNOME 3: https://gitlab.gnome.org/GNOME/mutter/uploads/b706e4893efd048fdb77e32c6f64ae36/Снимок_экрана_от_2017-12-16_11-04-00.png они к ней в итоге и пришли с их принципиальным инициативным решением.

То, что QGnomePlatform работает плохо — это факт, но это исключительно вопрос допиливания.

Заголовки Qt приложений под Wayland в GNOME 3 – говно. У окон нет теней, кнопки адекватно не нажимаются (даже нет аниммаций), текст заголовка рисуется коряво, но самое хреновое, что ресайз окна работает с ужасными багами, в границы окна для ресайза и перемещения хрен попадёшь. Все эти вопросы «решаются» уже несколько лет, а воз и ныне там. QGnomePlatform по сути один человек пилит, много он не напилит.

А где почитать про претензии к libdecor?

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

Да и никто из разработчиков графических тулкитов не будет тянуть эту libdecoration в зависимости. Примеры-то хоть есть, кто её подтягивает? Она же наверняка зависит от кучи всякого хлама. Так что или кто мешает Mutter’у самому использовать libdecor и юзать API оттуда на окнах у которых нет декораций? Ах да, принципиально идиотская позиция.

Не говоря уже о том, что рисовать заголовок в неполноэкранном режиме по-хорошему должна сама SDL.

По-хорошему разработчики предоставляющие буфер не дожны вообще думать о том, что там или кто отвечает за декорации. В Windows/macOS/X11/iOS/Android они предоставляют просто контекст окна, а дальше система пусть сама разбирается рисовать или не рисовать. И это правильный подход.

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

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

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

EXL ★★★★★
()

TL;DR ненужно отказывается от схожего (в политике разработки) ненужно и переходит на мёртвое ненужно.

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

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

А здесь реализовали на QML. Что не так-то?

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

Ну ОК, хорошо, спорить не буду, так как никогда не пользовался подобными программами.

Но то что сделали в KDE с модулем System Settings когда его переписали на QtQuick/QML – это ужас.

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

Зачем были все эти разборки, если итог один?

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

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

Вот пришёл @EXL и говорит, мол, ваш QtQuick/QML фигня, на нём только мобильную гомосятину с одной кнопкой делать, никуда такое не годится.

Вот я отвечаю, мол, ну как это – вот живое, сложное приложение на QML со всякими бантиками. Чё не так-то?

Следом приходишь ты и начинаешь спорить, что это какое-то ненужно, ещё деды на виджетах ваяли, а вы тут мастера велоспорта.

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

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

Проблема не в том, что в протоколе Wayland декорации являются опциональными, а в том что разработчики GNOME принципиально никак не хотят решать проблему с отсутствием (или ущербностью) декораций окон в GNOME 3, надеясь на какие-то «CSD-инициативы» из своих влажных снов, как будто у них 99% аудитории и все будут прислушиваться к их инициативам. Этакий манямирок разработчиков GNOME.

«Проблема не в том, что в протоколе Wayland декорации являются опциональными, а в том что разработчики отдельных приложений принципиально никак не хотят решать проблему с отсутствием (или ущербностью) декораций окон в GNOME 3, надеясь на какие-то «xdg-decoration» из своих влажных снов, как будто у них 99% аудитории и все будут прислушиваться к их инициативам. Этакий манямирок разработчиков отдельных приложений.»

Ещё раз: если разработчики приложений хотят, чтобы в Wayland у их приложений были декорации окон, они обязаны исходить из возможного отсутствия поддержки xdg-decoration. И, соответственно, рисовать их самостоятельно (плохой вариант), полагаться на тулкит (нормальный вариант) или библиотеку типа libdecor (тоже нормальный вариант). Заметьте, я этом абзаце нет слова «GNOME» — потому что это не является специфичной для этой среды проблемой; другие композиторы также не обязаны реализовывать поддержку xdg-decoration, и в них у таких недоделанных приложений будут ровно те же самые проблемы.

А юзеры из-за таких вот принципиальных позиций страдают с убогими заголовками окон либо вообще их отсутствием.

Пользователи страдают исключительно из-за неполной готовности некоторых тулкитов к работе в Wayland. Но высказывают претензии почему-то совсем не авторам этих тулкитов.

Это как если бы при использовании SSD некоторое приложение реализовало бы вывод основного содержимого окна, но не реализовало бы реагирование на сообщение о его закрытии — и пользователи обвиняли бы не это приложение, а менеджер окон. Маразм же.

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

Но то что сделали в KDE с модулем System Settings когда его переписали на QtQuick/QML – это ужас.

Руководствуясь той же логикой, можно навелосипедить тему Qt в стиле My Little Pony, сделать скриншот, а потом всем его показывать и рассказывать, какое вырвиглазное говно этот Qt (да, девочки, но нет).

Наверное надо как-то различать технологию и её применение? Уж на техническом-то форуме можно, наверно?

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

Ну так одно другое не отрицает. Чтобы наваять что-то вменяемое на QML они завелосипедили Виджеты. Нафига тогда эта JS-дрысня?

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

Где таут приводили ссылку на сайт «не изменяйте стилей нашего гтк, оно от этого разваливается»? Это писали не злопыхатели, скрежещущие на гткэшечку, а сами раздрябры.

И что за преступление делать скриншоты софта в том виде, который нравится ПОЛЬЗОВАТЕЛЮ? Хоть какой-то лицензией это предусмотрено? Допустим, они (хотя, кто это они? кучка гткшной илиты, захатившей руль и решающей за всех чего им зотеть?) не хотят рашвивать какие-то технологии внутри гтк, но они же выаиливают всё, что не угодно им, элите. И патчей не принимают, о чём и обсуждаемая тема вообще. Потому что гтк - это не сообщества, это то, что ретхат спускает директивой всему опенсорсному миру. И каким-то там авторам Солусов с их хотелками не место в «свободном обществе» будущего. Никакой соборной разработки, генеральная линия чьей-то тайной партии.

R_He_Po6oT ★★★★
()

Текущий Budgie неюзабелен.

EFL

Новое DE на EFL !!!!!!!!!!!!!!!!!!1 Budgie может стать юзабелен!

Всё правильно, на дебиане ещё 5 лет будет Гном3 который хорошо кастомизируктся, готовы сотни расширений и куча приятых тем. А вот всё что дальше херота какато (Хотя может что-то случится и будет хорошо). Беда ещё в разработчиках гнома, они реально отбитые, причём все. Но скорее всего потому что сидят на зарплате и что им скажут то и делают и яро защищают ту точку зрения которую им сказали принять. Именно поэтому они на прямые вопросы просто шлангуют. Тупо сцат сказать что-то не то и показательно агрессивно защищают свою общую точку зрения.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от sudopacman

EFL крутая, ты чего нагоняешь. Оно фичастее чет гтк/культя вместе взятые. Просто никто кроме просветлённых её не готовил.

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

Старое предание, обсосанное миллион раз. В соответствии с протоколом wayland отсутствие CSD рассматривается как ошибка в программном обеспечении, а не проблема гнома, каких-то расширений и чьего-то упорства.

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

В кедах у MPV на Wayland нормальная человеческая рамка окна.

А в GNOME 3 у MPV под Wayland – рамка курильщика:

https://baat.z-lab.me/~exl_lab/screens/GNOME3_wayland_mpv_fuckup.png

Открываешь любое видео с низким разрешением и видишь вот такое «удобство» кастомного заголовка.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.