Release of the Enlightenment 0.28 user environment and EFL 1.29 libraries

After nearly two years of development, the Enlightenment 0.28 user environment has been released, based on the EFL (Enlightenment Foundation Library) and Elementary widgets. The code is written in C and distributed under the BSD license.

The desktop in Enlightenment is composed of components such as a file manager, a set of widgets, an application launcher panel, and graphical configurators. The graphical configurators provide both high-level configuration tools (such as changing appearance, configuring virtual desktops, managing fonts, screen resolution, keyboard layout, localization, etc.) and low-level tuning capabilities (for instance, you can configure caching parameters, graphics acceleration, power consumption, modify the window manager's logic).

To extend functionality, modules (gadgets) are suggested, and themes can be used for visual redesign. Modules are available for displaying a calendar-planner, weather forecasts, monitoring data, a volume control widget, and a battery charge indicator on the desktop. The components of Enlightenment are not rigidly bound to one another and can be used in other projects or to create specialized environments, such as shells for mobile devices.

The mandatory dependencies include EFL, libexif, and libpam (only on Linux). Recommended dependencies necessary for full functionality include: connman for network configuration; bluez5 for Bluetooth support; bc for the built-in calculator; pulseaudio for managing audio devices; acpid for handling various hardware events; packagekit for tracking system updates; udisks2 for mounting external drives; ddcutil for managing screen brightness; gdb for tracing crashes.

The most notable innovations include:

  • Support for audio mixing using the server PipeWire has been added (with continued support for PulseAudio).
  • Initial support for the NetBSD platform has been added.
  • A NetworkManager module has been added for configuring network connections via Wi-Fi, Ethernet, Bluetooth, and VPN. Automatic detection of NetworkManager and ConnMan network configurators has been implemented. The dialogs for viewing the list of connections and configuring Wi-Fi have been redesigned.
  • Traffic indicators, Wi-Fi protection modes, and signal strength indicators have been implemented, along with the ability to view details of network connections.
  • Support for importing VPN configurations and providing credential prompts for authentication has been added. Improved support for connections using captive portals.
  • A module for managing the clipboard has been prepared, offering options for saving operation history and removing individual items from history. Enhanced tracking of changes in clipboard content and text selection operations.
  • The ability to limit the upper charge threshold of the battery has been added to extend its lifespan.
  • Support for CPU power profiles provided via ACPI has been added.
  • The polling intensity has been reduced when the screen is turned off.
  • In X11-based environments, the ability to customize delays and repeat rate when holding down keys on the keyboard has been provided.
  • A 'Roll Up' visual effect for smooth window minimization has been added.
  • Support for creating separate profiles for different desktops and screens has been removed.
  • The performance of the window switching interface has been improved.
  • Expanded control options for the Bluetooth adapter.

At the same time, the Enlightenment project released a set of libraries, EFL 1.29 (Enlightenment Foundation Library), which allows the creation of visually appealing graphical interfaces that are compact, resource-efficient, and high-performing. Despite its initial development as a foundation for the Enlightenment environment, EFL components are often used in building interfaces for consumer electronics and mobile devices. For example, EFL is part of the Tizen mobile platform, used in home appliances by Electrolux, products by Samsung, ProFUSION, Free.fr, and Calaos.

Composition of EFL:

  • Eina — a library that implements data types (array, hash, list, tree) and auxiliary tools (working with logs, performance evaluation, format conversion, etc.).
  • Eet — a library for writing arbitrary sets of data blocks to a file for subsequent fast reading in any order.
  • Evas — a rendering system for organizing output to the screen. Evas treats the screen's content as a scene with objects whose states can be tracked. Operations such as scaling, rotation, and 3D transformations can be performed on the scene. This approach, abstracted from the placement of screen elements, allows for developing the user interface from a designer's perspective rather than a programmer's (in the code, one only needs to define the logic without worrying about rendering and output to the screen). Evas also abstracts the output method, allowing the same code to be used with both software and hardware-accelerated rendering.
  • Ecore — a library for organizing the event processing cycle, offering a set of modules to simplify tasks related to event processing, such as working with Evas, threads, network connections, and so on.
  • Embryo is an embedded interpreter for the Pawn language (formerly known as Small).
  • Edje is a graphical library that separates appearance from code (the styling is specified as a template loaded from a file). Edje occupies a niche between HTML+CSS and SVG. This library allows for the formation of a user interface equipped with animated visual effects and supports dynamic styling (the appearance can be completely changed just by switching the EDJ template without touching the code; unlike visual themes, the order of element placement can be changed arbitrarily).
  • Efreet is a library that enables applications to use Freedesktop.org specifications for working with icons, desktop files, and menus.
  • Eeze is a library for managing interactions with external devices through udev, HAL, and other mechanisms.
  • Expedite is a performance measurement toolkit that can test various Evas engines, such as X11, XRender, OpenGL, SDL, and DirectFB.
  • Evil is an implementation of compatibility layer for running on the Windows platform.
  • Eio is an abstract interface for accessing the file system and implementing asynchronous input/output.
  • Emotion is a library for integrating audio and video playback handlers into applications. Video playback can utilize Gstreamer, Xine, or other external plugins (such as VLC), with video displayed as a standard object in Evas.
  • Ethumb is a library for creating image thumbnails that comply with freedesktop.org standards. Ethumb is implemented as a dbus service and a client library that interacts with this service.
  • Elementary is a set of widgets with pre-implemented various graphical elements (from buttons and controls to calendars and text editing modules).
  • Eldbus is a layer built on top of DBus.
  • Ephysics provides means to utilize the Bullet physics simulation engine in applications based on EFL. Ephysics ensures the connection between Bullet and the Ecore and Evas libraries.
  • Ecore Audio is an API for sound manipulation.

In the new version of EFL, the build utilizes Meson 0.60, enhances support for BSD systems and Windows, deprecates the engine based on the DirectDraw API, improves caching efficiency, expands text output capabilities and font handling, adds optimizations based on AVX2 instructions, optimizes vector graphics rendering, introduces a backend for PipeWire, adds support for using native menus in macOS, implements the ability to sort application menu items considering locale, improves support for Wayland, implements a new API for sound output, and adds a new OpenGL renderer with gradient and compositing support.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster