Темы



Выпуск пользовательского окружения Enlightenment 0.28 и библиотек EFL 1.29

Коротко сгенерировано ИИ по тексту статьи
  • После почти двух лет разработки вышли Enlightenment 0.28 и EFL 1.29.
  • В Enlightenment добавили поддержку PipeWire, NetBSD и NetworkManager, а также ограничение максимального заряда аккумулятора.
  • В EFL 1.29 добавили бэкенд PipeWire, новый OpenGL-рендер и оптимизации AVX2; улучшили поддержку BSD, Windows и Wayland.

Почему это важно: Компоненты EFL используются в интерфейсах потребительской электроники и мобильных устройств.

После почти двух лет разработки состоялся релиз пользовательского окружения Enlightenment 0.28, которое базируется на наборе библиотек EFL (Enlightenment Foundation Library) и виджетах Elementary. Код написан на языке Си и распространяется под лицензией BSD.

Рабочий стол в Enlightenment формируют такие компоненты, как файловый менеджер, набор виджетов, панель запуска приложений и графические конфигураторы. Графические конфигураторы предоставляют как высокоуровневые средства настройки (изменение оформления, настройка виртуальных рабочих столов, управление шрифтами, разрешением экрана, раскладкой клавиатуры, локализацией и т.п.), так и возможности по низкоуровневому тюнингу (например, можно настроить параметры кэширования, графического ускорения, потребления энергии, изменить логику работы оконного менеджера).

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

Из обязательных зависимостей заявлены EFL, libexif и libpam (только в Linux). Среди рекомендованных зависимостей, необходимых для достижения полноценной функциональности: connman для настройки сети; bluez5 для работы с Bluetooth; bc для встроенного калькулятора; pulseaudio для управления звуковыми устройствами; acpid для обработки различных аппаратных событий; packagekit для отслеживания системных обновлений; udisks2 для монтирования внешних дисков; ddcutil для управления подсветкой экрана; gdb для трассировки аварийных завершений.

CFD0C5CECEC5D4_1793463817.png

Наиболее заметные новшества:

  • Добавлена поддержка микширования звука с использованием звукового сервера PipeWire (возможность работы с PulseAudio сохранена).

  • Добавлена начальная поддержка платформы NetBSD.
  • Добавлен модуль NetworkManager для настройки сетевых подключений через Wi-Fi, Ethernet, Bluetooth и VPN. Реализовано автоматическое определение сетевых конфигураторов NetworkManager и ConnMan. Переделаны диалоги для просмотра списка подключений и настройки Wi-Fi.
  • Реализованы индикаторы трафика, режимов защиты Wi-Fi и уровня сигнала, а также возможность просмотра деталей сетевого подключения.
  • Добавлена поддержка импорта настроек VPN и вывода запросов учётных данных для аутентификации. Улучшена поддержка подключения с использованием captive-порталов.

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

  • Добавлена возможность ограничения верхней границы заряда аккумулятора для продления его ресурса.

  • Добавлена поддержка профилей энергопотребления CPU, предоставляемых через ACPI.
  • Снижена интенсивность операций опроса состояния при выключенном экране.

  • В окружениях на базе X11 предоставлена возможность настройки задержек и частоты срабатывания повторных нажатий при удержании клавиши на клавиатуре.
  • Добавлен визуальный эффект «Roll Up» для плавного сворачивания окон.
  • Удалена поддержка создания отдельных профилей для разных рабочих столов и экранов.
  • Повышена производительность интерфейса переключения между окнами.
  • Расширены возможности управления Bluetooth-адаптером.




Одновременно проект Enlightenment опубликовал набор библиотек EFL 1.29 (Enlightenment Foundation Library), позволяющих создавать визуально привлекательные графические интерфейсы, отличающиеся компактностью, низким потреблением ресурсов и высокой производительностью. Несмотря на изначальное развитие в качестве базиса для окружения Enlightenment, компоненты EFL часто используются для построения интерфейсов потребительской электроники и мобильных устройств. Например, EFL является составной частью мобильной платформы Tizen, используются в бытовой технике Electrolux, продуктах Samsung, ProFUSION, Free.fr и Calaos.

Состав EFL:

  • Eina — библиотека с реализацией типов данных (массив, хэш, список, дерево) и вспомогательных инструментов (работа с логами, оценка производительности, преобразование форматов и т.д.).

  • Eet — библиотека для записи произвольного набора блоков данных в файл для последующего быстрого чтения в произвольном порядке.

  • Evas — система рендеринга для организации вывода на экран. Evas оперирует содержимым экрана как сценой с объектами, состояние которых можно отслеживать. Над сценой можно проделывать такие операции как масштабирование, вращение и 3D-трансформации. Подобный подход, абстрагированный от размещения экранных элементов, позволяет разрабатывать интерфейс пользователя с точки зрения дизайнера, а не программиста (в коде достаточно определить только логику и не думать о прорисовке и выводе на экран). Evas также абстрагирует метод вывода, что позволяет использовать один и тот же код в сочетании с программным и аппаратно ускоренным рендерингом.

  • Ecore — библиотека для организации цикла обработки событий, предлагающая набор модулей для упрощения связанных с обработкой событий задач, таких как работа с Evas, нитями, сетевыми соединениями и т.п.

  • Embryo — встраиваемый интерпретатор языка Pawn (ранее известного как Small).

  • Edje — графическая библиотека, отделяющая внешний вид от кода (оформление задаётся в виде загружаемого из файла шаблона). Edje занимает нишу между HTML+CSS и SVG. При помощи данной библиотеки можно сформировать пользовательский интерфейс, снабжённый анимированными визуальными эффектами и поддерживающий динамическое оформление (внешний вид можно полностью поменять, просто сменив EDJ-шаблон и не трогая код, при этом, в отличие от визуальных тем, порядок расположения элементов может быть произвольно изменён).

  • Efreet — библиотека, позволяющая использовать в приложениях спецификации Freedesktop.org для работы с пиктограммами, Desktop-файлами и меню.

  • Eeze — библиотека для организации взаимодействия с внешними устройствами через udev, HAL и другие механизмы.

  • Expedite — инструментарий для измерения производительности, который может тестировать различные движки Evas, такие как X11, XRender, OpenGL, SDL и DirectFB.

  • Evil — реализация уровня совместимости для работы на платформе Windows.

  • Eio — абстрактный интерфейс для доступа к файловой системе и реализации асинхронного ввода/вывода.
  • Emotion — библиотека для интеграции в приложения обработчиков для проигрывания звука и видео. Воспроизведение видео может осуществляться с использованием Gstreamer, Xine или других внешних плагинов (например, VLC), при этом видео отображается как стандартный объект в Evas.

  • Ethumb — библиотека для формирования эскизов изображений, соответствующих стандартам freedesktop.org. Ethumb реализован в виде сервиса dbus и клиентской библиотеки, взаимодействующей с данным сервисом.
  • Elementary — набор виджетов с готовой реализацией разнообразных графических элементов (от кнопок и элементов управления, до календаря и модуля редактирования текста).
  • Eldbus — надстройкой над DBus.

  • Ephysics — предоставляет средства для использования движка симуляции физических процессов Bullet в приложениях на базе EFL. Ephysics обеспечивает связку Bullet с библиотеками Ecore и Evas.

  • Ecore Audio — API для работы со звуком.

В новой версии EFL для сборки задействован инструментарий Meson 0.60, улучшена поддержка BSD-систем и Windows, объявлен устаревшим движок на базе API DirectDraw, повышена эффективность кэширования, расширены возможности для вывода текста и работы со шрифтами, добавлены оптимизации на базе инструкций AVX2, оптимизирована отрисовка векторной графики, добавлен бэкенд для PipeWire, добавлена поддержка использования штатных меню в macOS, реализована возможность сортировки элементов меню приложений с учётом локали, улучшена поддержка Wayland, реализован новый API для вывода звука, добавлен новый рендер на базе OpenGL с поддержкой градиентов и композитинга.



Источник: http://www.opennet.ru/opennews/art.shtml? num=66583

© OpenNet