Рабочий стол Budgie переходит с GTK+ и библиотек GNOME на Qt
По мере увеличения сложности проекта Budgie обеспечение работы поверх стека GNOME становилась всё более сложной задачей, отбирающей у разработчиков значительные ресурсы. Появление своего конфигуратора, возможности размещения нескольких панелей и развитие API для плагинов приводило к всё большему усложнению проекта. В один прекрасный момент разработчики осознали, что тратят львиную долю своего времени на адаптацию проекта под изменения в новых выпусках GNOME.
Отмечается, что GTK+ развивается в паре с GNOME и разрабатывается для решения задач, которые ставят перед собой разработчики GNOME, без оглядки на другие проекты. В итоге, каждый значительный релиз GNOME приводит к возникновению непредвиденных проблем, возникающих при переводе Budgie на обновлённые библиотеки GNOME. Среди таких проблем упоминаются нарушение совместимости API или ABI, слияние компонентов, нарушение работы виджетов и тем оформления, непостоянство GdkScreen API, изменение поведения GSettings. Для того, чтобы поддерживать Budgie на плаву приходится тратить много усилий и притворяться GNOME Shell.
В качестве иллюстрации возникающих проблем приведён пример с предачей уведомлений, для отображения которых GNOME Settings Daemon отправляет сообщение по D-BUS к получателю с именем org.gnome.Shell. Чтобы принять подобные сообщения оконному менеджеру budgie-wm приходится притворяться org.gnome.Shell, чтобы корректно обработать нажатие горячих клавиш и событий переключения раскладки клавиатуры. Так как в процессе Mutter (budgie-wm) не предоставляются нормальные виджеты GTK+, приходится перенаправлять уведомление в процесс budgie-daemon, в котором можно использовать виджеты GTK+. В качестве выхода можно было бы создать собственное ответвление библиотек GNOME, но подобный шаг оценен как излишне трудоёмкий.
Рассмотрев все за и против оптимальным признан путь миграции рабочего стола Budgie на Qt. По мнению разработчиков, переход на Qt положительно отразится на производительности, позволит реализовать новые возможности и расширить графические эффекты. При этом в основной кодовой базе планируется использовать только средства разработки на C++ и отказаться от применения языка Vala. В Budgie также не будет применяться QML и библиотеки KDE. Подобное ограничение не распространяется на сторонние виджеты, авторы которых вольны применять QML. Переход на Qt не означает обеспечение совместимости с KDE Plasma и проект продолжит ориентацию на запуск приложений GNOME, обеспечив их бесшовную интеграцию в окружение на базе Qt.
Источник: http://www.opennet.ru/opennews/art.shtml?num=45914
|
0 | Tweet | Нравится |
|