LINUX.ORG.RU

gtk2 сам себя не форкнет

 , , ,


5

9

Что ж, этот день настал. Будем делать gtk 2.26.

Минимальный план работ такой:

  • Обеспечить масштабирование заданных в настройках тулкита размеров иконок в соответствии с DPI.
  • Обеспечить масштабирование заданных темой пиксельных размеров в соответствии с DPI.
  • Предоставить для приложения API для масштабирования размеров из условных пикселей (под 96 DPI) в реальные в соответствии с DPI.
  • Исправить мелкие косяки в теме Redmond, которые остались с тех пор, как отрисовка темы была переведена на cairo.
  • Дополнить дефолтный пакет тем стилями для gtk3, максимально приближенно имитирующими классические темы.
  • Бэкпортировать из gtk3 некоторые улучшения в диалогах открытия/сохранения файлов.

Приглашаются все желающие. Пишите ваши соображения.

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

P.S. @hobbit, верни тэг gtk2 в БД сайта!!!

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

Это не нужно для всего софта, можно создать форк gtk2 только для своего софта, и потом распиарить всё своё на реддите. Создавать форк для совместимости со всеми старыми непатченными gtk2 приложениями нереально, патчить всё подряд на новое api нет смысла. Ибо все старые gtk2 приложения, за исключением набора lxde, сегодня очень мало кем используются, а lxde весьма популярен. Да, ситуация полностью напоминает trinity/tqt3.

gtk222
()

Имхо актуальней и перспективней, скажем, gui для dotnet сделать. На хабре один товарищ делал lxui, и на нём своё приложение сделал. Присоединился бы к нему и запилил норм ui для дотнета со всеми dpi плюшками, вместо некрофилии gtk2.

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

актуальней и перспективней, скажем, gui для dotnet сделать.

Avalonia вроде должна уметь.

Почему для dotnet, а не скажем для Java? Swing мешает, или AWT?

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

Для java оно уже всё есть стабильно и нормально работает, а для дотнет, кроме авалонии и ещё одного какого-то костыля, вроде и нет ничего.

Вот например кейс: разрабы DeltaDesign после всего этого движа с импортозамещением начали переписывать gui на авалонии, хотя если бы тот же lxui был бы более-менее готов, могли бы писать на нём, параллельно развивая его. Можно сказать, была бы отечественная gui либа, а так, юзают авалонию.

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

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

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

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

Ну давай, кодь по ветру, перепиши с сотню проектов, которые просто работают на gtk2 и на gtk3 переезжать не планируют (кто по причине дебильности gtk3, кто по причине дебильности апстрима, кто по причине синдрома утёнка, а кто по религиозно-сектантским причинам — это не важно, важно что оно просто работает и жрать не просит).

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

MIT

Не фри софтвер

ШТА?! Что за чушь ты городишь?

Даже EULA может быть свободной для использования. Или у вас, сектантов, “free” имеет какое-то персональное, искажённое значение?

mord0d ★★★★★
()
Ответ на: комментарий от i-rinat

Кстати для Haiku это было бы полезно. Писать нативную интеграцию Haiku в GTK 2 выглядит уж больно трудной задачей. Да ещё и надо поддерживать несколько версий для GTK 2/3/4.

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

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

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

Линукс тоже нельзя собрать не используя бинарники компилятора. И что дальше? Для первичной сборки полюбому придётся использовать готовые бинарники.

X512 ★★★★★
()

Всячески поддерживаю!
(не слушай тролей, у них работа такая - рушить сообщество)

Подписался на репозиторий:
https://github.com/sde-gui/gtk2

Он пока пустой, но жду наполнение сырцами и инструкцию, как собирать либу на новых системах, в том числе с новым gcc. Особенно, на новых осях, например на Ubuntu 22.04. В том числе, работающих через Wayland.

Кстати, вопрос: как либа будет работать на вяленом? Через XWayland или.. напрямую через Wayland, как предложил iРенат?

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

Надеюсь у тебя всё получится.

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

Если @wandrien всё-таки доведёт проект до окончания, останется только ему поаплодировать. Потому он не только заявил цели, но и ещё решил до них добираться на максимальном уровне сложности.

i-rinat ★★★★★
()
Ответ на: комментарий от Shushundr

Значит просто надо пользоваться более свежим gtk, не надо кодить против ветра

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

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

А где логово официального гтк2?

https://github.com/GNOME/gtk/tree/gtk-2-24

Там есть документация и инструкция по сборке-линковка?

Да там обычные автотулзы, с дефолтными параметрами всё собирается.

Документация по API:

(Сгенерирована из сорцов. В сорцах всё то же самое написано.)

Свой уже завёл?

Только wiki с набросками: https://github.com/sde-gui/gtk2/wiki

Я вот сегодня думаю о том, что всё-таки рассчёт масштабирования UI надо привязать не к классу GdkScreen, а к классу GdkWindow.

Это позволит на лету менять масштаб UI из менюшки оконного менеджера для любого поддерживающего эту фичу приложения. (То есть для любого, слинкованного с нашим форком gtk 🔥 )

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

Звучит как киллер фича.

wandrien ★★
() автор топика
Ответ на: комментарий от i-rinat

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

Ну вон Метапрог а захейтили, а проекта так и нет, значит хейтить тоже такое :)

pihter ★★★★★
()