Posso aplicar um tema GTK3 diferente do principal para um aplicativo individual?

42

Por exemplo, posso manter o Ambiance como tema principal, mas atribuir um tema elementar ao aplicativo elementar?

    
por Rossi 11.11.2011 / 00:45

5 respostas

22

Você pode usar a variável de ambiente GTK GTK_THEME=elementary para iniciar um aplicativo com o tema elementar. Por exemplo, executar GTK_THEME=elementary pantheon-files iniciará o aplicativo Arquivos elementares usando o tema GTK elementar.

Para que isso seja aplicado toda vez que você iniciar um aplicativo específico, sua melhor opção provavelmente criará um arquivo .desktop personalizado (iniciador).

Crie um arquivo .desktop personalizado

  1. Abra o seu navegador de arquivos
  2. Navegue até /usr/share/applications/
  3. Copie o iniciador (destaque e Ctrl + C) para o aplicativo que você deseja iniciar com o tema elementar
  4. Navegue até ~/.local/share/applications/ e cole o ativador (Ctrl + V)
  5. Clique com o botão direito do mouse e abra o iniciador com um editor de texto
  6. Modifique a linha que começa com Exec= para incluir Exec=env GTK_THEME=elementary e, em seguida, o conteúdo existente anterior da linha. (Então Exec=pantheon-files se tornaria Exec=env GTK_THEME=elementary pantheon-files )
  7. Salve e feche o arquivo

Na próxima vez que você iniciar o aplicativo a partir do Unity (ou do inicializador de aplicativos escolhido), ele usará o tema elementar.

Bônus: faça funcionar ao usar a linha de comando

Você também pode querer que o aplicativo seja iniciado com o tema elementar ao iniciá-lo na linha de comando. Para fazer isso:

  1. Abra seu aplicativo do terminal
  2. Digite alias pantheon-files="GTK_THEME=elementary pantheon-files" (substituindo pantheon-files pelo aplicativo desejado)
  3. Pressione Enter

Advertências:

  1. Isso não alterará o tema do seu gerenciador de janelas para o tema elementar.
  2. Isso (por design) será aplicado somente à sua conta, não ao root ou a qualquer outra pessoa na máquina.
  3. Os nomes dos temas são cAsE-sEnsItiVe e devem ser combinados com o nome da pasta do tema.

Fontes:

  1. Eu sou um colaborador elementar;)
  2. Manual de referência do GTK + 3: executando aplicativos do GTK +
  3. Defina a variável no arquivo .desktop
por Cassidy James 19.06.2014 / 22:45
9

A questão ainda é válida e encontrei uma maneira:

  • crie uma pasta path/to/MY_FOLDER
  • crie uma pasta /share/themes/ dentro dela (ou seja, path/to/MY_FOLDER/share/themes ).
  • coloque qualquer tema GTK3 dentro do último
  • renomeie o tema para o nome do tema ATUAL ATUAL.

    Por fim, esse comando fará um aplicativo usar o tema renomeado em vez do atual:

GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON

(O caminho após GTK_DATA_PREFIX= tem que ser ( e somente isso ) para a pasta que contém /share/themes/RENAMED_THEME . É por isso que NÃO path/to/MY_FOLDER/share/themes/RENAMED_THEME , mas apenas path/to/MY_FOLDER .)

Para ter isso dentro de um lançador, substitua de acordo:

Exec=sh -c 'GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATION'
    
por Tsu Jan 28.02.2014 / 11:35
7

É certamente possível, não tenho muita experiência de tema, mas quando você navega para o diretório /usr/share/themes/*Theme Name*/gtk-3.0/apps/ , você encontrará .css arquivos, nomeados com aplicativos que eles segmentam para o tema, então sim, você pode criar um aplicativo Temas específicos.

Observe que a maneira como você mencionou o tema dos aplicativos pode exigir algum trabalho a ser feito (como ter Ambiance e Elementary funcionando simultaneamente, pois cada tema tem um arquivo base sobre o qual o estilo específico do aplicativo é feito gtkrc em Gtk 2.0 enquanto um arquivo gtk.css no caso de Gtk3.0 ).

E esse arquivo de tema básico contém regras de estilo que visam especificamente ao tema determinado, portanto, você não pode criar aparência e comportamento elementar do arquivo de tema básico do Ambiance sem fazer alterações pesadas e, mesmo se fizer isso, perderá o visual Ambiance em si.

Além disso, no GNOME, é possível ter apenas um tema aplicado por vez, por exemplo, se você usou a janela Aparência no Ubuntu 12.04, você sabe que pode selecionar qualquer tema da lista suspensa, caso tenha usado gnome-tweak-tool , que você pode definir temas diferentes, para Gtk, quadros de janelas e ícones, mas ainda assim, ele não permite direcionar aplicativos específicos para o tema, então, como eu disse anteriormente, você pode definir temas totalmente diferentes para diferentes aplicativos, se você trabalhar habilmente com o arquivo de tema base, a partir de agora, nenhum aplicativo de terceiros pode fazer isso sozinho.

Uma maneira de fazer isso sozinho é deixar o arquivo de tema básico ( gtk.css ) ter apenas regras essenciais que são neutras para qualquer tema, sejam escuras ou claras. E ter o design do tema real escrito em arquivos específicos do aplicativo que residem no diretório mencionado acima, ou seja, para estilizar o Nautilus, você pode gravar todas as propriedades necessárias no arquivo nautilus.css . O mesmo com todos os aplicativos que você deseja segmentar. Obviamente, fazer isso requer alguma experiência de tematização Gtk decente.

Você pode consultar este para criar seu próprio tema Usando o modelo, também há uma documentação decente no tema Gtk +.

    
por Kushal 27.05.2012 / 12:10
4

Sim, a maneira mais simples é apontar o aplicativo para o caminho necessário onde seu arquivo rc reside, no comando que executa seu aplicativo:

GTK2_RC_FILES=/usr/share/themes/Redmond/gtk-2.0/gtkrc inkscape

Isso em 12.04 para o inkscape (que ainda é o Gnome2 btw) produz isso:

Veja mais informações sobre o tema Gtk2 em execução aqui .

    
por Martin Owens -doctormo- 23.04.2012 / 16:21
0

Sim, você pode, na verdade eu pesquisei e recebi algumas respostas:

  1. Procure o executável exato para o programa que você deseja alterar o tema. Por exemplo, se você quiser para o ooffice, digite which ooffice no terminal.
  2. Procure a pasta bin na qual todos os aplicativos colocam seus executáveis binários. Digite echo $PATH no terminal e você irá ge o caminho. Eu recomendo que você crie uma pasta bin no seu diretório home digitando mkdir ~/bin
  3. Digite gedit ~/.bashrc para abrir seu arquivo bash rc.
  4. Vá até o final deste arquivo e adicione essa linha export PATH=~/bin:${PATH}

Agora, criaremos um script que executará seu programa com um tema personalizado:

  1. Crie o arquivo de script do aplicativo digitando: gedit ~/bin/ooffice
  2. Digite estas linhas no arquivo aberto:

    #!/bin/bash
    env GTK2_RC_FILES=/usr/share/themes/SlicknessX/gtk-2.0/gtkrc /usr/bin/ooffice "$@"
    
  3. Altere o modo do arquivo para executável digitando: chmod +x ~/bin/ooffice .

Espero que isso ajude, você tem que lembrar apenas uma coisa, o formato do script como mostrado abaixo:

#!/bin/bash
env GTK2_RC_FILES=PATH_TO_GTKRC PATH_TO_EXECUTABLE "$@"
    
por Ravi Raj 27.05.2012 / 11:37