Планы на GNOME 43 и следующие версии
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 делает доступность для людей с ограниченными возможностями как никогда простой. Однако, когда речь идёт о том, чтобы сделать доступными основные приложения, всё ещё есть над чем работать. Я хочу пройтись по нашему набору основных приложений, протестировать их с помощью инструментов доступности, задокументировать и устранить все возникающие проблемы.
Спонсирование моей работы
Я надеюсь, что в этом году смогу поработать над всеми этими пунктами (и над другими, о которых я ещё не рассказал). Однако в настоящее время я нахожусь в поиске работы. Сейчас мне нужно искать работу на полный рабочий день или работать полный рабочий день над чем-то другим вместо того, чтобы работать над этими инициативами — у меня не хватает ментальных сил, чтобы делать и то, и другое. Если вы хотите, чтобы эта работа была выполнена, мне очень нужна ваша поддержка. У меня есть три места, где вы можете меня поддержать:
- Patreon
- Спонсоры GitHub
- Paypal.me (для единовременных платежей)
Если я получу достаточно спонсорской поддержки, я планирую начать регулярно (раз в две недели) публиковать обновления для спонсоров и меценатов GitHub. Я также могу начать транслировать некоторые из моих работ на Twitch или YouTube, поскольку людям, похоже, интересно посмотреть, как делаются вещи в GNOME.
На этом пока всё — спасибо, что дочитали до конца, и я надеюсь, что мы сможем сделать часть или всё это к следующему обновлению.
Если вам понравился перевод — отправьте его друзьям, пусть узнают, как быстро развивается GNOME! А если вы нашли ошибку или неточность, пишите в наш Telegram чат. Также я буду рад, если вы поддержите мою работу!