Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025)

Материал из 0x1.tv

Докладчик
Александр Давыдик.jpg
Александр Давыдик

Тюнер — это дом ваших дополнительных системных настроек, компонентов, приложений и всего остального, что вы пожелаете!

Видео[править вики-текст]

Презентация[править вики-текст]

Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025).pdf

Thesis[править | править вики-текст]

Ключевые слова: GNOME, настройки, модульность, blueprint, libadwaita.

Существующие модульные приложения в экосистеме GNOME[править | править вики-текст]

В экосистеме GNOME существует несколько модульных приложений, поддерживающих работу с плагинами. Наиболее яркие примеры, для которых разработано множество расширений — это файловый менеджер Nautilus и среда разработки GNOME Builder.

Плагин — это динамически подключаемый модуль (библиотека), который загружается основным приложением во время выполнения. Хотя плагины часто разрабатываются на компилируемых языках (C, Vala), они также могут быть написаны на интерпретируемых языках, таких как Python или JavaScript. Главная задача плагинов — расширять возможности приложения без необходимости модификации его исходного кода.

Роль плагинов кардинально отличается в разных приложениях. Для Nautilus они играют периферийную роль и их API исторически ограничен. В то же время в GNOME Builder плагины являются фундаментальным механизмом, используемым для реализации ключевых возможностей среды разработки. Именно успешный подход, реализованный в Builder, был взят за основу и развит при создании нового приложения — Tuner.

Что такое Tuner?[править | править вики-текст]

Tuner — это модульное приложение для тонкой настройки системы, построенное на базе экосистемы GNOME.

Ключевые принципы и архитектура:

  • Модульность. Ядро Tuner намеренно минималистично и не содержит жёстко заданного функционала. Вся его мощь раскрывается через плагины. Такой подход предоставляет полную свободу как конечным пользователям (которые могут включать и отключать только нужные им модули), так и сборщикам дистрибутивов (которые могут комплектовать Tuner собственным набором расширений).
  • Современный стек технологий. Для построения пользовательского интерфейса используются библиотеки GTK4 и Libadwaita, что гарантирует единый, современный и адаптивный внешний вид. Для реализации системы плагинов применяется библиотека libpeas, которая обеспечивает поддержку модулей, написанных на различных языках программирования, включая C, Vala и Python.
  • Взаимодействие плагинов. Плагины в Tuner способны к глубокой интеграции: они могут не только добавлять собственные разделы настроек, но и расширять интерфейс других плагинов. При этом они остаются независимыми и изолированными модулями, что способствует созданию сложной и гибкой экосистемы расширений.

Архитектура плагинов Tuner ориентирована на простоту разработки[править | править вики-текст]

Процесс создания плагина требует всего двух файлов:

  • Файл описания интерфейса на языке Blueprint.
  • Файл реализации, который регистрирует этот интерфейс в приложении.

Интерфейс плагина строится из абстрактных объектов библиотеки libtuner (таких как Tuner.Page, Tuner.Group, Tuner.Switch), что позволяет создавать страницы настроек, группы элементов управления и другие виджеты, не требуя глубоких знаний GTK или Libadwaita.

Ключевым элементом является объект Binding, который автоматически связывает состояние виджета (например, положение переключателя) со значением соответствующей настройки. Это полностью исключает необходимость написания шаблонного кода для синхронизации данных между UI и логикой приложения, позволяя разработчику сосредоточиться исключительно на проектировании интерфейса и функциональности.

Существующие плагины для Tuner[править | править вики-текст]

  • Tweaks — плагин, реализующий функционал таких приложений, как Refine и GNOME Tweaks.
  • GDM — плагин для управления настройками GNOME Display Manager.
  • Panel — плагин, созданный для переключения между «GNOME» и «Панельным» стилями системы в Рабочей станции.
  • AltPackages — плагин, использующий бэкэнд Альтератора для управления системными пакетами.

Плагины Tweaks и Panel создают страницу «Внешний вид», каждый со своим контентом, но если они будут загружены одновременно, их страницы объединяются в одно целое и будут работать без изменений.


Tuner — модульное будущее систем конфигурации (Александр Давыдик, OSSDEVCONF-2025)!.jpg

Примечания и ссылки[править вики-текст]