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)
Ответ на: комментарий от pat_minus

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

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

Это SSD-истерички требуют чтоб кто-то другой испоганил свой проект просто потому что SSD-истерички не согласны с выбранным направлением

Не «««испоганил»»», а добавил поддержку стандарта XDG, которая уже есть в остальных основных реализациях. Чтобы уже написанные под этот стандарт приложения работали в гноме.

Можете продолжать жить в своей альтернативной реальности, где «за SSD нет ни одного вменяемого аргумента». Только не надо эту реальность пытаться другим насадить.

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

Просто нет причин для существования SSD кроме «спокон веков так делали и дальше будем».

Суть(ТМ) проста - люди работают не в DE, а в приложениях.

Если множество приложений, используемых людьми, нуждаются в server-side decorations, DE должно его предоставить.

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

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

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

но ведь сделали же! емнип, в ноде есть синхронные операции, и уже очень давно

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

в ноде есть синхронные операции, и уже очень давно

Не знаю как в ноде, но в libuv, на которой оно основано, есть. Прикольно реализован выбор : если передаёшь в операцию callback - то асинхроннная, не передаёшь - синхронная.

Недавно как-раз юзал libuv, вспомнилось.

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

Нет, оно просто не работает. А американские разработчики к проблемам неанглоязычных традиционно относятся как к чему-то непонятному.

Раз: https://gitlab.gnome.org/GNOME/mutter/-/issues/633

Два: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1365

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

Я вообще-то думал, что это не ДЕ-зависимая вещь, ну т.е. setxkbmap и всё такое. А оказывается её можно сломать :/

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

в ноде просто сделали два метода с одинаковым именем каждую на операцию, но с суффиком Sync у синхронных

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

Оно не готово и совсем вяло развивается. У автора какое-то своё видение по переделке API, которое нигде не задокументировано.

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

Я понимаю почему люди обычно после таких изысканий закрывают вкладку.
Откуда такой вывод?
Сам так сделал.

Так под «людьми» в исходном сообщении ты себя имел ввиду?

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

относятся как к чему-то непонятному

Пруф.

По ссылкам ничего такого не видим, просто отсутствие внимания к багу в принципе.

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

Иксозависимая.

Иксы тем и хороши, что примиряют разные религиозные лагеря и не дают им рвать одеяло.

В Wayland умышленно заложено усугубление несовместимости.

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

абсолютно никто кроме GTK+ и двух браузеров не запилил CSD нормально.

Я это интерпретирую как «никто кроме Gtk не сделал корректной поддержки Wayland».

wayland масштабируемый протокол. Для телефона можно использовать обязательный огрызок. Для чего то с возможностями побольше - более полную реализацию.

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

Если же разработчки гнома рассчитывают, что из-за их желания усидеть на двух стульях (ПК и мобилки) другие будут заморачиваться, то они явно ошибаются. Что время и показало. Прошло 6 лет - результата нет.

А то, что по прошествии 6 лет, разработчики гнома продожают делать вид, что они правы, говорит об их неадекватности.

В этом нет ничего страшного. Среди хороших программистов адекватных мало. Но это стоит учитывать.

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

Ну гипотетически можно любой адекватный 2D-растеризатор использовать. Но вообще да, сейчас используется cairo.

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

Вы — не неанглоязычный англоязычный разработчик? Не похоже.

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

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

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

Смузи обпились? Ещё ФП потребуйте и CSS.

Реализовать реакцию на приход данных в скоет или клик мышкой это требование смузихлебов? Посмотри ни mc, какими костылями они это реализуют. Вот когда ncurses в себя эти костыли встроит, тогда и приходи.

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

Оказалось что вы таки не поверите для кде у Qt есть исключение. )))

Там не просто исключение. Там у кдешников просто атомная бомба: «Если qt перестает быть gpl, у KDE e.V. есть право перелицинзировать GPL-ный qt-код под ЛЮБУЮ лицензию, даже под BSD.»

Таким образом если вдруг qt-company совсем скурвиться, кдешники могут под своим началом опубликовать код под bsd/mit лицензией, что поставит крест над бизнес моделью qt-company, ибо зачем платить деньки, когда есть вариант разрабатывать на кутях и при этом остоваться проприетарщиком.

https://kde.org/community/whatiskde/kdefreeqtfoundation/

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

гноморазрабы, такие гноморазрабы.

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

просто отсутствие внимания к багу в принципе.

ну вот прям как раз то, про что говориться в ОП

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

И ещё не позволять окнам максимизироваться или уходить в фон по своему желанию.

У окон никаких «своих желаний» вроде «внезапно максимизироваться» или «внезапно вылезти на передний план с перехватом фокуса ввода» быть не должно. Хозяин компьютера - пользователь. Вот вам лично понравится, если во время набора текста/кода/… или еще какой работы у какого-то соседнего окна внезапно зачешется вылезти у вас перед носом?

redeyedanonymous
()

Почитал комменты… Ах, как же мне уютно в моей криокамере, какой ветер за окном! У меня тут Дебиан 9 (скипнул 10, и не хочу недавно вышедший 11), без системд, обычные иксы, icewm. Уже много лет так.

Надеюсь когда мне потом понадобится укротить новомодности новой ГТК, вы мне поможете :)

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

Но одни только гномеры решили что весь софт должен быть на GTK и с толстенными бесполезными HeaderBar'ами

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

GtkHeaderBar - виджет-контейнер. Почти как GtkBox, только навороченный. Кроме заголовка (точнее, заголовка и подзаголовка) и необязательных кнопок управления окном в нём есть два места для втыкания любых других виджетов. Меню, тулбаров, чорта лысого. Т.е. при грамотном применении он, внезапно, место экономит, а не занимает. Вполне удобная штука (как и прочий GTK, несмотря на все старания гномеров, которые его неминуемо когда-нибудь испортят до полной неюзабельности).

Другой вопрос, что при запуске «неродного» приложения гном попросту рисует ему тот самый «толстенный бесполезный заголовок», который только похож на GtkHeaderBar, но таковым не является.

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

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

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

Почитал комменты… Ах, как же мне уютно в моей криокамере, какой ветер за окном! У меня тут Дебиан 9 (скипнул 10, и не хочу недавно вышедший 11), без системд, обычные иксы, icewm. Уже много лет так.

Оффтоп: в 11-м все работает с тем же набором. Можно переползать, если есть какие-то причины (ну, например, браузер не бекпортят)

Релиз Debian 11 под кодовым именем «bullseye» (комментарий)

Релиз Debian 11 под кодовым именем «bullseye» (комментарий)

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

Можно переползать…

Спасибо! Я кстати видел твой пост по первой ссылке. Почитываю ЛОР :)

А я переставляю, регулярно (стараюсь пореже). Но не с нуля. В чруте.

Не, я думаю на Девуан переползти через год. Согласен с аноном выше. Просто потому что так правильней жить. Я немножко мелко-принципиален.

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

Мое уважение!

Да ладно, чего тут уважать. Немножко и мелко. Уважать можно тех кто делает. EXL, i-rinat, многих других. Меня-то за что.

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

Не скажите. Сейчас и среди «делателей» не все однозначно. (Речь не о перечисленных). Вместе победим. Выстоим.

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

Ну желаю удачи постоянно получать мессаджбокс «а теперь нажмите кнопку максимизации» от любой запущенной игрушки, лол.

Глупость это. Хозяева компьютера - программы, они действуют как хотят и выполняют только те указания пользователя, которые захотят. Думать иначе - самообман. Вредный самообман, из которого возникают идиотские идет типа работоспособности юниксовой системы разграничения прав UGO.

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

Я специально не интересовался. Пою про что знаю.

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

Вместе победим. Выстоим.

Извиняюсь, может не к месту немного будет. Но мне вспомнился эпизод из 12 стульев, когда Остап и Киса (в конце, в Пятигорске) встретили в ресторане Кислярского, и запугали его, чтобы стрясти денег, типа, «придётся отстреливаться»… (там ещё Киса сказал «Полагаю, торг здесь неуместен»)

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

И кто в этом виноват? Гномеры! Потому что не сделали единый стандарт и спецификацию, потому каждый пилит во что горазд.

Ага, гномеры. «Муму написал Тургенев, а памятник поставили Пушкину» Нет, конечно. Виноваты SSD. Вот как сделать нормальный заголовок окна, который выглядел бы относительно неплохо на любом окне? Сделать его максимально убитого цвета и для верности отделить границей. Типа «мы и не пытались казаться частью окна», не очень-то и хотелось. В результате и получается такое говно.

Так и должно быть - у всех приложений единая рамка окна,

Почему? Откуда такая идиотская идея?

Вот гипотетически, пырится Sunderland93 в терминал, вдруг бросает взгляд на соседнее окно и видит другую рамку. И испытывает боль. Что для этого должно произойти? Правильно, Sunderland93 должен заметить как выглядит рамка терминала и рамка другого окна. Логично? Если бы Sunderland93 умел игнорировать рамки, его бы они не беспокоили. Его бы беспокоило разное оформление содержимого окон. Так вот, если Sunderland заметил как выглядит рамка терминала, то он не мог не заметить, что она совершенно не соответствует самому терминалу. Следовательно, если бы Sunderland93 не был жалким врунишкой, он бы испытал боль раньше чем заметил бы разницу между рамками. Более того, если бы неконсистентность стиля действительно беспокоила Sunderland93’а, он бы попытался от этого избавиться. Как? Да просто перешёл бы на гном. В гноме он бы мог максимизировать окно терминала и видеть единый стиль хотя бы пока пользуется одним окном. В любом другом DE с SSD он был бы обречён видеть уродскую рамку другого цвета всегда, даже когда окно развёрнуто.

Да они открыто об этом заявляют и требуют.

Заявление в стиле «это не я ударил Васю, это Вася ударил головой мой кулак». Гномы ничего ни от кого не требуют. Они объяснили почему SSD ненужно и просто не стали его реализовывать. В своём собственном проекте. Они даже приняли патч с поддержкой SSD в GTK. Всё что они хотят - это чтоб им не сношали мозг с требованием добавить поддержку вредного по их мнению расширения. Даже клоун Дрюсик обвиняет Гномеров не в том, что они ему жить мешают, а в том, что они, якобы, помешали втюхать XDG-Decoration как обязательное расширение. Не позволили ему навязать это говнорасширение всем. Так где тут гномеры, которые что-то от кого-то требуют? Нет их.

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

Да просто перешёл бы на гном

Зачем? Если даже GTK приложения в KDE выглядят гораздо лучше.

Они даже приняли патч с поддержкой SSD в GTK

Во первых речь не о GTK, во-вторых - приняли патч с реализацией старого KDEшного протокола. xdg-decorations они не реализовывали.

Не позволили ему навязать это говнорасширение всем.

Вот это тебя плющит :) в общем ты лицо политической позиции Гнома. Если вредно для них - вредно для всех. Яснопонятно. Только вот чем им навредит xdg-decoration, если просто пришлёпнет кусок Адвайты с кнопками закрытия, сворачивания и разворачивания окна стороннему приложению - черт их знает. Политика она такая. Я выше давал скриншот с демкой libdecor. Если так они видят повсеместное внедрение CSD - то пусть валят на свою GNOME OS и не засирают нормальные дистрибутивы своей похабщиной.

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

Гномы ничего ни от кого не требуют.

Они объяснили почему SSD ненужно и просто не стали его реализовывать.

Ты даже в своих сообщениях изъясняешься взаимоисключающими параграфами. Я тебе про одно - ты мне про другое.

В любом другом DE с SSD он был бы обречён видеть уродскую рамку другого цвета всегда, даже когда окно развёрнуто

Как называются те вещества, которые ты принимаешь? Иначе я не могу объяснить где ты в таком не видишь единого стиля

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

Не «««испоганил»»», а добавил поддержку стандарта XDG, которая уже есть в остальных основных реализациях.

Открою страшную тайну: это не стандарт XDG. Это просто так назвали. Для солидности. Забавно что в другом сраче реально принятый стандарт EGLStreams объявляется проприетарной хренью, которую продавила nvidia, и которую можно и нужно игнорировать. А xdg-decoration вдруг становится обязательным.

Но даже если представить, что это стандарт: в нём написано, что это опциональное расширение, его можно не реализовывать.

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

И вот на основании этого ты чего-то предъявляешь людям, не желающим реализовывать SSD.

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