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)

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

это что шизофрения?

Из-за этого в тайловых ВМ ГТК-говнецом невозможно пользоваться. Но гном разрабы ответят, что тайловые ВМ — ненужно. Гнум ХАЙЛЬ!

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

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

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

И по любому - Блендер это чуть ли не единственное приложение, у которого свой собственный и неповторимый вид, все остальные приложения без проблем ВСЮ ЖИЗНЬ принимали единый вид (насколько позволял туллкит) и уж заголовки окна были едиными, потому что управлялись оконным менеджером.

https://ibb.co/Ht6PCgc https://ibb.co/FgfrMY6

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

Да, это просто офигительно, что КДЕ даёт такую возможность, но это лучшее ДЕ, а остальные пыкаются-мыкаются с одним оформлением для всего, или, как Гном, отрезая всем ноги и руки.

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

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

Менеджер окон вообще не обязан предоставлять заголовки. Его основная задача — управление Z-порядком и расположением окон. Вы просто привыкли к тем менеджерам, которые эти декорации предоставляют, хотя и для X11 существует немало обратных примеров, которые при этом не перестают являться менеджерами окон.

Для чего ты пишешь мне всё это капитанство? Зачем Mutter предназначанный для широкого круга пользователей начал у нас отыгрывать хардкорный тайловый менеджер под Wayland’ом?

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

Да, вот оно и есть: корявая, хреново работающая, выглядящая постоянно инородно, реализация декораций и поведения на стороне клиента. Либо её полное отсутствие. А опциональный костыль при этом просто работает и не создаёт проблем на ровном месте.

В вашем примере ключевое — «у которых их нет» → претензия к разработчикам этих приложений, ибо они должны быть согласно стандарту.

А если они есть, но они работают и выглядят как говно в GNOME 3, но при это нормально работают в KDE?

Претензии по QGnomePlatform должны идти разработчику(ам) QGnomePlatform, а не mutter.

Причина возникновения QGnomePlatform – политическая инциатива разработчиков GNOME, которая не была поддержана примерно никем.

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

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

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

Во-вторых, в Wayland окна рисует клиент, т.е. приложение.

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

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

вот это вот всё как раз и является чистейшей демагогией, а о что напеисал я - простейшая логика.

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

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

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

Если же тебе принципиально важно запускать тёмные приложения в светлом окружении, то в кде ЕСТЬ средства сделать заголовок тёмным, что привёл BceM_IIpuBeT

Проблемы не существует (в нормальном ДЕ)

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

Вы ведь не приводите технических аргументов

Все технические аргументы перекрываются политическим аргументом разработчиков GNOME: «мы не будет это поддерживать, потому что свято верим в инициативу CSD».

Нет никаких технических преград для внедрения xdg-decorations или нечто подобного в Mutter, преграды сугубо политические. А следовательно требовать контекст технической дискуссии изначально некорректно. Техническими сейчас могут быть лишь аспекты и попытки обхода этой принципиальной позиции, которые мы и наблюдаем в багтрекере GNOME, MPV, SDL2 и др. проектов.

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

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

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

Fun fact: надо ещё постараться запустить Qt-софт с тёмной темой, если её нет прямо в поставке этого самого софта или если это не софт на KF5, где выбор тёмной темы автоматически доступен.

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

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

Вообще-то, оконный менеджер может и разные заголовки рисовать для разных окон, если, конечно, разработчки вдруг подумали, что это кому-то нужно (вполне такое может быть). У окон есть class, instance, role, name и т. д. По ним можно рисовать разное, например. У меня в IceWM такого нет, но есть правила, чтобы кастомизировать декорации. Например, оставить только некоторые кнопки управлением окна, убрать вообще все кнопки, убрать декорацию вообще. По правилам все ~/.icewm/winoptions

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

управление Z-порядком и расположением окон

А вот у Matrox-а эти фичи в железе были...

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

Скажи честно, ты горд, что умеешь на память отбивать Азбуку Морзе мышкой? В КДЕ тоже такое есть, для любителей чуйства важности знания всяких заклинаний и изподвывертов для управления окнами, а для всех остальных - старые добрые кнопки. Правда, у них нет никакой мистики и девушки в истоме не съезжают по стеночке, когда мимо проходит мастер спорта по пальцевой чачотке.

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

а ведь Enlightenment их тоже не поддерживает, и в EFL нет поддержки xdg-decoration

Был бы этот Enlightenment и EFL хотя бы жив на уровне того же XFCE, можно было бы что-то сказать. Но они же «вещь в себе» для холодильников Samsung’а. Вряд ли там кому-то понадобится запускать MPV и SDL2.

А сабж если действительно попытается перейти на EFL, то по сути самозакопается. Там нет такого сахарка, который был ему доступен в Vala или QtQuick (он на стримах пытался что-то там переписывать на него лет 5 назад).

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

Алсо, есть приложения на gtk3 и granite, которые переписывают тему интерфейса в зависимости от темы контента. Например, Minder (рисовалка майндмэпов). Переходишь с одной вкладки на другую, где в документе другая цветовая схема — и гуй перерисовывается.

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

Скажи честно, ты горд, что умеешь на память отбивать Азбуку Морзе мышкой?

Я один раз настроил как мне надо и забыл. Пока ты своими выдумками не напомнил.

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

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

отсутствие SSD, а ведь Enlightenment их тоже не поддерживает

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

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

…сам gkrellm тем более не нужен!

И почему же? Потому, что не на gtk4?

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

… в Wayland окна рисует клиент, т.е. приложение.

https://docs.microsoft.com/ru-ru/windows/win32/api/winuser/nf-winuser-createwindowexa

Читаем до ПРОСВЕТЛЕНИЯ о оконной системе.  
Затем сравниваем с https://ru.wikipedia.org/wiki/Wayland

Почему ссылка на WIN API?
Потому, что у него хорошая архитектура …

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

Если же был бы стандарт на передачу оконному менеджеру цвета заголовка

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

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

Как это в поставке этого софта? Ты не пользуешься общесистемными кутями, а какими-то экзотическими сборками кутешных программ? Или проблема в том, что Гном не делает никаких попыток предоставить пользователю общий лукынфил вне зависимости от туллкита? Вы когда начинаете высасывать проблемы из пальцев - то хоть придумывайте проблему полностью, а то за вас ещё работать.

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

Приложения рисуют заголовок.

надо чтоб они ещё экранную клавиатуру рисовали и виртуальный джойстик и трэй с виртуальным терминалом

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

А можно поподробнее?

Скрин показать не могу, но под Wayland родные приложения выглядят нормально, а вот сторонние уже по-наркомански. Гномовские используют заголовок Adwaita, Qtшные свои костыли (раньше рисовали уродливо-блевотную синюю рамку окна с крохотными кнопочками, сейчас более менее по-человечески сделали). Но так или иначе - все приложения выглядят также как в GNOME на Wayland. Чужеродно и никак не интегрируясь с системным стилем кроме родных.

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

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

https://github.com/FedoraQt/QGnomePlatform

То, что его нет в убунте — отдельная тема (pun intended).

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

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

Кстати, то, что есть в IceWM возможность задавать свои правила - тоже круто, я думал он попримитивнее. Но там есть возможность изменить декорации определённому приложению, а не просто классу окон?

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

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

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

Вряд ли там кому-то понадобится запускать MPV и SDL2.

Я себе глаза сломал об его конфигураторы. Кто там говорит что KDE переусложнён настройками? Пусть Enlightenment поставит, удивится. Мягко говоря. А ещё там наигробешнейший рендеринг шрифтов из коробки, и контекстное меню висит на левой кнопке мыши. Но это меня уже в детали понесло :)

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

Выше уже говорили про этот костылище. Он отвратительно работает, и вся его суть - криво прикрутить тему Adwaita к Qtшному окну. Теней нет, ресайзится очень плохо

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

Приложения рисуют заголовок.

только что я в озарении раскрыл тайный стратегический план развития гнома!

для понимания нужно учесть 2 факта

  1. гном выпиливает «ненужный» функционал из себя
  2. гном заставляет сторонние программы реализовывать функции де самостоятельно.

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

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

Есть существенная разница между «Гном не делает никаких попыток предоставить пользователю общий лукынфил вне зависимости от туллкита» и «Это решение плохо работает».

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

Для чего ты пишешь мне всё это капитанство? Зачем Mutter предназначанный для широкого круга пользователей начал у нас отыгрывать хардкорный тайловый менеджер под Wayland’ом?

Не передёргивайте. Я показал, что оконный менеджер не обязан отрисовывать заголовки окон, чтобы являться оконным менеджером.

Более того, в Wayland он абсолютно не обязан этого делать, и задача рисования заголовка по умолчанию возложена на приложение с опциональной альтернативой в виде xdg-decoration.

А опциональный костыль при этом просто работает и не создаёт проблем на ровном месте.

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

А если они есть, но они работают и выглядят как говно в GNOME 3, но при это нормально работают в KDE?

Т.е. разработчики приложения нарисовали декорации, которые «работают и выглядят как говно», но виноват в этом опять GNOME? Маразм как он есть.

Впрочем, судя по коммиту в SDL всё постепенно движется в правильном направлении.

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

контекстное меню висит на левой кнопке мыши

это же олдскул

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

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

«А ещё инструмент управления окном — это меню «Файл» в окне приложения. Значит, меню «Файл» должен рисовать менеджер окон.»

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

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

частный случай

DE не обязано запускать приложения

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

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

С чего это вдруг? Почему я должен иметь тёмную тему в калькуляторе лишь потому, что она в Shotcut? Что за бред?

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

«А ещё инструмент управления окном — это меню «Файл»

а вот это утверждение противоречит логике

короче я понял - не всем доступно понимание смысла слов и логические связи между ними…

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

я выше написал, что Матроксы имели внутри себя всё то, что делает wayland. Но почему-то от этого протоколом, управляющим окнами, не стали.

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

Ну так 99% интерфейсных окон, чотакова?

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

Приложения рисуют заголовок.

Кстати, приложение рисует заголовок, но перетаскивает все равно ВМ. Т.е. без контролов рисуемых приложением, которые нужны только ВМ'у, невозможно дергать функции ВМ'а. У меня вопрос, а нахрена в этой схеме приложению рисовать кнопки функциям, за которое оно не отвечает? Вот это логика и UI 21 века. Не зря диды воевали, однако.

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

Бред - это пользоваться светлыми приложениями в тёмном окружении и тёмными в светлом. И если ты пользуешься НЕ Гномом, то сделать заголовок соответствующим приложению ВОЗМОЖНО. При этом не надо изменять ни строчки этого приложения, оконному менеджеру указываются цвета. Сколько ты ещё будешь игнорировать это? Если единственное нередактируемое ДЕ гном не способно подстроить приложения под себя, то это не вина приложений и не надо играть обиженку и кричать «Тагда и сами и рисути сваи дикарацыи!!!», надо просто управлять окнами ПО ЧЕЛОВЕЧЕСКИ, тогда, внезапно, окажется, что нет некрасивых приложений.

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