Dopo quasi due anni di sviluppo, è stato rilasciato l'ambiente utente Enlightenment 0.28, basato su un insieme di librerie EFL (Enlightenment Foundation Library) e widget Elementary. Il codice è scritto in C e distribuito con licenza BSD.
Il desktop in Enlightenment è composto da componenti come un gestore di file, un insieme di widget, una barra di avvio delle applicazioni e configuratori grafici. I configuratori grafici forniscono sia strumenti di configurazione di alto livello (modifica del tema, impostazioni desktop virtuali, gestione dei font, risoluzione dello schermo, layout della tastiera, localizzazione, ecc.) sia opzioni per il tuning a basso livello (ad esempio, è possibile configurare le impostazioni di caching, accelerazione grafica, consumo energetico, modificare la logica del gestore delle finestre).
Per ampliare la funzionalità si suggerisce di utilizzare moduli (widget), e per rielaborare l'aspetto — temi grafici. Sono disponibili moduli per visualizzare sul desktop un calendario pianificatore, le previsioni meteo, dati di monitoraggio, un regolatore del volume, un widget per valutare la carica della batteria. I componenti di Enlightenment non sono rigidamente vincolati tra loro e possono essere utilizzati in altri progetti o per creare ambienti specializzati, come shell per dispositivi mobili.
Le dipendenze obbligatorie includono EFL, libexif e libpam (solo su Linux). Tra le dipendenze raccomandate, necessarie per ottenere funzionalità complete: connman per la configurazione della rete; bluez5 per il Bluetooth; bc per la calcolatrice integrata; pulseaudio per la gestione delle apparecchiature audio; acpid per la gestione di vari eventi hardware; packagekit per il monitoraggio degli aggiornamenti di sistema; udisks2 per il montaggio di dischi esterni; ddcutil per la gestione della retroilluminazione dello schermo; gdb per il tracciamento dei crash.

Le novità più rilevanti:
- È stata aggiunta la supporto per il mixaggio audio utilizzando server PipeWire (la possibilità di lavorare con PulseAudio è stata mantenuta).
- È stata aggiunta la supporto iniziale per la piattaforma NetBSD.
- È stato aggiunto un modulo NetworkManager per configurare le connessioni di rete tramite Wi-Fi, Ethernet, Bluetooth e VPN. È stata implementata l'auto-detect dei configuratori di rete NetworkManager e ConnMan. I dialoghi per visualizzare l'elenco delle connessioni e configurare il Wi-Fi sono stati riprogettati.
- Sono stati realizzati indicatori di traffico, modalità di protezione Wi-Fi e livelli di segnale, oltre alla possibilità di visualizzare i dettagli della connessione di rete.
- È stata aggiunta la supporto per l'importazione delle impostazioni VPN e per la richiesta di credenziali per l'autenticazione. È stata migliorata la supporto per le connessioni tramite portali captive.
- È stato preparato un modulo per gestire il clipboard, con opzioni per salvare la cronologia delle operazioni e rimuovere singoli elementi dalla storia. È stato migliorato il monitoraggio delle modifiche nel contenuto degli appunti e delle operazioni di selezione del testo.
- Aggiunta la possibilità di limitare il livello massimo di carica della batteria per prolungarne la durata.
- Aggiunto supporto per i profili di consumo energetico della CPU forniti tramite ACPI.
- Ridotta l'intensità delle operazioni di polling dello stato quando lo schermo è spento.
- Negli ambienti basati su X11 è stata fornita la possibilità di impostare ritardi e frequenza di attivazione dei tasti quando si tiene premuto un tasto sulla tastiera.
- Aggiunto l'effetto visivo 'Roll Up' per una chiusura fluida delle finestre.
- Rimossa la supporto per la creazione di profili separati per diversi desktop e schermi.
- Migliorata la performance dell'interfaccia di switching tra le finestre.
- Ampliate le capacità di gestione dell'adattatore Bluetooth.
Contemporaneamente, il progetto Enlightenment ha pubblicato un insieme di librerie EFL 1.29 (Enlightenment Foundation Library) che consentono di creare interfacce grafiche visivamente attraenti, compatte, a basso consumo di risorse e ad alte prestazioni. Sebbene inizialmente sviluppate come base per l'ambiente Enlightenment, i componenti di EFL vengono spesso utilizzati per costruire interfacce per elettronica di consumo e dispositivi mobili. Ad esempio, EFL è parte integrante della piattaforma mobile Tizen, utilizzata in elettrodomestici Electrolux, prodotti Samsung, ProFUSION, Free.fr e Calaos.
Composizione di EFL:
- Eina — libreria con l'implementazione di tipi di dati (array, hash, lista, albero) e strumenti ausiliari (gestione dei log, valutazione delle prestazioni, conversione di formati, ecc.).
- Eet — libreria per la registrazione di un insieme arbitrario di blocchi di dati in un file per una successiva lettura rapida in ordine casuale.
- Evas — sistema di rendering per organizzare l'output a schermo. Evas gestisce il contenuto dello schermo come una scena con oggetti, il cui stato può essere tracciato. Su questa scena è possibile effettuare operazioni come ridimensionamento, rotazione e trasformazioni 3D. Questo approccio, astratto dalla disposizione degli elementi visivi, consente di sviluppare l'interfaccia utente dal punto di vista del designer, e non del programmatore (nel codice è sufficiente definire solo la logica senza preoccuparsi del disegno e dell'output). Evas astratte anche il metodo di output, consentendo di utilizzare lo stesso codice in combinazione con il rendering software e hardware accelerato.
- Ecore — libreria per la gestione del ciclo di elaborazione degli eventi, che offre un insieme di moduli per semplificare le attività correlate alla gestione degli eventi, come l'interazione con Evas, i thread, le connessioni di rete, ecc.
- Embryo è un interprete incorporato del linguaggio Pawn (precedentemente noto come Small).
- Edje è una libreria grafica che separa l'aspetto dal codice (l'aspetto è definito tramite un modello caricato da file). Edje occupa una nicchia tra HTML+CSS e SVG. Con questa libreria è possibile formare un'interfaccia utente dotata di effetti visivi animati e che supporta la personalizzazione dinamica (l'aspetto può essere completamente cambiato semplicemente cambiando il modello EDJ senza modificare il codice, mentre, a differenza dei temi visivi, l'ordine degli elementi può essere modificato a piacere).
- Efreet — libreria che consente di utilizzare nelle applicazioni le specifiche di Freedesktop.org per la gestione delle icone, dei file Desktop e dei menu.
- Eeze — libreria per organizzare l'interazione con dispositivi esterni tramite udev, HAL e altri meccanismi.
- Expedite — strumento per la misurazione delle prestazioni, che può testare diversi motori Evas, come X11, XRender, OpenGL, SDL e DirectFB.
- Evil — implementazione di un livello di compatibilità per la lavorazione su piattaforma Windows.
- Eio — un'interfaccia astratta per l'accesso al file system e l'implementazione di input/output asincrono.
- Emotion — una libreria per l'integrazione di gestori audio e video nelle applicazioni. La riproduzione video può avvenire utilizzando Gstreamer, Xine o altri plugin esterni (ad esempio, VLC), con il video visualizzato come oggetto standard in Evas.
- Ethumb — una libreria per la creazione di miniature di immagini che soddisfano gli standard freedesktop.org. Ethumb è implementato come servizio dbus e una libreria client che interagisce con questo servizio.
- Elementary — un insieme di widget con implementazioni pronte di vari elementi grafici (da pulsanti e controlli a un calendario e un modulo di editing di testo).
- Eldbus — un'estensione di DBus.
- Ephysics — fornisce strumenti per utilizzare il motore di simulazione fisica Bullet nelle applicazioni basate su EFL. Ephysics assicura il collegamento di Bullet con le librerie Ecore ed Evas.
- Ecore Audio — API per lavorare con il suono.
Nella nuova versione di EFL è stato utilizzato lo strumento Meson 0.60, migliorato il supporto per i sistemi BSD e Windows, dichiarato obsoleto il motore basato sull'API DirectDraw, aumentata l'efficienza della caching, ampliate le funzionalità per la visualizzazione del testo e le operazioni con i caratteri, aggiunte ottimizzazioni basate su istruzioni AVX2, ottimizzato il rendering della grafica vettoriale, aggiunto un backend per PipeWire, implementato il supporto per l'uso dei menu di sistema in macOS, realizzata la possibilità di ordinare gli elementi dei menu delle applicazioni tenendo conto della localizzazione, migliorato il supporto per Wayland, implementato una nuova API per l'uscita audio, aggiunto un nuovo renderer basato su OpenGL con supporto per gradienti e compositing.
Fonte: opennet.ru
