Рабочий стол 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.
Источники[править]
- Главная ссылка к новости (https://budgie-desktop.org/201...) (Архивная копия от 30 октября 2018 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.