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)

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

Ну да, это GNOME, они придурошные. Что тебя удивляет? К слову, там в похожих тредах внизу страницы есть новость о релизе GTK3. И там написано про улучшение поддержки тем :D

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

Тут с давних пор дискриминация по анонимному признаку,

На ЛОР все просто.
Аноним?

Значит ШИЗИК
anonymous
()
Ответ на: комментарий от mertvoprog

У Qt нет своего формата тем.

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

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

Заранее предупреждать надо, что зрелище отвратное и провоцирует сложно сдерживаемое желание блевать!

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

phoc и есть гном

Ага, а утка — и есть гусь. Похожи же!

вм как вм

Это фреймворк для построения WM.

без каких-либо извращений из коробки

Какое у него «из коробки»-то вообще? fvwm-crystal, что ли?

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

А толку в этом случае от заголовка «без ничего»?

Так вот и вопрос, нафиг этот принудительный заголовок нужен. matchbox-window-manager -use_titlebar no вон, например, вообще его не показывает. А в CSD-говне, получается, заголовок всегда будет и будет занимать место; ещё и разколбашивать окно по ширине, в данном случае, из-за чего оно не будет влезать на экран.

отображение состояния программы в кнопке на таскбаре

У них вместо этого слизанные с Android навороченные уведомления в шторке, писали же выше.

упёрлись авторы иксов/вяленого/… в юниксвей

Так и то, и то пилит красношапка нынче.

ни единого стандартного тулкита для UI

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

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

Опциональные расширения протокола в вейланд

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

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

Вменяемым людям такое нахрен не надо

А что им вообще надо, кроме браузера с одной вкладкой с вкудахтом? Хромось уже есть кагбэ, вот пускай туда и валят и не портят GNU/Linux.

Нафиг не нужны все эти мудрёные фичи управлением окнами

Они нужны для взаимодействия приложений. Это метауровень.

Потому что заголовки выглядят уродски и отжирают кучу места. Каково решение? Правильно, CSD

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

Пользователь принципиально не может командовать ЭВМ, он языка понятного ЭВМ не знает и внедрять команды в её память не может

Значит, это некомпетентный пользователь, которого зря за ЭВМ пустили. Полвека назад такой херни не было.

Компьютером управляют программы

А программами управляет кто?

доброжелательно настроенным разработчиком

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

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

GTK оставить, поменяв разработчиков

Ну вот в теории крупных стейкхолдеров, которые бы это осилили, в крайнем случае сообща — предостаточно. Но никому это не нужно. GIMP, Inkscape, MATE, XFCE — все, вместо того, чтобы форкать GTK+, побежали за гномосеками. Безуспешно копротивляется только всякая мелюзга.

cast @AP, кстати, почему так происходит? В гимпьем комьюнити были какие-то обсуждения: перепиливать или форкать?

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

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

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

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

если можно заставить мимикрировать и воровать тему с gtk3

Лучше с GTK+2, под GTK+3 оно херовато мимикрировать умеет. Но тоже можно, QGnomePlatform выше упоминали.

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

Анонимы вполне себе могут создавать новости.

То что платное инженерное приложение поставляется со вкоряченной версией Qt5 отнюдь не новость. И что обычно такие приложения выглядят как топором рубленные — тоже. Возможно для кого-то новость, что некоторые любят красоту, а некоторые (о ужас) даже предпочитают единый стиль и все приложения с тёмной темой, но вряд ли это потянет на полноценную новость, достойной главной страницы ЛОР!

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

Ну вот в теории крупных стейкхолдеров, которые бы это осилили, в крайнем случае сообща — предостаточно. Но никому это не нужно.

Старший брат ОДЕНЕТ всех в одну форму
https://www.opennet.ru/opennews/art.shtml?num=55822 Проект Windowsfx подготовил сборку Ubuntu с интерфейсом, стилизованным под Windows 11

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

А в CSD-говне, получается, заголовок всегда будет и будет занимать место

В GTК тот самый HeaderBar, напоминаю, тупо виджет. Со свойствами «visible» и «sensitive». Т.е. приложение может его скрыть, если оно зачем-то понадобится. Про другие реализации CSD не знаю.

отображение состояния программы в кнопке на таскбаре

У них вместо этого слизанные с Android навороченные уведомления в шторке, писали же выше.

«Писали»... у меня есть специальная виртуалка с федорой, где я в свежие версии гнома палкой тыкаю. Видел я ту шторку. Сама по себе, внезапно, она довольно неплоха, как свалка уведомлений «что-то когда-то произошло», и вот в этой роли таки удобнее классического трея. А вот когда надо отслеживать состояние на ходу - не, не катит. А катит «deprecated» моргание заголовком окна, и, соответственно, кнопкой на таскбаре (слава XFCE!), и еретическое виндовое отображение на оной кнопке прогресса. Реализацию последнего я в линухах не видел, а хотелось бы.

ни единого стандартного тулкита для UI

Его нет по историческим причинам, и уже никогда не будет

Я знаю, что не будет. И это очень плохо. Настолько плохо, что я лично согласился бы и на GTK в качестве оного, но без остального гнома.

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

GTK оставить, поменяв разработчиков

Ну вот в теории крупных стейкхолдеров, которые бы это осилили, в крайнем случае сообща — предостаточно. Но никому это не нужно.

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

GIMP, Inkscape, MATE, XFCE — все, вместо того, чтобы форкать GTK+, побежали за гномосеками

Про MATE не знаю, а у остальных из перечисленных на поддержку и развития «своего GTK» ресурсов нет совсем. При этом разработчикам MATE и XFCE заодно придётся поддерживать совместимость своих WM/DE ещё и с гномьим GTK.

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

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

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

Вообще до болта, потому что те расширения, которые я использовал, достаточно оперативно перевыпустили под Quantum.

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

Xfce нужно переходить на Qt

Это вас закопать нужно, потому что Qt - это bloatware.

Я не знаю, чего там под капотом понапихано, но почему кеды тормозят на машине, где гном проклятущий нормально работает, а XFCE вообще летает?

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

юзаю GNOME 3 дофига времени, всё устраивает, и не хочется ничего менять

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

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

Нет, в Фоксе сделали вообще не так - даже сравнивать странно. Там убрали поддержку расширений, сделанных по одной технологии и ввели поддержку расширений, сделанных по другой технологии. Расширения как таковые - как были, так и остались. А для гноморазрабов расширения в принципе как серпом по яйцам - это же помогает юзерам не привыкать к их тачскриновому по умолчанию UI/UX и делать GNOME похожим на другие DE.

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

кеды тормозят на машине, где гном проклятущий нормально работает, а XFCE вообще летает

Очень странно. Жрут они чуть меньше GNOME, на всех машинах, где видел, включая виртуалки.

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

Да нет, как раз не из коробки. MPRIS-индикатор использую, Dash to Dock и (хотя это и не расширение, но по сути расширитель дефолта) GNOME Tweaks, ничего не отвалилось до 3.38 включительно - этого хватает, чтобы ощущения от DE были нормальными, а не как будто на Дрожащих Островах Шеогората терминал нашел.

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

Очень странно. Жрут они чуть меньше GNOME

Жрут-то они, может, и меньше, но почему тогда запуск произвольной аппликухи (хоть кедовой, хоть нет) дольше, чем не в кедах? Чего они там, контрольную сумму бинарника в АНБ отсылают, или еще че-то шибко важное делают? Правда, я в кеды палкой тыкал не меньше двух лет назад, может, и допилили чего. Но опасаюсь, что скорее наоборот.

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

Причем тут кеды? Все претензии к их разработчикам.

Что же касается GTK, я не вижу ПО, которое на них переходит, а вот обратный процесс виден невооружённым глазом.

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

LXDE закопали намного раньше этого перехода. У них в команде еще до этого перехода было 1.5 разработчика. Такими силами переход современным программистам не выполнить, поэтому итог был ясен с самого начала.

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

Причем тут кеды? Все претензии к их разработчикам.

Вот именно - к разработчикам кедов. Потому как ежели один и тот же бинарник на одном и том же ПК запускается с разной скоростью из-под разных DE - это точно виноват не бинарник, а разработчики DE, напихавшие между обработчиком нажатия кнопки/иконки/... и вызовом exec() овердофига чего-то лишнего.

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

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

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

Вы бредятину какую-то несёте, какое отношение поделка закосеров имеет к «старшему брату»?

Sorry, ошибся …

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

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

Может, но как оно универсальным образом узнает, что в данной среде отключены заголовки как таковые? И как оно их без вреда скроет, когда туда посторонние нужные виджеты напиханы?

И вообще, речь о сравнении хедербаров с тулбарами шла, Вы куда-то не туда дискуссию заводите.

отслеживать состояние на ходу

Уведомления также всплывают.

Реализацию последнего я в линухах не видел

Моргание издревле есть, _NET_WM_STATE_DEMANDS_ATTENTION же. Для вяленда пилят xdg-activation, и даже гномосеки не против, так что уж с этим проблем не будет.

но без остального гнома

Угу, вот Вы хотите GTK+ без жнома. Кто-то жном без GTK+. Кто-то хочет жном в GTK+. Кому-то чтоб из-под мышки жном торчал и можно было корованы грабить. Вот поэтому договорённости и не будет.

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

GTK всё еще почти торт

Оно тормозит и артефактит, какой нафиг торт-то.

*ботни там немерено

Да если не ломать существующее революционными идеями, то как раз нет.

«положить юзеру в систему ещё тонну библиотек, и чтобы они не поцапались с уже имеющимися»

Их и без того кладут с нынешней модой на изоляцию и контейнеризацию.

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

Типа его мало, ну да. Всякую маргинальщину типа FLTK/FOX/Xaw тащат, на которой полторы программы, а тут не станут?

ещё и с гномьим GTK

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

а у остальных из перечисленных на поддержку и развития «своего GTK» ресурсов нет совсем

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

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

Приходите со своим Qt, когда в него Emacs keybindings завезут и юзабельное автодополнение в файловом диалоге хотя бы.

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

и ввели поддержку расширений, сделанных по другой технологии

Заведомо более ограниченных, потому что в кишки лисы их больше не пускают и пускать не будут, дают только ограниченный набор API для шаблонных задач. Всё как с X.Org vs. GNOME Extensions.

это же помогает юзерам

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

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

Как быть с Maya, Blender и так далее

Blender — элементарно. Смотрите сами: он де-факто уже совместил панель меню и панель инструментов, поэтому убрать заголовок — и получим CSD.

Представьте в CSD какой-нибудь AutoCAD

И представлять не надо.

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

Реализацию последнего я в линухах не видел

Моргание издревле есть, _NET_WM_STATE_DEMANDS_ATTENTION же.

Повторюсь: «А катит «deprecated» моргание заголовком окна, и, соответственно, кнопкой на таскбаре (слава XFCE!), и еретическое виндовое отображение на оной кнопке прогресса. Реализацию последнего* я в линухах не видел, а хотелось бы.»

* т.е. индикации прогресса. «Моргание издревле есть» - везде (ЕМНИМС), кроме гнома.

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

ЕМНИП, что-то схожее есть в KDE и расширении DashToЧто-тотам для GNOME Shell.

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

«Моргание издревле есть» - везде (ЕМНИМС), кроме гнома.

В GNOME появляется уведомление.

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

И представлять не надо.

Сейчас он зарядит, что это не кошерный АКАД и тебе надо в нём поработать. А также в MSO, 3dsMAX, SolidWorks и ещё куче. Хреновые какие-то программы, видимо. Непрофессиональные.

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

cast @AP, кстати, почему так происходит? В гимпьем комьюнити были какие-то обсуждения: перепиливать или форкать?

Что конкретно перепиливать?

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

API-то от неё не зависит, ещё раз повторяем: он в DockbarX ещё поддерживается как минимум.

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