|
После почти двух лет разработки состоялся релиз пользовательского окружения 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 для трассировки аварийных завершений.
Наиболее заметные новшества:
- Добавлена поддержка микширования звука с использованием звукового сервера 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 с поддержкой градиентов и композитинга.
|