Vinicius Depizzol’s Blog

Pensamentos sobre o GNOME 3, Parte 1

Quarta-feira, 21 de Janeiro de 2009 · 8 Comentários

Pouca coisa mudou nos últimos anos quando se fala em temas para o GNOME. Na verdade, a mesma base que se instalou a partir das versões 2.X é a igual desde o começo de 2002. Quanto a essa área, pelo menos, pode-se ver que o GTK+ tem pouca evolução.

Parte deste problema pode ter ocorrido por dois fatores:

O primeiro é a maneira como os temas funcionam no GTK+. Para criar um tema inovador, é preciso programar uma nova engine de tema. Isso demanda muito trabalho e cria um paradoxo. A menos, é claro, que o artista gráfico que deseja criar o tema saiba programar em linguagem de baixo nível. O processo não é tão simples quanto deveria ser. Não é como criar uma página de internet utilizando Folhas de Estilo em Cascata.

O segundo fator é a dificuldade de escalonamento do tema. O GTK+ foi inicialmente planejado para criar estruturas visuais totalmente uniformes. Por um lado, isso é ótimo: simplicidade, facilidade de uso e padronização.

Entretanto, a procura extrema por uma interface uniforme trouxe dois pontos, e não um só. O primeiro ponto é a padronização propriamente dita, a facilidade de uso. Uniformizar o sistema, deixando-o igual em todos os cantos torna-o visualmente organizado e faz com que o usuário não sinta estranhamento ao ver algo novo. Mesmo por que nada será diferente o suficiente para isso.

O segundo ponto é o oposto. Criar um sistema todo amarrado em uma roupagem única acaba deixando os desenvolvedores amarrados também. Nem sempre a formatação possível para a exibição de certo conteúdo vai ser a melhor formatação. E não estou querendo dizer que para se resolver isso basta usar skins, ou um tema para cada aplicativo e et cetera.

Não se trata de usar skins, como os programas proprietários adoram fazer. Trata-se de permitir ao software personalizar seus widgets. Sim, existe uma grande diferença entre esses dois casos. Por exemplo, veja neste screenshot uma comparação da barra lateral dos navegadores de arquivos do GNOME 2.25 e do Mac OS X:

Comparação entre a barra lateral do Finder, para Mac OS X e do Nautilus, para GNOME

Embora os dois passem a mesma informação com a exibição dos atalhos, no GNOME a mesma árvore de exibição é apenas mais um elemento igual a tantos outros, como pode ser vista em outros aplicativos exatamente da mesma maneira. Não há destaque nenhum para algo que é importante para a navegação.

E embora não haja nenhum problema grave com isso, é possível perceber que, ao ser posta ao lado da barra do Mac OS X, ela não possui a melhor formatação. Ela simplesmente possui a formatação possível.

É claro que é possível hoje criar com GTK+ algo estilizado como a barra do Mac. Mas é difícil. Difícil porque o GTK+ foi desenvolvido para ser extremamente uniforme na sua roupagem. E a necessidade de utilizar uma exibição flexível que atenda a necessidade de criar interfaces cada vez mais polidas e interessantes parece mostrar qual caminho o GTK+ e o GNOME estão querendo seguir.

Ainda em outubro, quando estava pesquisando algumas informações para a palestra que dei no 5º Fórum GNOME, encontrei um projeto muito interessante que procura tapar parte deste buraco. O gtk-css-engine, desenvolvido pelo Robert Staudinger, é um projeto que tem como objetivo permitir que temas de GTK+ sejam criados utilizando CSS.

Ao invés de manter o conceito atual envolvendo várias engines com definições de estilos e um arquivo gtkrc para pequenos detalhes, o gtk-css-engine é uma alternativa em desenvolvimento que coloca na mão do designer todas definições de estilo e possibilidades. Ou seja, ele tira a necessidade de programar novas engines para cada tema e cria uma engine única para todos os temas.

Isso não resolve tudo, logicamente, mas deixa claro que em breve será muito mais fácil transformar mockups em temas de verdade no GNOME. Além disso, a integração entre CSS e GTK+ parece dar uma breve resposta sobre como tornar possível a personalização dos widgets no futuro.

Categorias: Graphics Planet · gnome · gnulinuxbrasil

8 respostas Até agora ↓

  • Sérgio Luiz Araújo Silva // Quarta-feira, 21 de Janeiro de 2009 às 7:13 am | Responder

    Seu artigo vai direto para os meus favoritos! Muito bom!

  • Jonh Wendell // Quarta-feira, 21 de Janeiro de 2009 às 9:35 am | Responder

    Ansioso para ler a parte 2!

  • Bruno Boaventura // Quarta-feira, 21 de Janeiro de 2009 às 9:44 am | Responder

    Fala, grande Vinicius!
    Muito bom!!! Que a parte 2 venha logo! Merece uma versão em inglês para ir para o Planet GNOME.

    Um abração!!!

  • Rodolfo // Quarta-feira, 21 de Janeiro de 2009 às 11:01 am | Responder

    bacana o artigo mas pelo que me parece pouco ou quase nada foi feito se der uma analisada no roadmpap do 2.24 para o “GNOME 3″ em termos de revisão e um rewrite do código do GTK.
    E não vai ser dessa vez nem nesse release do Ubuntu 9 que veremos nada de novo no GNOME 3. Se ele vier.

    Falando nisso, como anda o projeto do pai do Ubuntu o senhor Shuttleworth que disse que o Ubuntu “será mais bonito que o windows ou o mac os x”?

    []s

  • Fred // Quarta-feira, 21 de Janeiro de 2009 às 12:32 pm | Responder

    Eu acho o tema do Mac Os X enjoativo. De certa forma ele é simples, e já esta sendo usando com pouquíssimas variações a alguns anos. Quanto ao tema do Ubuntu não espere nada para essa próxima versão. Eles ainda estão na fase de concepção, recolhendo as telas dos usuários do Ubuntu. O Gnome 3x, será a mesma coisa do Gnome 2x, com poucas novidades e mudanças radicais. Os desenvolvedores já disseram isso, ela vai evoluir naturalmente, e quando menos perceber estaremos na versão 3x.

  • Jorge Pereira // Quarta-feira, 21 de Janeiro de 2009 às 10:23 pm | Responder

    excelente o artigo, ta bom de liberar a parte dois logo!!! :P

  • Henrique // Quinta-feira, 29 de Janeiro de 2009 às 12:51 pm | Responder

    Passar a criar temas em CSS não vai resolver os problemas da Gtk. Criar temas em CSS será tão ou mais penoso do que temas desenvolvidos com a pixmap engine, onde você sai fazendo uma colagem de imagens para formar seus widgets.

    O real problema da Gtk são 2. O primeiro, é que parte do layout está espalhado na aplicação, e parte na engine/tema. Por exemplo, atributos como borda, espaçamento, até mesmo cores, são programados na aplicação (ou no arquivo glade). Isso faz com que medidas e posicionamento sejam fixos, independente do tema ou do tamanho de fonte usado, o que faz a aplicação parecer lixo dependendo do contexto (veja o Ubuntu e caso dos botões gigantes).

    Segundo, Gtk tem uma carência de widgets. Faltam widgets nativos para várias situações, o que leva cada desenvolvedor a criar o seu widget misturando os existentes. Isso leva a uma falta de consistência, que por sua vez força o tema a considerar sempre um denominador comum na hora de estilizar um widget. Por exemplo, eu não posso estilizar uma toolbar de determinada forma, porque algumas aplicações usando a toolbar em outro contexto, o que causa diversos quirks no tema.

    Eu já fiz muitos temas Gtk, e as limitações que encontrei foram essas. A questão da engine não é tão preocupante, a Qt também funciona assim e funciona bem. Confira os temas em http://hcalves.deviantart.com

    Abraço!

  • Henrique // Quinta-feira, 29 de Janeiro de 2009 às 3:50 pm | Responder

    PS: Essas imagens mesmo. No caso, a barra lateral do Nautilus não é um só widget coeso, mas sim vários widgets (GtkPanel, GtkTreeView, etc.). Em outros programas que também possuem barra lateral, elas são implementadas ainda de um outro modo (como no F-Spot, ou no gEdit). O uso de uma barra lateral é tão recorrente, que deveria ter um widget só para ele, que tornasse a apresentação coesa, e assim seria muito mais fácil aplicar um tema com estilos diferentes para essa sidebar. Mas não é o que acontece, como eu disse, pela carência de widgets já incluídos na Gtk.

Deixe um comentário