LINUX.ORG.RU

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

 , , ,


5

9

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

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

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

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

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

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

@EXL, в продолжение разговора в другой теме.

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

А под линуксом этой проблемы исходно не существует. То есть 90% багов, которые бы могли возникнуть в такой ситуации, уже нет.

А винде до сих пор через её панель настроек нельзя выбрать произвольный размер шрифта. Настолько там всё приколочено к костылям внутри.

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

Ты с Луны свалился? Поддержка gtk2 апстримом официально прекращена. Кто первый решит сделать существенные правки, тот и будет теперь новым апстримом. Другого способа нет.

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

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

К использованию Wayland вместо xorg-server это тоже относится.

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

Без ссылки на источник вдохновления непонятна цель этой работы.

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

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

Без ссылки на источник вдохновления непонятна цель этой работы.

Да я уже давно собираюсь этим заняться. Пора уже начинать…

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

Это к СДВГ-разрабам gtk вопросы. Увы, тут я ничего не могу сделать.

wandrien ★★
() автор топика

А для чего он вам нужен? Он же нигде кроме gimp не используется и тот, плевал на системную тему. Еще и сегодня-завтра свалит на gtk3.

Занялись бы чем-нибудь действительно нужным, вроде:

1. Конвертером-синхронизатором системных GTK3 css-тем и QT5|6. Хотя бы в виде патчей qtNct. 2. Фукнкционалом проклятых гткашных файловых диалогов.

hargard ★★
()

Дело хорошее, но поезд ушёл уже, увы. Софт в основном переписали на гтк3, которое тоже теперь под угрозой. От гтк4 даже матерые гномосеки плюются.

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

Да никак не надо называть, мне кажется. Так и назвать репозиторий gtk2.

Никаких версий линейки 2.x выше 2.24 у команды гнома не будет 100%, так что всё выше 24-й - свободно для нумерации.

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

Занялись бы чем-нибудь действительно нужным, вроде: 1. Конвертером-синхронизатором системных GTK3 css-тем и QT5|6. Хотя бы в виде патчей qtNct. 2. Фукнкционалом проклятых гткашных файловых диалогов.

Вместо флуда на форуме занялись бы чем-нибудь действительно нужным, вроде: 1. Конвертером-синхронизатором системных GTK3 css-тем и QT5|6. Хотя бы в виде патчей qtNct. 2. Фукнкционалом проклятых гткашных файловых диалогов.

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

Стратегическая ошибка. GTK2 похоронили. Будут вечные вопли «Фу! Тут GTK2. Говно древнее». Если же это будет форк с новым именем, то оно так восприниматься уже не будет.

Если сейчас сказать, что пользуешься GNOME2, то скажут что старье. Если сказать что пользуешься MATE, то такой реакции не будет.

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

Нет, не ошибка. Мне страдающие СДВГ не нужны. Пусть сидят на gtk4.

«Новый тулкит» - это еще один ненужный тулкит.

А моя задача поддерживать в актуальном состоянии работу API, которое существует с 2002-го года.

wandrien ★★
() автор топика

Черновик по DPI, сюда скину.

Новые переменные в конфиг:

gtk-dpi-scaler=enabled,disabled
gtk-ui-scaler=enabled,disabled
gtk-ui-scale=-1...1024*1024
gtk-ui-scale-for-geometry=-1...1024*1024
gtk-ui-scale-for-lines=-1...1024*1024
gtk-ui-scale-for-fonts=-1...1024*1024
gtk-ui-scale-for-icons=-1...1024*1024
gtk-scale-semantic-icon-sizes=enabled,disabled

Новые API:

typedef enum {
  GTK_UI_SCALE_GEOMETRY,
  GTK_UI_SCALE_LINES,
  GTK_UI_SCALE_FONTS,
  GTK_UI_SCALE_ICONS
} GtkUiScaleType;

gint gtk_ui_scale_apply_for_int(GtkUiScaleType scale_type, gint unscaled_value);
gdouble gtk_ui_scale_apply_for_double(GtkUiScaleType scale_type, gdouble unscaled_value);

Изменение поведения:

  1. При включенной опции gtk-scale-semantic-icon-sizes, функция gtk_icon_size_lookup_for_settings() возвращает размеры с применением масштабирования.
wandrien ★★
() автор топика

Еще такой вопрос.

Недефолтные темы и движки тем. Какие стоит сохранить на гитхабе? Кидайте ссылки на возможные варианты.

Апстримы-то наверное давно мертвы у большей части тем?..

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

А моя задача поддерживать в актуальном состоянии работу API, которое существует с 2002-го года.

Не потянете.

Тут, кстати, уже кто-то пытался и бил себя пяткой в грудь. Да чот сдулсо

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

Какие стоит сохранить на гитхабе?

Конечно же все, какие удастся найти. Если не копию, так хотя бы список (метаданные). Заодно сделать к ним обсуждение недостатков каждой из них.

Ведь где-то такой список в принципе должен быть?

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

Ну так давай сделаем? Руки вроде есть. Задача не выглядит как работы на год.

Та мне GTK+2 не особо интересен, хоть и приятен. Вот тебе для SDE его может и интересно пилить… Но что толку, если он останется вещью в себе как, например, графический тулкит tqt3, который пилят для TDE и используют его лишь программы внутри самого TDE. Или как какой-нибудь CopperSpice, академический вариант Qt4 без Meta-Object Compiler, который существует, но который абсолютно никто и нигде не использует, ибо зачем, если есть Qt с официальной поддержкой.

Так что даже если ты проделаешь большую работу и добавишь поддержку HiDPI-матриц и скейлинга в GTK+2, кому это будет нужно, если всякие там Firefox и Chrom{e,ium} удаляют поддержку GTK+2 из своих кодовых баз, а проекты вроде XFCE переходят на GTK+3 и сопутствующий стек?

ИМХО, стоит потратить время на что-то более интересное и полезное, чем ковырять фреймворк время которого уже ушло. Тем более это не так интересно, ибо GTK+2 ещё не настолько ретро которое хотелось бы портировать на современные Linux-ситемы, чтобы оно там могло работать и он до сих пор минимально поддерживается.

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

Та мне GTK+2 не особо интересен

Этого вполне достаточно. Оправдываться было не обязательно.

Но и ныть, что в линуксе нет поддержки стека на 25 лет тогда тоже не стоит)

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

Да хоть только для sde с новым api! Неважно кто как смотрит на это, это же опенсорс, форки это неотъемлемая и главная часть опенсорса! На гитхубе форкаешь проект, накладываешь патчи, и каждый страждущий может увидеть на странице оригинала ссылочку на твой форк.

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

форкаешь проект, накладываешь патчи

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

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

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

Ты смеёшься? Какие патчи примут? Разработка gtk2 закончена давно вообще, разработка(только фиксы) lxde закончена уже 2 года назад. Разрабы lxde не обращают внимания на зарепорченные баги, даже не заходят на гитхуб. Куда примут твои патчи в таком случае?

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

Нет.

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

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

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

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