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)

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

Блин :) Я полез посмотреть, что они за этот год наваяли с управлением цвета. Короче, merge request до сих пор открыт. До сих пор что-то там обсуждают.

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

Когда пользователи запускают свои любимые игры

А что, какие-то достойные игры работают не в полноэкранном режиме? Я не геймер, сорян, мне правда интересно.

MPV в GNOME под Wayland’ом

...рисует клиентские декорации. Но ваще под гном есть Celluloid, который тот же mpv, только с базовой гуйнёй. И у него стандартные гномовские декорации.

AP ★★★★★
()

Овер 500 коментов за двое суток о том, что пейсать гуи без ооп - это как себя орально удовлетворять. Вроде можно, но и наверное не совсем удобно. Мдее

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

Ну вот позапускал Qt. Самая распоследняя Ubuntu Wayland. Что не так?

$ QT_QPA_PLATFORM=wayland qbittorrent
EXL ★★★★★
()
Ответ на: комментарий от AP

А что, какие-то достойные игры работают не в полноэкранном режиме? Я не геймер, сорян, мне правда интересно.

Да. На SDL2 вообще куча приложений, не только игр и эмуляторов.

…рисует клиентские декорации

Рисует кривые клиентские декорации, которыми невозможно нормально пользоваться. Так будет правильнее. Сделано на отвались, тогда как там где SSD – работает всё норм.

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

попросит юзать SSD, чтоб все заголовки были одинаковыми.

На скриншоте, нет ни одного окна с нормальным csd. В этом кейса SSD был бы лучше.

Откуда мне, пользователю, знать, хороший у данной программы CSD или не очень?

Сравнить. Можно не узнавать и юзать дефолт.

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

По сути он просто UX пользователю сломает, не саму софтину. Поэтому опция переключения может пригодиться. Если программисту не лень всё это делать.

Да и программисту 2 лэйаута гуйни под разные варианты зачем тянуть? Вроде никто и не заставляет, тех кто хочет показывать CSD делать поддержку SSD в своих программах.

Проблема с другой стороны. Те кому CSD объективно не нужен, хотят чтобы декорации сделал за них WM и чтобы не нужно было самим придумывать кнопку «закрыть» и кнопку «свернуть» итд.

Более того, WM в этой части может обеспечивать какой-то общий UX для множества программ, и пользователям не очень нравится, когда это ломается.

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

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

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

Везде, кроме гнома, уже работает xdg-decoration

Да неужели? Ну, давайте проверим:

(Всякую мелочь не проверял.)

Вот и цена вашим словам.

Это «as they see fit», которое ты решил опустить и не перевёл, включает всебя и то, что приложение может вообще ничего не рисовать.

Я в дальнейшем это и написал:

Не согласовали SSD — должны продолжать использовать CSD (включая отсутствие видимых декораций).

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

«С точки зрения здравого смысла» — это вообще не аргумент, ибо является сугубо субъективным. Например, моё мнение на этот счёт противоположно, и подкреплено стандартом.

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

Мдэээ. И не дообсуждают видимо ещё долго.

А так, я догадываюсь и контроль гаммы нормальный можно было-бы сделать для Redhift-а, а не этот онанизм NightLight через кастомное D-BUS API и не дурацкий zwlr_gamma_control_manager_v1, который кроме wlroots никто и не делал.

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

В том и дело что место они занимают, а не экономят.

Да вроде как раз наоборот, ведь полупустой заголовок окна + меню + панель инструментов в сумме получается ощутимо выше, чем один заголовок в стиле CSD: https://ibb.co/0rdyQS6.

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

Это неправильно.

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

Откуда мне, пользователю, знать, хороший у данной программы CSD или не очень?

Млять, а типа в гнуме у тебя сейчас есть выбор!?

Я уж не говорю о том, что лазить в настройки лень.

Кому-то и детей воспитывать лень, при чем здесь это?!

А разработчику не узнать, насколько хорош SSD

А ему пофиг на SSD, это забота и хотелки пользователя. Вот у меня кнопки управления с обеих сторон. Как такое в гнуме сделать? Ну вот я так ХОЧУ. И в КДЕ я такое сделал. В гнуме я сосу лапу.

может там наколхозили в заголовке 100500 просто необходимых для работы кнопок

Каких еще кнопок? В КДЕ только портируют такое: https://github.com/Zren/material-decoration в Breeze тему. Но тогда смысла в CSD еще меньше.

Да и программисту 2 лэйаута гуйни под разные варианты зачем тянуть?

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

Нет, вменяемое решение только одно: CSD

Вас нужно изолировать от общества, фашики тупые.

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

Ты дебил, вы же и заставляете их это делать?

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

А почему бы гнуморазрабам не пойти в одно место и не сделать CSD опциональным, а не общепринятый ВО ВСЕЙ ИНДУСТРИИ SSD выносить в статус маргинальщины и ненужно?

Вот лично мне вообще никакие кнопки и меню нафиг не нужны. Тебе показать мои приложения. Ну ок.

Emacs: https://i.imgur.com/fqj5skA.png

Konsole: https://i.imgur.com/5Bkk41d.png

Dolphin(дефолт): https://i.imgur.com/FudfsW0.png

Okular: https://i.imgur.com/w6Ek6gB.jpg

Gwenview: https://i.imgur.com/dOFDGZU.jpg

А теперь ответь мне, пожалуйста. Нужны мне твои ВОНЮЧИЕ CSD или не нужны?! Лично мне минибуфера и хоткеев хватает, мне не то что ваши CSD не нужны, мне вообще никаких кнопок не надо. Но я же не упоротый гнумодебил и понимаю, что у всех разные запросы и их НУЖНО учитывать, а не посылать всех в одно место.

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

Хорошо реализовано CSD в Foliate. Так выглядит при наведенном курсоре: https://i.imgur.com/bmHiNo4.png . А когда панель не под курсором, то она СЛИВАЕТСЯ С ФОНОМ(пропадает) и не мешает: https://i.imgur.com/aS4fmOz.png . Это единственное приложение с CSD, которое мне очень нравится.

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

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

«Наша песня хороша, начинай сначала!» Я на этот аргумент отвечал уже не раз. См. предыдущие комментарии.

Weston — не поддерживается.

Weston не предназначен для пользователей.

Enlightenment — не поддерживается.

Они его принципиально отказываются релизовывать? Даже если так, это ДЕ, нужное полутора калекам.

Под «всеми остальными» имеются в виду в первую очередь KWin и wlroots. Количество пользователей других «альтернативных» композиторов на десктопе в пределах статистической погрешности.

Я в дальнейшем это и написал

В исправлении. Я это исправление не видел. Но даже так, мой ответ всё ещё в силе. Нету там никакого «должен». Если композитор не поддерживает часть стандарта, отвечающую за поддержку SSD, то клиенту просто ничего не остаётся больше делать.

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

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

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

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

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

Вас нужно изолировать от общества, фашики тупые.

Nuff said.

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

Знаешь, интеллект коррелирует с умением шутить и понимать шутки. Видимо, тебе это не дано.

Ага. Это:

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

Вас нужно изолировать от общества, фашики тупые.

Ты дебил, вы же и заставляете их это делать?

https://i.imgur.com/5Bkk41d.png

— это всё смехуёчки. Конечно.

Внешним читателям: если что, не нужно ассоциировать таких вот индивидуумов со всеми пользователями KDE. В подавляющем большинстве своём это абсолютно нормальные и адекватные люди.

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

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

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

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

это всё смехуёчки. Конечно.

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

BceM_IIpuBeT ★★☆☆☆
()

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

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

Это несомненно говорит о современном уровню айсикью, эрудированности и образованности современных участников специальных олимпиад!

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

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

«Наша песня хороша, начинай сначала!»

Ну что поделать, если до вас ни с первого, ни даже со второго раза не дошло.

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

Я на этот аргумент отвечал уже не раз. См. предыдущие комментарии.

А на ваши ответы были как мои ответы, так и от других пользователей. И?

Weston не предназначен для пользователей.

Даже если так, это ДЕ, нужное полутора калекам

Напоминаю, что вы заявили:

Везде, кроме гнома, уже работает xdg-decoration

Даже выделили курсивом и полужирным!

А оказалось, что таки не везде. Что же вы выберете: «Это не считается!» или «Я не то имел в виду!»? 😁

Под «всеми остальными» имеются в виду в первую очередь KWin и wlroots

Вижу, выбрали второй вариант. Впрочем, хороших вариантов у вас всё равно не было.

Нету там никакого «должен».

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

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

Так это и есть аргумент. Имеют право. Равно как и Enlightenment имеет право. Вы же хотите всех заставить насильно поддерживать опциональный протокол SSD.

Мне при этом всё равно, поддерживает ли Mutter xdg-decoration или нет. Я против наезда на разработчиков за отсутствие его поддержки.

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

Его всё равно нужно добавлять, сколько раз вам повторять? Вы понимаете, что такое опциональное расширение?

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

Быстрое решение дааалеко не всегда оптимальное.

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

В любом случае сверху телепатии можно прикрутить текстовый. Так что ничего не поменяется. :)

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

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

Голословно это заявить каждый может. Давайте я попробую:

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

Из всей этой дискуссии можно сделать единственный вывод: раз вы крутитесь, как уж на сковородке, и так и не вымучили ни одного аргумента за KDE-шные извраты — значит, и вправду, это совсем необоснованная лажа."

Видите, как просто?

Слушайте, здесь вам не детский сад, и просто голословно заявить «Я вам всё доказал, а вы ничего не опровергли, поэтому всем понятно, что вы неправы» — недостаточно. Старайтесь лучше.

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

Спасибо за ссылки. В Mutter в принципе, оказывается, нет SSD и запилить их туда долго и сложно...
Таки надо перестать велосипедить и переписать mutter на wlroots.

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

От GNOME один лишь вред, вот теперь уже и в GTK. Кто-то может объяснить, почему Red Hat так упорно и активно всё это продвигает? Зачем им это, когда сообщество всё равно не принимает?

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

Не в пример гномосекам!

Как вообще можно в гуй без ооп?!

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

Слушайте, здесь вам не детский сад, и просто голословно заявить «Я вам всё доказал, а вы ничего не опровергли, поэтому всем понятно, что вы неправы» — недостаточно. Старайтесь лучше.

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

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

В Mutter в принципе, оказывается, нет SSD и запилить их туда долго и сложно…

Я подозреваю, что товарищ @EXL таки прав, и решение это как минимум отчасти политическое.

Что, впрочем, не снимает с приложений ответственности за декорации в случае отсутствия xdg-decoration.

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

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

А, так вот вы кто. А я-то думаю: что за знакомая демагогия…

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

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

Таки надо перестать велосипедить и переписать mutter на wlroots.

Вот это, кстати, было бы неплохим вариантом развития событий. Сообщество работало бы над де-факто одной реализацией композитора вместо 100500.

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

опциональный протокол SSD

Время постправды оно такое, да. В то время, когда везде SSD — дефолт, у гнумеров как обычно.

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

В то время, когда везде SSD — дефолт, у гнумеров как обычно.

Прежде чем я начну приводить опровергающие ссылки, уточню: «везде» — это в KDE?

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

Так а чего не возмутил воды то пустые да не обернул реки вспять?

Упертый Вы. Плохо это. Не будет толку…

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

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

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

Просто подумай логически: как СЕРВЕР сайд декорация может быть опциональной? Ты с собой свой сервер притащишь?

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

приводить опровергающие ссылки

Эт Вы могете, да. Но за статикой не видите генеральную линию партии. Ака отсутствие системного анализа в мну.

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

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

Я погуглил - это кто-то пилит, типа «sway в gnome-shell», но Gnome это не нужно.

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

Просто подумай логически: как СЕРВЕР сайд декорация может быть опциональной? Ты с собой свой сервер притащишь?

Что объединяет эти два высказывания кроме наличия слова «сервер»? 🤨

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

Ну, не знаю, как в gtk, на wxpython или tkinter несложные программы в принципе кросс-платформенные. И необходимость CSD в них и правда выглядит бессмыслицей.

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