O que há de novo para desenvolvedores, administradores de sistemas e distribuidores

O GNOME 3.10 apresenta vários novos recursos e aperfeiçoamentos para aqueles que trabalham com tecnologias do GNOME.

Wayland

No GNOME 3.10, é possível executar uma sessão do GNOME, bem como aplicativos do GNOME, usando Wayland. O suporte é experimental e é destinado apenas a fins de teste. O gnome-shell ou aplicativos em execução sobre Wayland podem se tornar instáveis e travarem.

Para executar o gnome-shell sobre o Wayland, execute o seguinte comando no terminal:

gnome-session --session=gnome-wayland

Também é possível executar individualmente aplicativos sobre Wayland ao especificar o comando GDK_BACKEND. Execute o seguinte comando, substituindo o nome-do-aplicativo pelo nome do executável do aplicativo:

GDK_BACKEND=wayland nome-do-aplicativo

Se a execução de um aplicativo falhar sobre o Wayland, ele tentará retornar ao X11.

Maiores detalhes do GNOME sobre Wayland podem ser encontrados na Página wiki do GNOME Wayland.

Novos componentes do GTK+

GTK+ 3.10 apresenta uma coleção de novos componentes de interface. Estes oferecem recursos adicionais, como funcionalidade de adicionamento de transições animadas, bem como uma excelente flexibilidade. Em alguns casos, eles fornecem alternativas fáceis de se usar em relação aos componentes existentes. Os novos componentes foram criados sob medida com os projetos de aplicativos do GNOME 3 mais recentes.

  • GtkStack: um contêiner que mostra um filho por vez. As transições entre as páginas podem ser animadas como slides ou efeito de esmaecimento.

  • GtkStackSwitcher: um conjunto de botões vinculados que podem ser usados para controlar qual página é exibida em uma pilha. Foram projetados para serem usados com GtkStack.

  • GtkRevealer: um contêiner que anima a transição do filho de invisível para visível.

  • GtkListBox: um contêiner vertical. As linhas podem ser ordenadas e filtradas dinamicamente e é possível realizar navegação usando o ponteiro do mouse ou pelo teclado. O GtkListBox oferece uma alternativa ao GtkTreeView. As linhas podem conter controles e disposições complexas.

  • GtkHeaderBar: um contêiner horizontal que deveria ser colocado no topo de uma janela. GtkHeaderBars atua tando na função de barra de título de janela como em uma barra de ferramentas. O conteúdo dentro de uma HeaderBar pode ser colocado no início, no final ou pode ser centralizado.

  • GtkSearchBar: um contêiner que é projetado para conter controles de pesquisa. GtkSearchBars são geralmente localizados abaixo de uma GtkHeaderBar, e podem ser escondidos e revelados conforme a necessidade (demanda).

Modelos de componentes compostos

Os modelos de componentes compostos são um novo recurso do GTK+ 3.10. Esta nova característica permite que os widgets compostos sejam definidos usando XML, o que evita a necessidade de construí-los manualmente. O GTK+ já está aproveitando a vantagem deste recurso para definir seus próprios componentes compostos, como um GtkVolumeButton e GtkFileChooserDefault. Os autores de aplicativos poderão usar a mesma característica para fazer seus próprios componentes, que podem ser feitos diretamente através de XML ou com o contrutor de interfaces Glade.

Tristan Van Berkom escreveu um tópico detalhado em seu blog sobre este novo recurso, que inclui um tutorial e um exemplo funcional que você pode tentar usar.

Alinhamento de linha de base no GTK+

O GTK+ 3.10 apresenta alinhamento de linha de base para textos. Isto permite que os rótulos de texto sejam alinhados apropriadamente na vertical em relação aos contêineres, que possui a vantagem adicional de garantir alinhamento consistente de texto.

Alinhamento de linha de base está disponível a uma variedade de componentes comuns. Os desenvolvedores que desejam usá-lo são obrigados a definirem o alinhamento vertical para o compoente de texto usando GTK_ALIGNMENT_BASELINE (isto é feito automaticamente quando são usadas funções auxiliadoras, em inglês helper functions, como new_from_label()).

GLib

O GApplication ganhou um grande número de novos recursos para a versão do GNOME 3.10:

  • Foi adicionado o suporte a interface do org.freedesktop.Application (que foi especificado pela reunião do freedesktop.org em Abril de 2013). Isto fornece um modo padrão para iniciar um aplicativo. Este também permite que um arquivo seja aberto por um aplicativo ou uma ação a serem ativados. Mais informações podem ser encontradas na Especificação do Freedesktop.

  • Agora os arquivos .desktop podem ser especificados se um aplicativo deve ser inicializado através de ativação D-Bus. Detalhes sobre como fazer isto podem ser encontrados nesta wiki.

  • O suporte a ações em arquivos .desktop foi acrescentado pelo GDesktopAppInfo, usando g_desktop_app_info_list_actions() e g_desktop_app_info_launch_action(). A especificação do Freedesktop também possui detalhes sobre isto.

  • Agora o GApplication permite aos aplicativos sinalizarem seus estados de disponibilidade a um shell de área de trabalho, tal como em uma operação de longa execução ou estado de carregamento.

A GLib possui vários outros aprimoramentos para a versão 3.10:

  • Agora, os testes podem gerar saída TAP, o que permite integração mais fácil com outros agentes de teste. Para executar seus testes neste modo especifique o parâmetro --tap na linha de comando.

  • Agora há certo suporte os testes instalados.

  • GPropertyAction é um novo tipo de GAction que representa uma propriedade de um objeto e permite que o valor seja alterado ao ser ativada. Isto facilita muito a integração de propriedades dentro dos GMenus.

Localização geográfica

Os novos recursos de localização geográfica no GNOME 3.10 permitem que aplicativos acessem informações em locais e identifiquem o local atual do sistema. Para fazer isto, dois novos componentes foram apresentados:

  • geocode-glib: é uma nova biblioteca para geocodificação (reversa). Ela permite que você localize informações sobre lugares de acordo com os termos de pesquisa ou coordenadas. Ela depende do serviço Nominatim do OpenStreetMap.

  • GeoClue2: é uma implementação GeoClue reescrita, que foi projetada para ser simples e discreta em relação à privacidade. Ela permite que sua localidade atual seja identificada.