După aproape doi ani de dezvoltare, a fost lansat mediu de utilizare Enlightenment 0.28, care se bazează pe un set de biblioteci EFL (Enlightenment Foundation Library) și widgeturi Elementary. Codul este scris în limbajul C și este distribuit sub licența BSD.
Desktopul în Enlightenment este format din componente precum managerul de fișiere, un set de widgeturi, panoul de lansare a aplicațiilor și configuratoarele grafice. Configuratoarele grafice oferă atât instrumente de configurare de nivel înalt (modificarea aspectului, configurarea birouri virtuale, gestionarea fonturilor, rezoluția ecranului, layout-ul tastaturii, localizarea și altele), cât și posibilități de ajustare la un nivel mai mic (de exemplu, este posibil să definești parametrii de memorie cache, accelerare grafică, consum de energie, să modifici logica de funcționare a managerului de feronerie).
Pentru extinderea funcționalității, se recomandă utilizarea modulelor (gadget-uri), iar pentru a schimba aspectul, sunt disponibile teme de design. Există module pentru a afisa pe desktop un calendar-planificator, prognoza vremii, datele de monitorizare, un regulator de volum și un widget pentru a evalua încărcarea bateriei. Componentele Enlightenment nu sunt rigid asociate între ele și pot fi folosite în alte proiecte sau pentru a crea medii specializate, precum shell-uri pentru dispozitive mobile.
Printre dependențele obligatorii se numără EFL, libexif și libpam (doar pe Linux). Printre dependențele recomandate, necesare pentru a atinge funcționalitatea completă: connman pentru configurarea rețelei; bluez5 pentru funcționarea Bluetooth; bc pentru calculatorul încorporat; pulseaudio pentru gestionarea dispozitivelor audio; acpid pentru prelucrarea diferitelor evenimente hardware; packagekit pentru urmărirea actualizărilor de sistem; udisks2 pentru montarea discurilor externe; ddcutil pentru controlul iluminării ecranului; gdb pentru urmărirea crash-urilor.

Cele mai notabile noutăți:
- A fost adăugată suport pentru amestecarea sunetului folosind server PipeWire (posibilitatea de a lucra cu PulseAudio este păstrată).
- A fost adăugat suport inițial pentru platforma NetBSD.
- A fost adăugat modul NetworkManager pentru configurarea conexiunilor de rețea prin Wi-Fi, Ethernet, Bluetooth și VPN. A fost implementată detectarea automată a configuratoarelor de rețea NetworkManager și ConnMan. Dialogurile pentru vizualizarea listei de conexiuni și configurarea Wi-Fi au fost revizuite.
- Au fost implementate indicatoare de trafic, moduri de protecție Wi-Fi și nivelul semnalului, precum și posibilitatea de a vizualiza detaliile conexiunii de rețea.
- A fost adăugată suport pentru importul setărilor VPN și generarea de solicitări de acreditive pentru autentificare. Suportul pentru conectarea utilizând portaluri captive a fost îmbunătățit.
- A fost pregătit un modul pentru gestionarea clipboard-ului, având opțiuni pentru salvarea istoricului operațiunilor și ștergerea unor elemente individuale din istoric. A fost îmbunătățită urmărirea schimbării conținutului clipboard-ului și operațiunilor de selectare a textului.
- A fost adăugată posibilitatea de a limita încărcarea maximă a bateriei pentru a-i prelungi durata de viață.
- A fost adăugată suportul pentru profilurile de consum de energie CPU, oferite prin ACPI.
- Intensitatea operațiunilor de sondare a stării a fost redusă atunci când ecranul este oprit.
- În medii bazate pe X11, a fost adăugată posibilitatea de a configura întârzierile și frecvența de reacție a apăsărilor repetate când o tastă este menținută apăsată.
- A fost adăugat efectul vizual „Roll Up” pentru o retractare lină a ferestrelor.
- S-a eliminat suportul pentru crearea unor profile separate pentru diferite birouri și ecrane.
- Performanța interfeței de comutare între feronete a fost îmbunătățită.
- Funcționalitățile de gestionare a adaptorului Bluetooth au fost extinse.
În același timp, proiectul Enlightenment a publicat un set de biblioteci EFL 1.29 (Enlightenment Foundation Library) care permit crearea de interfețe grafice atractive vizual, caracterizate prin compactitate, consum redus de resurse și performanță înaltă. Deși inițial a fost dezvoltat ca bază pentru mediu Enlightenment, componentele EFL sunt adesea utilizate pentru construirea interfețelor de electronice de consum și dispozitive mobile. De exemplu, EFL este o parte integrantă a platformei mobile Tizen, fiind utilizat în produsele Electrolux, Samsung, ProFUSION, Free.fr și Calaos.
Componența EFL:
- Eina — o bibliotecă cu implementarea tipurilor de date (tablou, hash, listă, copac) și instrumente auxiliare (lucru cu jurnale, evaluarea performanței, conversia formatelor etc.).
- Eet — o bibliotecă pentru scrierea unui set arbitrar de blocuri de date în fișier pentru citirea ulterioară rapidă în ordine aleatoare.
- Evas — un sistem de redare pentru organizarea ieșirii pe ecran. Evas operează conținutul ecranului ca pe o scenă cu obiecte a căror stare poate fi urmărită. Pe scenă pot fi efectuate operațiuni precum scalarea, rotirea și transformările 3D. Această abordare, abstractizată de plasarea elementelor de pe ecran, permite dezvoltarea interfeței utilizatorului din perspectiva designerului, nu a programatorului (în cod este suficient să se definească doar logica și să nu se preocupe de randare și ieșirea pe ecran). Evas abate, de asemenea, metoda de ieșire, permițând utilizarea aceluiași cod în combinație cu randarea software și hardware accelerată.
- Ecore — o bibliotecă pentru organizarea ciclului de procesare a evenimentelor, oferind un set de module pentru simplificarea sarcinilor legate de procesarea evenimentelor, cum ar fi lucrul cu Evas, fire, conexiuni de rețea etc.
- Embryo — un interpret încorporat al limbajului Pawn (cunoscut anterior ca Small).
- Edje — o bibliotecă grafică care separă aspectul de cod (designul este definit pe baza unui șablon încărcat dintr-un fișier). Edje ocupă un loc intermediar între HTML+CSS și SVG. Această bibliotecă permite formarea unei interfețe utilizator, dotată cu efecte vizuale animate și care suportă un design dinamic (aspectul poate fi complet schimbat doar prin schimbarea șablonului EDJ, fără a modifica codul, iar spre deosebire de teme vizuale, ordinea elementelor poate fi modificată la alegere).
- Efreet — o bibliotecă ce permite utilizarea specificațiilor Freedesktop.org în aplicații pentru a lucra cu pictograme, fișiere Desktop și meniuri.
- Eeze — o bibliotecă pentru organizarea interacțiunii cu dispozitive externe prin udev, HAL și alte mecanisme.
- Expedite — un instrumentar pentru măsurarea performanței, capabil să testeze diverse motoare Evas, cum ar fi X11, XRender, OpenGL, SDL și DirectFB.
- Evil — o implementare a unui nivel de compatibilitate pentru a lucra pe platforma Windows.
- Eio — o interfață abstractă pentru accesul la sistemul de fișiere și implementarea intrării/ieșirii asincrone.
- Emotion — o bibliotecă pentru integrarea în aplicații a handler-elor pentru redarea audio și video. Redarea video poate fi realizată folosind Gstreamer, Xine sau alte plug-in-uri externe (de exemplu, VLC), în timp ce video-ul este afișat ca un obiect standard în Evas.
- Ethumb — o bibliotecă pentru generarea de miniaturi ale imaginilor, conform standardelor freedesktop.org. Ethumb este implementat ca un serviciu dbus și o bibliotecă client care interacționează cu acest serviciu.
- Elementary — un set de widget-uri cu implementări gata făcute de diverse elemente grafice (de la butoane și controale, până la calendare și module de editare text).
- Eldbus — un wrapper pentru DBus.
- Ephysics — oferă instrumente pentru utilizarea motorului de simulare a proceselor fizice Bullet în aplicații bazate pe EFL. Ephysics asigură legătura Bullet cu bibliotecile Ecore și Evas.
- Ecore Audio — API pentru lucrul cu sunetul.
În noua versiune EFL, pentru construcție este utilizat instrumentul Meson 0.60, s-a îmbunătățit suportul pentru sistemele BSD și Windows, a fost declarat învechit motorul bazat pe API DirectDraw, s-a crescut eficiența caching-ului, s-au extins posibilitățile de ieșire a textului și de lucru cu fonturile, s-au adăugat optimizări bazate pe instrucțiunile AVX2, s-a optimizat redarea graficii vectoriale, s-a adăugat un backend pentru PipeWire, s-a adăugat suportul pentru utilizarea meniurilor standard în macOS, s-a realizat posibilitatea de sortare a elementelor din meniul aplicațiilor având în vedere localizarea, s-a îmbunătățit suportul pentru Wayland, s-a implementat un nou API pentru redarea sunetului, s-a adăugat un nou renderer bazat pe OpenGL cu suport pentru degradeuri și compozitare.
Sursa: opennet.ro
