Po prawie dwóch latach prac rozwojowych zadebiutowało środowisko użytkownika Enlightenment 0.28, oparte na zestawie bibliotek EFL (Enlightenment Foundation Library) oraz widżetach Elementary. Kod napisano w języku C i jest udostępniany na licencji BSD.
Pulpit w Enlightenment tworzą takie komponenty, jak menedżer plików, zestaw widżetów, panel uruchamiania aplikacji oraz graficzne konfiguratory. Graficzne konfiguratory zapewniają zarówno wysokopoziomowe narzędzia do dostosowywania (zmiana wyglądu, ustawienia wirtualnych pulpitów, zarządzanie czcionkami, rozdzielczością ekranu, układem klawiatury, lokalizacją itd.), jak i możliwości niskopoziomowego tuningu (na przykład można dostosować parametry buforowania, akceleracji graficznej, zużycia energii, zmienić logikę działania menedżera okien).
Aby rozszerzyć funkcjonalność, zaleca się korzystanie z modułów (gadżetów), a dla przekształcenia wyglądu — z motywów. Dostępne są moduły do wyświetlania kalendarza-planera, prognozy pogody, danych monitorujących, regulatora głośności, widżetu do oceny naładowania akumulatora na pulpicie. Składniki Enlightenment nie są sztywno przypisane do siebie i mogą być używane w innych projektach lub do tworzenia specjalizowanych środowisk, takich jak powłoki dla urządzeń mobilnych.
Zgłoszone obowiązkowe zależności to EFL, libexif i libpam (tylko w systemie Linux). Wśród zalecanych zależności, koniecznych do osiągnięcia pełnej funkcjonalności: connman do konfiguracji sieci; bluez5 do obsługi Bluetooth; bc do wbudowanego kalkulatora; pulseaudio do zarządzania urządzeniami dźwiękowymi; acpid do przetwarzania różnych zdarzeń sprzętowych; packagekit do śledzenia systemowych aktualizacji; udisks2 do montowania zewnętrznych dysków; ddcutil do zarządzania podświetleniem ekranu; gdb do śledzenia awarii.

Najbardziej zauważalne nowości:
- Dodano wsparcie dla miksowania dźwięku przy użyciu serwery PipeWire (możliwość współpracy z PulseAudio została zachowana).
- Dodano wstępne wsparcie dla platformy NetBSD.
- Dodano moduł NetworkManager do konfigurowania połączeń sieciowych przez Wi-Fi, Ethernet, Bluetooth oraz VPN. Wprowadzono automatyczne wykrywanie konfiguratorów sieciowych NetworkManager i ConnMan. Przerobiono okna dialogowe do przeglądania listy połączeń i konfigurowania Wi-Fi.
- Zrealizowano wskaźniki ruchu, trybów ochrony Wi-Fi oraz poziomu sygnału, a także możliwość przeglądania szczegółów połączenia sieciowego.
- Dodano wsparcie dla importu ustawień VPN oraz wyświetlania żądań danych uwierzytelniających do autoryzacji. Ulepszono wsparcie dla łączenia z wykorzystaniem portali captivy.
- Przygotowano moduł do zarządzania schowkiem, który ma opcje zapisywania historii operacji i usuwania poszczególnych elementów z historii. Ulepszono śledzenie zmiany zawartości schowka oraz operacji zaznaczania tekstu.
- Dodano ograniczenie górnej granicy ładowania akumulatora w celu przedłużenia jego żywotności.
- Dodano wsparcie dla profili zużycia energii CPU dostarczanych przez ACPI.
- Zmniejszona intensywność operacji sprawdzania stanu przy wyłączonym ekranie.
- W środowiskach opartych na X11 wprowadzono możliwość ustawienia opóźnień i częstotliwości powtórzeń naciśnięcia klawisza na klawiaturze.
- Dodano efekt wizualny „Roll Up” dla płynnego minimalizowania okien.
- Usunięto wsparcie dla tworzenia oddzielnych profili dla różnych pulpitów i ekranów.
- Zwiększona wydajność interfejsu przełączania między oknami.
- Rozszerzone możliwości zarządzania adapterem Bluetooth.
Jednocześnie projekt Enlightenment opublikował zestaw bibliotek EFL 1.29 (Enlightenment Foundation Library), które umożliwiają tworzenie atrakcyjnych wizualnie interfejsów graficznych, charakteryzujących się kompaktowością, niskim zużyciem zasobów i wysoką wydajnością. Mimo że pierwotnie rozwijane jako baza dla środowiska Enlightenment, komponenty EFL często są wykorzystywane do budowy interfejsów elektroniki użytkowej i urządzeń mobilnych. Na przykład EFL jest częścią mobilnej platformy Tizen, używaną w sprzęcie AGD Electrolux, produktach Samsung, ProFUSION, Free.fr i Calaos.
Skład EFL:
- Eina — biblioteka implementująca typy danych (tablica, mapa, lista, drzewo) oraz narzędzia pomocnicze (praca z logami, ocena wydajności, konwersja formatów itp.).
- Eet — biblioteka do zapisywania dowolnego zestawu bloków danych do pliku w celu szybkiego odczytu w dowolnej kolejności.
- Evas — system renderowania do organizacji wyjścia na ekran. Evas operuje zawartością ekranu jako sceną z obiektami, których stan można śledzić. Na scenie można wykonywać operacje takie jak skalowanie, obracanie i transformacje 3D. Takie podejście, abstrahujące umiejscowienie elementów ekranowych, pozwala projektować interfejs użytkownika z perspektywy projektanta, a nie programisty (w kodzie wystarczy określić tylko logikę i nie martwić się o rysowanie i wyjście na ekran). Evas również abstrahuje metodę wyjścia, co pozwala używać tego samego kodu w połączeniu z renderowaniem programowym i sprzętowym.
- Ecore — biblioteka do organizacji cyklu obsługi zdarzeń, oferująca zestaw modułów do uproszczenia zadań związanych z obsługą zdarzeń, takich jak praca z Evas, wątkami, połączeniami sieciowymi itp.
- Embryo — wbudowany interpreter języka Pawn (wcześniej znanego jako Small).
- Edje — biblioteka graficzna, oddzielająca wygląd od kodu (styl definiowany jest w postaci szablonu ładowanego z pliku). Edje zajmuje pozycję pomiędzy HTML+CSS a SVG. Dzięki tej bibliotece można stworzyć interfejs użytkownika, wyposażony w animowane efekty wizualne i wspierający dynamiczne formowanie (wygląd można całkowicie zmienić, po prostu zmieniając szablon EDJ, nie dotykając kodu, przy czym, w przeciwieństwie do wizualnych motywów, kolejność układu elementów może być dowolnie zmieniana).
- Efreet — biblioteka, która umożliwia wykorzystanie w aplikacjach specyfikacji Freedesktop.org do pracy z ikonami, plikami Desktop i menu.
- Eeze — biblioteka do organizacji interakcji z zewnętrznymi urządzeniami poprzez udev, HAL i inne mechanizmy.
- Expedite — narzędzie do pomiaru wydajności, które może testować różne silniki Evas, takie jak X11, XRender, OpenGL, SDL i DirectFB.
- Evil — implementacja warstwy zgodności do pracy na platformie Windows.
- Eio — abstrakcyjny interfejs do dostępu do systemu plików i realizacji asynchronicznego wejścia/wyjścia.
- Emotion — biblioteka do integracji w aplikacjach odtwarzaczy dźwięku i wideo. Odtwarzanie wideo może być realizowane przy użyciu Gstreamer, Xine lub innych zewnętrznych wtyczek (np. VLC), przy czym wideo jest wyświetlane jako standardowy obiekt w Evas.
- Ethumb — biblioteka do tworzenia miniatur obrazów, zgodnych ze standardami freedesktop.org. Ethumb jest realizowany jako usługa dbus i biblioteka kliencka, współpracująca z tą usługą.
- Elementary — zestaw widżetów z gotową realizacją różnorodnych elementów graficznych (od przycisków i elementów sterujących, po kalendarze i moduły edycji tekstu).
- Eldbus — nadbudowa nad DBus.
- Ephysics — zapewnia środki do wykorzystania silnika symulacji procesów fizycznych Bullet w aplikacjach opartych na EFL. Ephysics łączy Bullet z bibliotekami Ecore i Evas.
- Ecore Audio — API do pracy z dźwiękiem.
W nowej wersji EFL do budowy użyto narzędzia Meson 0.60, poprawiono wsparcie dla systemów BSD oraz Windows, oznaczono jako przestarzały silnik oparty na API DirectDraw, zwiększono efektywność buforowania, rozszerzono możliwości wyświetlania tekstu oraz pracy z czcionkami, dodano optymalizacje oparte na instrukcjach AVX2, zoptymalizowano renderowanie grafiki wektorowej, dodano backend dla PipeWire, wprowadzono wsparcie dla używania standardowych menu w macOS, zrealizowano możliwość sortowania elementów menu aplikacji z uwzględnieniem lokalizacji, poprawiono wsparcie dla Wayland, wprowadzono nowe API do wyprowadzania dźwięku oraz dodano nowy renderer oparty na OpenGL z obsługą gradientów i kompozycji.
Źródło: opennet.ru
