Após um ano de desenvolvimento, foi lançado o ambiente de usuário Enlightenment 0.27, que é baseado em um conjunto de bibliotecas EFL (Enlightenment Foundation Library) e widgets Elementary. A versão está disponível em código-fonte sem a publicação de builds prontas. A lista de alterações para a versão 0.27 não foi formada, estando disponível apenas uma listagem de commits, que inclui principalmente correções de bugs e melhorias menores nos widgets.
A área de trabalho no Enlightenment é composta por componentes como gerenciador de arquivos, conjunto de widgets, painel de lançamento de aplicativos e configuradores gráficos. Os configuradores gráficos oferecem tanto ferramentas de configuração de alto nível (alteração de tema, configuração de desktops virtuais, gerenciamento de fontes, resolução de tela, layout do teclado, localização e assim por diante), quanto opções para ajuste em nível mais baixo (por exemplo, é possível ajustar configurações de cache, aceleração gráfica, consumo de energia, alterar a lógica de funcionamento do gerenciador de janelas).
Para ampliar a funcionalidade, são oferecidos módulos (gadgets), e para modificar a aparência — temas de design. Estão disponíveis módulos para exibir no desktop um calendário-agenda, previsão do tempo, dados de monitoramento, controle de volume e um widget para avaliação da carga da bateria. Os componentes do Enlightenment não estão rigidamente interligados e podem ser utilizados em outros projetos ou para criar ambientes especializados, como shells para dispositivos móveis.
As dependências obrigatórias incluem EFL, libexif e libpam (apenas no Linux). Entre as dependências recomendadas, necessárias para alcançar funcionalidade plena, estão: connman para configuração de rede; bluez5 para operação com Bluetooth; bc para um calculador embutido; pulseaudio para gestão de dispositivos de áudio; acpid para processamento de diversos eventos de hardware; packagekit para monitoramento de atualizações do sistema; udisks2 para montagem de discos externos; ddcutil para controle da luz de fundo da tela; gdb para rastreamento de falhas.

Simultaneamente, o projeto Enlightenment lançou um conjunto de bibliotecas EFL 1.28 (Enlightenment Foundation Library), que permitem a criação de interfaces gráficas visualmente atraentes, caracterizadas por seu tamanho compacto, baixo consumo de recursos e alta performance. Apesar do desenvolvimento inicial como base para o ambiente Enlightenment, os componentes EFL são frequentemente usados para construir interfaces de eletrônicos de consumo e dispositivos móveis. Por exemplo, o EFL é parte integrante da plataforma móvel Tizen, sendo utilizado em eletrodomésticos da Electrolux, produtos da Samsung, ProFUSION, Free.fr e Calaos.
Composição do EFL:
- Eina — uma biblioteca com a implementação de tipos de dados (array, hash, lista, árvore) e ferramentas auxiliares (manipulação de logs, avaliação de desempenho, conversão de formatos, etc.).
- Eet — uma biblioteca para gravar um conjunto arbitrário de blocos de dados em um arquivo para leitura rápida posterior em ordem arbitrária.
- Evas — um sistema de renderização para organizar a saída na tela. Evas opera o conteúdo da tela como uma cena com objetos, cujo estado pode ser monitorado. Operações como escalonamento, rotação e transformações 3D podem ser realizadas sobre a cena. Essa abordagem, abstraída da disposição dos elementos da tela, permite desenvolver a interface do usuário do ponto de vista do designer, e não do programador (no código, é suficiente definir apenas a lógica e não se preocupar com a renderização e exibição na tela). Evas também abstrai o método de saída, permitindo usar o mesmo código em combinação com renderização acelerada por software e hardware.
- Ecore — uma biblioteca para organizar o ciclo de processamento de eventos, oferecendo um conjunto de módulos para simplificar tarefas relacionadas ao processamento de eventos, como trabalhar com Evas, threads, conexões de rede, etc.
- Embryo — uma biblioteca para escrever pequenos aplicativos compiláveis para dispositivos embarcados.
- Edje — uma biblioteca gráfica que separa a aparência do código (o design é definido na forma de um modelo carregado a partir de um arquivo). Edje ocupa uma posição intermediária entre HTML+CSS e SVG. Com esta biblioteca, é possível formar uma interface de usuário equipada com efeitos visuais animados e suporte a design dinâmico (a aparência pode ser completamente alterada simplesmente trocando o modelo EDJ e sem modificar o código, além disso, ao contrário de temas visuais, a disposição dos elementos pode ser alterada de forma arbitrária).
- Efreet — uma biblioteca que permite usar em aplicativos as especificações do Freedesktop.org para trabalhar com ícones, arquivos de desktop e menus.
- Eeze — uma biblioteca para organizar a interação com dispositivos externos através de udev, HAL e outros mecanismos.
- Expedite — um conjunto de ferramentas para medir o desempenho, que pode testar diferentes motores Evas, como X11, XRender, OpenGL, SDL e DirectFB.
- Evil — uma implementação de camada de compatibilidade para funcionamento na plataforma Windows.
- Eio — uma interface abstrata para acesso ao sistema de arquivos e implementação de entrada/saída assíncrona.
- Emotion — uma biblioteca para integrar manipuladores de reprodução de áudio e vídeo em aplicativos. A reprodução de vídeo pode ser realizada utilizando Gstreamer, Xine ou outros plugins externos (como VLC), com o vídeo sendo exibido como um objeto padrão no Evas.
- Ethumb — uma biblioteca para a criação de miniaturas de imagens de acordo com os padrões do freedesktop.org. Ethumb é implementado como um serviço dbus e uma biblioteca cliente que interage com este serviço.
- Elementary — um conjunto de widgets com implementações prontas de diversos elementos gráficos (desde botões e controles até calendário e módulo de edição de texto).
- Eldbus — uma camada sobre o DBus.
- Ephysics — fornece ferramentas para usar o motor de simulação de processos físicos Bullet em aplicativos baseados no EFL. Ephysics faz a conexão entre Bullet e as bibliotecas Ecore e Evas.
- Ecore Audio — API para manipulação de som.
Fonte: opennet.ru
