Qual é o caminho certo para desenvolver temas para o Ubuntu?

4

Eu bifurquei o tema Ambiance para criar o meu próprio, que eu mantenho. Eu me pergunto qual é a melhor maneira de desenvolver temas do Ubuntu.

Minha solução atual é:

  1. Ter o diretório do tema em ~/Documents/foo
  2. Eu faço edições nos arquivos CSS.
  3. sudo rm -rf /usr/share/themes/foo && cp -r ~/Documents/foo /usr/share/themes/
  4. Selecione Ambiance e depois Foo via Unity Tweak Tool.

O mais provável é que haja uma maneira melhor de fazer isso.

Qual é o caminho recomendado? Gostaria de saber como os desenvolvedores do Ambiance fazem isso.

    
por Ionică Bizău 07.03.2015 / 19:11

1 resposta

2

Para apenas automatizar esse processo, você poderia usar um symlink .... remova o diretório foo e crie o link simbólico para ele.

ln -s -T /home/youruser/Documents/foo /usr/share/themes/foo

Desta forma, a única coisa que você precisa fazer é a etapa 4, porque você trabalha sempre na versão mais recente. Com isso, as permissões devem estar certas e você também pode git push-lo para sua conta. Se algo não estiver claro, escreva um comentário e eu explicarei mais. Eu não tenho uma fonte oficial, é assim que eu faria ... e talvez a razão pela qual você não pode encontrar nada online sobre isso. Quando isso é configurado, você pode criar um processo de observação nas alterações de arquivo que executam o ponto 4 Inotify .

EDIT Atualizar automaticamente o tema de trabalho: Isso recarregará todas as configurações do seu tema

Primeiro de tudo você precisa de alguns pacotes para verificar se há alterações de disco e a ferramenta de ajuste de unidade

sudo apt-get install inotify-tools unity-tweak-tool

Remova sua pasta de temas existente, lembre-se que, para todos os meus testes, recebi um tema do WinXP como teste.

sudo mv /usr/share/themes/WinXP/ /usr/share/themes/WinXP-backup/

Vincule sua pasta de temas do github

sudo ln -s -T /home/snapo/Downloads/WinXP/ /usr/share/themes/WinXP/

Apenas por motivos de segurança, crie uma cópia do seu centro de software

sudo cp -a /usr/share/software-center /usr/share/software-center-backup

Crie um arquivo com este conteúdo em sua pasta pessoal, como eu fiz em /home/snapo/autothemechange.sh

#! /bin/bash
##############################################################################################
DIRECTORY_TO_OBSERVE="/usr/share/themes/WinXP/"     ###### might want to change this #########
MYTHEMENAME="WinXP"                                 ###### your theme directory name #########
LOGFILE="/home/snapo/log-theme-change.log"          ###### Logfile to see when change happen #
##############################################################################################

function detect_theme_change {
  inotifywait -r \
    -e modify,move,create,delete \
    $DIRECTORY_TO_OBSERVE
}
while detect_theme_change; do
  now="$(date)"
  echo "Theme has been changed $now" >> $LOGFILE ;
  /usr/bin/gtk-update-icon-cache
  /usr/bin/gtk-update-icon-cache-3.0
  /usr/bin/xdg-user-dirs-gtk-update

  # reset GTK COLOR SCHEME (Unity, GNOME3, Cinnamon, MATE, GNOME2)
  gsettings set org.gnome.desktop.interface gtk-color-scheme ""
  # mateconftool-2 --type=string --set /desktop/mate/interface/gtk_color_scheme ""
  gconftool-2 --type=string --set /desktop/gnome/interface/gtk_color_scheme ""
  gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.loadTheme();' ;

    # change gtk theme (Unity, GNOME3, Cinnamon, MATE, GNOME2)
  gsettings set org.gnome.desktop.interface gtk-theme "$MYTHEMENAME"
  # mateconftool-2 --type=string --set /desktop/mate/interface/gtk_theme "$MYTHEMENAME"
  gconftool-2 --type=string --set /desktop/gnome/interface/gtk_theme "$MYTHEMENAME"

  # reset / change window theme (Unity, GNOME3, Cinnamon, MATE, GNOME2)
  gsettings set org.gnome.desktop.wm.preferences theme "$MYTHEMENAME"
  gconftool --type=string --set /desktop/cinnamon/windows/theme "$MYTHEMENAME"
  gconftool-2 --type=string --set /apps/metacity/general/theme "$MYTHEMENAME"
  # mateconftool-2 --type=string --set /apps/marco/general/theme "$MYTHEMENAME"

  # change shell theme
  gsettings set org.gnome.shell.extensions.user-theme name "$MYTHEMENAME"
  gsettings set org.cinnamon.theme name "$MYTHEMENAME"

done

Quando você tiver feito isso, configure-o para chmod 755

chmod 755 /home/snapo/autothemechange.sh

Lembre-se, o script irá colocar muitos erros, porque eu vou recarregar a maioria dos mecanismos de tema ... isso significa que se você usar gtk3 todos os outros dão um erro, se você usar a unidade igual aos outros ... por favor ignorá-los.

Existem 3 variáveis que você precisa editar antes de executá-lo na primeira vez. A descrição de cada variável está no lado direito da variável.

Se você quiser que o script seja iniciado automaticamente quando você fizer login (o que não recomendo para inotify), você poderá fazer o seguinte:

Sistema > Preferências > Aplicações de inicialização:

bash /home/snapo/autothemeupdate.sh

Eu recomendo criar um link na área de trabalho, então, enquanto você começa a desenvolver, você clica duas vezes no link.

    
por snapo 25.03.2015 / 15:02