Ajustando temas mais recentes do GTK3

3

O tema Numix está disponível instalando shimmer-themes do centro de software. Ele é instalado por padrão no Xubuntu.

Em 14.04, consegui modificar alguns aspectos do tema editando diretamente arquivos como usr/share/themes/Numix/gtk-3.0/gtk.css ou usr/share/themes/Numix/gtk-3.0/gtk-widgets.css .

Mesmo em 15.10, a solução descrita em Como definir um cor personalizada de realce de texto pode ser facilmente aplicada.

Mas em 16.04, a mesma abordagem não parece possível. Eu olhei para o arquivo README.md na página do desenvolvedor aqui: link . Algumas citações de lá:

  

Se você quiser hackear o tema, certifique-se de ter o comando inotifywait disponível, que é usado para assistir e construir automaticamente os arquivos.

e

  

Se você alterar algum recurso, precisará gerar novamente os arquivos gtk.gresource.xml e gtk.gresource. Você pode usar grrr para fazer isso facilmente.

Então, como um usuário normal e médio pode alterar qualquer aspecto do tema Numix disponível para 16.04? Alguém familiarizado com os temas do gtk3 que usam scss em vez de apenas css explique o procedimento?

    
por DK Bose 01.05.2016 / 15:47

1 resposta

3

Depois de ler um pouco sobre o assunto e reler o readme.md no projeto numix Percebi que eles realmente explicam como manualmente instalar e fazer alterações em seu tema.
A questão é que as instruções pressupõem muitos conhecimentos prévios - basicamente, você é um desenvolvedor C que conhece CSS.
Eu estou supondo que você sabe que o código-fonte para linguagens como C é compilado em executáveis binários e / ou arquivos de biblioteca, e que o SASS / SCSS é um pré-compilador (um tipo de linguagem "superior") compilado para CSS código-fonte que é interpretado - e não compilado em uma forma binária. Pelo que posso dizer, a visão geral é assim:

                          +--------------------------------------------------------------+
 +------+                 |  +---------------------+                                     |
 |      |   you need to   |  | CSS files           |         Numix theme                 |
 |SASS  |   "compile"     |  | ordinary text (code)|         i.e. files in               |
 |files |   SASS to CSS   |  |                     |         /usr/share/themes/Numix Daily/gtk-3.0
 |    +------------------------->             <------------------------------------------+----------+
 |      |                 |  +---------------------|                                     |          |
 |      |                 |   +------------------------+                                 |          |
 +------+                 |   | gtk.resource           |                                 |          |
 If you change this       |   | (compiled binary    <-----+                              |          |
 you need to recompile    |   | file)                  |  |                              |          |
 (update the CSS          |   +------------------------+  |                              |          |
                          +--------------------------------------------------------------+          |
 files)                      +----------------------+     |                                         |
                             | GTK library          |     |  +---------------------------+          |
+--------------------+       | (binary library)     |     |  |  GTK and C developer tools|          |
| Application        |       |                      |     |  |  used to recompile        |          |
| e.g. Gnome terminal|       | Configured to use    |     |  |  gtk.gresource            |          |
| Nautilus etc       |       | Numix Theme          |     |  |                           |          |
| that uses GTK      |       |                      |     +----+                         |          |
| library            |       |                      |        |                           |          |
| (binary            |       |                      |        |                           |          |
| executable)        |       |                      |        +---------------------------+          |
+--------------------+       |                      |                                               |
                             |Makes call to         +                                               |
                             |gtk_css_provider_load_from_file() +----------------------------------->
                             |
                             +----------------------+

Assim, o tema Numix e eu acho que muitos / todos os temas do GTK-3.0 são compostos por recursos binários e código CSS que é analisado pela chamada de função gtk_css_provider_load_from_file() , que parece ser uma nova adição ao GTK-3.0. O projeto numix sugere que você só precisa recompilar o gtk-gresource se você alterar algum ativo. Então eu não me incomodaria com isso - a menos que você realmente precise. Se você realmente precisa, aqui, é uma introdução à construção de um recurso binário GTK

Recursos úteis

  • GtkCssProvider - este é responsável por analisar o CSS - parece ser realmente a base para tornar as aplicações do GTK capazes para ler CSS. particularmente como o GTK lerá o código CSS para um tema na inicialização :
  

Um aplicativo pode fazer com que o GTK + analise uma folha de estilo CSS específica chamando gtk_css_provider_load_from_file () e adicionando o provedor com gtk_style_context_add_provider () ou gtk_style_context_add_provider_for_screen ().
  Além disso, certos arquivos serão lidos quando o GTK + for inicializado. Primeiro, o arquivo $ XDG_CONFIG_HOME / gtk-3.0 / gtk.css é carregado se existir.
  Então, o GTK + tenta carregar $ HOME / .themes / theme-name / gtk-3.0 / gtk.css, voltando ao datadir / share / themes / nome-do-tema / gtk-3.0 / gtk.css, onde nome-do-tema é o nome do tema atual (consulte a configuração "gtk-theme-name") e datadir é o prefixo configurado quando o GTK + foi compilado, a menos que seja substituído pela variável de ambiente GTK_DATA_PREFIX.

por the_velour_fog 14.07.2016 / 08:30

Tags