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)

вот действительно, почему бы не форкнуть gkt+2? отличный же был тулкит. немного освежить и будет конфетка.

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

Концепция «меньше настроек, больше разумных дефолтов» не менялась с ещё более древних времён. Например, Хэвок Пеннингтон написал своё эссе про гуи в 2002 году.

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

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

Концепция «меньше настроек, больше разумных дефолтов»

Разумные дефолты никак не противоречат настройкам. Ну а про разумные дефолты очень красноречиво говорят пачки дополнений в Гнуме. Кто вообше пользуется дефолтным гнумом?

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

Ты просто не понимаешь весь масштаб технических и архитектурных проблем с gtk2. Его нельзя просто освежить, его можно или переписать (и тогда получится gtk4), или выкинуть.

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

Я там юзал GNOME. Budgie попробовал, но там какой-то критический баг был: не работало переключение раскладки клавиатуры по горячей клавише.

как manjaro в сравнении с solus

Намного лучше. Нормальные разработчики, наличие AUR. Чего еще желать?

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

Хэвок Пеннингтон написал своё эссе про гуи в 2002 году.

Да, известный шкодник.

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

Красавы. Правда, мёртвый EFL - такое себе шило на мыло.

Да вроде они что-то там делать будут.

Побузят и амба ...
anonymous
()
Ответ на: комментарий от BceM_IIpuBeT

пачки дополнений

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

Практически у всех, кого я знаю, лёгкая кастомизация дефолта в нужную им сторону. У каждого — какая-то своя. Естественно, что при разнообразии вкусов и потребностей в сумме наберётся 100500 дополнений. Но это же прекрасно. Хорошая база + дополнения = здоровая экосистема.

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

Естественно, что при разнообразии вкусов и потребностей в сумме наберётся 100500 дополнений.
Хорошая база + дополнения = здоровая экосистема.

Гм.

Хорошая база + 100500 дополнений = здоровая экосистема ...
anonymous
()
Ответ на: комментарий от biglpfan

Это отличная новость, еще один дистрибутив сам себя закопал, тем самым уменьшив энтропию. Да будет так со всеми, кто решил свой дистр собирать!

типо LFS всем в помощь?)

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

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

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

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

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

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

Это вроде не то настраивается, не то там есть разные варианты - у меня всё тёмно-серое. Самое главное - есть какая-то теория про приятность скруглений, но как раз за скругления цепляется мозг и они отвлекают.

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

Посмотри как оно сделано. Почему в новомодном ЦСС/ЖС инерфейсе я не могу одной переменной понемять соотношение элементов?! В Кеды этот рак уже тоже проник, но там хоть можно это говно настраивать. В Кедах у меня 0 васянорасширений, с Гномом мне нужно лазить по каким-то помойкам и искать нужные васянодополнения, которые при очередном обновлении отвалятся из-за упоротых гнуморазрабов, которые считают своих пользователей за дебилов.

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

да, из-за непонятных манёвров Qt Company теперь свободные проекты опасаются Qt как огня…

Да, Qt Company давно начала закручивать гайки. Сначала убрали удобнейшие offline-установщики «всё в одном», потом ввели обязательную регистрацию без которой с их сайта хрен чего скачаешь и установишь. Но последней каплей стали LTS-выпуски Qt только для коммерческих клиентов: https://www.opennet.ru/opennews/art.shtml?num=52259

Потом вообще доступ к исходному коду LTS-веток закрыли: https://www.opennet.ru/opennews/art.shtml?num=54352

Интересно, каким будет их следующий шаг?

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

Кроме заголовков ещё и окна не нужны.

Я вообще мечтаю найти рабочий Consul 260 и на нём писать python скрипты в редакторе ed.

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

оксиджен

хорошая тема

Да, если тебе 12 лет и пушистые неоновые окна вкупе с курсорами из влажных снов сборщиков Zver XP выглядят для тебя нереально круто и свежо.

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

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

Те, кто пользуется этим на Linux, ими и являются. Всё из консоли Windows хочешь?

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

Что же будет с Мейсоном и Джиной?

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

Да. Ты совершенно прав. Господь дал тебе на выбор i3, DWM, Xmonad, BSPWM, Ratpoison, EmacsWM (запамятовал). На С, Haskell, Lisp…

B0B
()

Пусть лучше мокшу развивают - энлайтмент с человеческим лицом :)

Зачем вообще такая куча дистрибутивов? Чего хочу (добиться)?

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

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

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

просто взяли и переписали свой deepin на qt.

Deepin, к слову, далеко не весь на Qt, в этом окружении имеются и GTK-приложения: https://github.com/linuxdeepin/deepin-terminal-gtk

Но да, по больше части они взяли и переписали.

EXL ★★★★★
()

Без поддержки X11 ненужно.

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

С первым вариантом полностью солидарен.

Тред - не первая ласточка. Жаба сварена.

Давайте посмотрим в корень, кто там у нас? Gentoo? Самый классный конструктор? пожалуйста: https://wiki.gentoo.org/wiki/Eudev

eudev is being retired and will be removed from Gentoo on 2022-01-01.

теперь - 564 ? Ss 0:00 /lib/systemd/systemd-udevd

Clang собирает тепрь всё, даже Emacs. Только glibc требует GCC.

Дальше кто? Void? Там такой трах и костылинг с Wayland на WM, что…

B0B
()
Последнее исправление: B0B (всего исправлений: 1)

Посмотрел страничку iced. Они что, собирались для десктопного DE использовать веб-тулкит?

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

Линусу тоже кружечку: Линус Торвальдс: Используйте KDE

2005 год, времена офигенных KDE 3.5 и GNOME 2

И что потом случилось из-за чего Linus Torvalds вот уже более 10 лет пользуется GNOME 3?

Ах да, вышел уберидиотский KDE 4 ставший типичным «окружением для школьников» с падающей плазмой, клизмоидами и оксидженом, на фоне которого даже GNOME 3 из которого всё удалили и добавили широкие заголовки окна – выглядел адекватным.

Глючный и убогий KDE 4 – главная причина того, что KDE сегодня используется лишь в Manjaro, тогда как в Debian, SUSE, RHEL/CentOS/Fedora, Ubuntu используют GNOME 3 по умолчанию.

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

Я согласен. Популярность Гнума — это заслуга угребищности КДЕ.

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

А вот это, кстати, хороший вопрос. Ну да, если у них был GTK, то они могли писать, например, на Vala. Но это просто гипотеза, а на чём пишут в действительности — вопрос интересный, присоединяюсь.

Блин, ребят вас что, на GitHub’е забанили? Заходим на страничку https://github.com/solus-project/budgie-desktop и смотрим на чём оно написано.

Vala, C.

EXL ★★★★★
()

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

Так это ж хорошо. Есть повод всё переписать.

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

Агрегирование - это не про наследование. Наследование в C можно эмулировать объявлением стуктуры, где базовая структура будет располагаться в начале.

Да все так, речь же шла про раст в котором аналогично можно эмулировать наследование реализации, а с наследование интерфейсов (traits) вообще нет проблем.

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

А в чём он неправ? В Wayland поддержка CSD является обязательной, а xdg-decoration — опциональной. Соответственно, если приложение/библиотека заявляет о полной поддержке Wayland, но не поддерживает при этом обязательный CSD, полностью полагаясь на опциональный xdg-decoration, то это приложение на самом деле не полностью соответствует стандарту, и его нужно чинить.

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

По сабжу. Кто-нибудь вот реально пробовал написать приложение на EFL-стеке? Что-нибудь сложнее Hello World’а. Да пусть даже и сам Hello World.

А я вот пробовал. Это ведь ад сущий. Для простейших действий нужно написать тонны кода на C, приправленном всякой макропитушнёй на уровне ванильного GTK+ и даже ещё больше. В одиночку там столько человекочасов нужно потратить для получения чего-либо сложного, что этот Джошуа ведь убежит с этого EFL после нескольких сессий написания кода.

Няшненькой Vala «на сахарке», на которой он быстро напилил целый десктоп у EFL нет. Нет там и аналога QtQuick с QML. Вот серьёзно, если бы Джошуа взял в руки С++ и Qt выхлопа было бы гораздо больше. А так он погрязнет в сишной макропитушне EFL, сойдёт с ума, а то что он пытался дать людям никому нафиг будет не нужно. К тому времени когда он на EFL запилит что-то удобоваримое интерес к проекту Solus Desktop будет только лишь у него одного.

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

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

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

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

Зато intelfx не тонет…

Он потонет тогда, когда systemd потонет. Не раньше.

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

В Wayland поддержка CSD является обязательной

Нет. Не является. Базовый протокол не описывает кто должен рисовать окну рамку. Он лишь говорит о том что отрисовка самого окна должна вестись на стороне клиента. И это так и есть. А приделать рамку к этому окну - это уже как тебе нравится. Хочешь на самом клиенте, хочешь композитор заставь.

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

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

Откажись от заголовков,трея и статусбара. Они ненужны.

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

Я смотрю мой тред ещё долго будут использовать как пример вопиющей неадекватности гномоделов :)

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

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

Нет, кто-то конечно и подумал и в итоге у них получилось вот это: https://gitlab.gnome.org/GNOME/mutter/uploads/b706e4893efd048fdb77e32c6f64ae36/Снимок_экрана_от_2017-12-16_11-04-00.png

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

Ожидаемо, что на призыв GNOME-разработчиков никто не откликнулся: https://blogs.gnome.org/tbernard/2018/01/26/csd-initiative/ и они с поникшей головой пошли пилить собственные хреново работающие костыли:

https://gitlab.gnome.org/jadahl/libdecoration
https://github.com/FedoraQt/QGnomePlatform

Качество работы этих костылей уже достаточно подробно описано на форуме: Fedora(31-32) GNOME + Wayland + qt5 (держу в курсе!)

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

хочешь композитор заставь.

композитор может послать тебя лесом, и это написано в протоколе.

В Wayland поддержка CSD является обязательной

всё верно.

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