Планы на GNOME 43 и следующие версии

#Перевод #GNOME

GNOME 42 только что вышел в свет и принёс с собой несколько новых интересных возможностей — например, новый параметр тёмной темы и новый интерфейс для создания скриншотов и записей экрана. Поскольку мы находимся прямо на пороге релиза, я хочу поддержать динамику и поделиться своими планами относительно функций, которые я собираюсь реализовать в ближайших выпусках.

Акцентные цвета и Libadwaita Recoloring API

Появление libadwaita позволяет нам сделать несколько новых вещей с платформой GNOME, поскольку у нас есть библиотека платформы, которая поможет разработчикам внедрить новые возможности платформы и реализовать их правильно. Например, libadwaita дала нам возможность реализовать глобальный параметр тёмной темы с механизмами, которые позволяют разработчикам выбирать, поддерживают ли они этот параметр, и легко настраивать стиль своего приложения, когда он включён. Александр Михайленко потратил много времени на переработку Adwaita, чтобы она работала с перекрашиванием, и я хочу в полной мере воспользоваться этим в следующих двух функциях: глобальные акцентные цвета и Recoloring API.

Libadwaita упрощает реализацию столь желанной функции персонализации: настраиваемые цвета акцентов. Глобальные цвета акцентов будут доступны для разработчиков приложений. Для бэкенда я хочу, чтобы цвета акцентов не зависели от настольных компьютеров и платформ, как и в случае с новым предпочтением темного стиля. Я планирую подать предложение об этом в xdg-desktop-portal в ближайшем будущем. В GNOME, вероятно, будет лучше показывать только несколько QA проверенных акцентов в пользовательском интерфейсе, но libadwaita будет поддерживать произвольные цвета, чтобы приложения из KDE, GNOME, elementaryOS и другие использовали одни и те же цвета, если они поддерживают этот параметр.

Разработчики, использующие Recoloring API, смогут программно изменять цвета в своих приложениях и добиваться автоматического обновления зависимых цветов. Они смогут легко создавать предустановки, которые можно использовать, например, для изменения цвета окна на основе цветовой схемы текстового представления. Технически это уже возможно с помощью CSS в libadwaita 1.0, но API сделает это проще. Вместо того, чтобы учитывать каждый отдельный цвет, им нужно будет задать только несколько, а libadwaita правильно обработает остальные. Эвристика, используемая здесь, также будет использоваться для обеспечения надлежащего контраста акцентных цветов с фоном приложения.

Для этого нет отслеживающего issue, но если вы заинтересованы в этой работе, вы можете следить за репозиторием libadwaita: https://gitlab.gnome.org/GNOME/libadwaita.

Адаптивный Nautilus и улучшенный выборщик файлов

У окна выбора файлов GTK есть несколько проблем. Например, он не поддерживает такие возможности GNOME, как избранные файлы, и нуждается в исправлениях со стороны вендоров (например, PureOS, Mobian) для работы на мобильных устройствах. Чтобы не отставать от традиций платформ, в идеале средство выбора файлов должно стать частью базового GNOME, а не частью GTK. Решение этой проблемы можно обсуждать, но я считаю, что было бы разумно синхронизировать выборщик файлов и наш браузер файлов, сделав выборщик файлов частью браузера файлов.

Учитывая всё это, я планирую сделать Nautilus адаптивным для мобильных форм-факторов и добавить в него новый режим выбора файлов. Выбор файлов в Nautilus вместо GTK позволит нам поддерживать возможности платформы GNOME в темпе GNOME, а не GTK, следовать паттернам проектирования GNOME и реализовывать такие возможности, как вид сетки с эскизами, не начиная с нуля.

Если вам интересно наблюдать за прогрессом, следите за репозиторием Nautilus: https://gitlab.gnome.org/GNOME/nautilus

Loupe (средство просмотра изображений)

Уже некоторое время я работаю над Loupe, новым просмотрщиком изображений, написанным на Rust с использованием GTK4 и libadwaita. Я планирую, что Loupe будет адаптивным, удобным для сенсорных панелей и тачскринов и простым в использовании. Я также хочу, чтобы он интегрировался с Nautilus, так что Loupe будет следовать настройкам сортировки, которые вы имеете для папки в Nautilus.

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

Если проект Loupe кажется вам интересным, не стесняйтесь следить за его развитием на GitLab: https://gitlab.gnome.org/BrainBlasted/loupe

Переписывание Baobab на языке Rust и новый дизайн

Baobab (он же Disk Usage Analyzer) написан на языке Vala. Vala не имеет доступа к большой экосистеме библиотек, и инструментарий оставляет желать лучшего. Rust, однако, имеет процветающую экосистему библиотек и замечательный инструментарий. Rust также имеет отличные биндинги GTK, которые постоянно совершенствуются. Переписав Baobab на Rust, я смогу в полной мере использовать преимущества экосистемы и одновременно повысить производительность его основной функции: анализа использования диска. Я уже начал работу в этом направлении, хотя она пока недоступна на GitLab.

В дополнение к переработке, я также планирую осуществить редизайн, основанный на макетах Аллана Дэя. Новый дизайн модернизирует пользовательский интерфейс, используя новые паттерны и исправляя несколько основных недочётов текущего дизайна.

Вы можете следить за ходом работы над Baobab на GitLab: https://gitlab.gnome.org/GNOME/baobab

Открытие соседних файлов из FileChooser Portal

Выборщик файлов xdg-desktop-portal не позволяет открывать соседние файлы при выборе файла. Такие приложения, как браузеры изображений, веб-браузеры и программы-запускаторы, нуждаются в “дырке в песочнице”, если хотят работать без проблем. Если вы используете веб-браузер в качестве Flatpak, вы могли столкнуться с этой проблемой: при открытии html-файла не загружаются связанные с ним HTML-файлы или медиафайлы. Если вы работаете над веб-сайтом локально, то для его предварительного просмотра вам необходимо запустить его с помощью веб-сервера – например, с помощью python -m http.server.

Я хочу поработать над порталом, который позволит разработчикам запрашивать доступ к соседним файлам при открытии одного файла. С таким порталом я мог бы поставлять Loupe как Flatpak, не требуя никаких дыр в песочнице, и такие приложения, как Lutris или Bottles, также были бы более жизнеспособны как Flatpak.

Если вы хотите узнать больше и следить за ходом работы над этим issue, смотрите issue xdg-desktop-portal на GitHub: https://github.com/flatpak/xdg-desktop-portal/issues/463.

Исправления, связанные с доступностью

GTK4 делает доступность для людей с ограниченными возможностями как никогда простой. Однако, когда речь идёт о том, чтобы сделать доступными основные приложения, всё ещё есть над чем работать. Я хочу пройтись по нашему набору основных приложений, протестировать их с помощью инструментов доступности, задокументировать и устранить все возникающие проблемы.

Спонсирование моей работы

Я надеюсь, что в этом году смогу поработать над всеми этими пунктами (и над другими, о которых я ещё не рассказал). Однако в настоящее время я нахожусь в поиске работы. Сейчас мне нужно искать работу на полный рабочий день или работать полный рабочий день над чем-то другим вместо того, чтобы работать над этими инициативами — у меня не хватает ментальных сил, чтобы делать и то, и другое. Если вы хотите, чтобы эта работа была выполнена, мне очень нужна ваша поддержка. У меня есть три места, где вы можете меня поддержать:

Если я получу достаточно спонсорской поддержки, я планирую начать регулярно (раз в две недели) публиковать обновления для спонсоров и меценатов GitHub. Я также могу начать транслировать некоторые из моих работ на Twitch или YouTube, поскольку людям, похоже, интересно посмотреть, как делаются вещи в GNOME.

На этом пока всё — спасибо, что дочитали до конца, и я надеюсь, что мы сможем сделать часть или всё это к следующему обновлению.


Если вам понравился перевод — отправьте его друзьям, пусть узнают, как быстро развивается GNOME! А если вы нашли ошибку или неточность, пишите в наш Telegram чат. Также я буду рад, если вы поддержите мою работу!

Полезные ссылки