Рабочий стол Budgie переходит с GTK+ и библиотек GNOME на Qt

Материал из Викиновостей, свободного источника новостей

25 января 2017 года

Разработчики дистрибутива Solus приняли решение (Архивная копия от 30 октября 2018 на Wayback Machine) о переводе рабочего стола Budgie на фреймворк Qt. Изначально Budgie был построен на основе GTK+ и штатных библиотек GNOME, но использовал собственные реализации оболочки GNOME Shell, панели, апплетов и системы вывода уведомлений. Указано, что потребности Budgie переросли возможности стека GNOME, и проект не может должным образом развиваться на основе штатных библиотек GNOME.

По мере увеличения сложности проекта 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.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Рабочий стол Budgie переходит с GTK+ и библиотек GNOME на Qt», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.