web-dev-qa-db-fra.com

Quelle est la bonne façon de développer des thèmes pour Ubuntu?

J'ai bifurqué le thème Ambiance pour créer le mien que je maintiens. Je me demande quelle est la meilleure façon de développer des thèmes Ubuntu.

Ma solution actuelle est:

  1. Ayez le répertoire de thème dans ~/Documents/foo
  2. Je fais des modifications dans les fichiers CSS.
  3. Sudo rm -rf /usr/share/themes/foo && cp -r ~/Documents/foo /usr/share/themes/
  4. Sélectionnez Ambiance, puis Foo via Unity Tweak Tool.

Il existe probablement une meilleure façon de procéder.

Quelle est la voie recommandée? Je me demande comment les développeurs d'Ambiance le font.

4
Ionică Bizău

Pour automatiser ce processus, vous pouvez utiliser un lien symbolique .... supprimez le répertoire foo et créez le lien symbolique vers celui-ci.

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

De cette façon, la seule chose que vous avez à faire est l'étape 4, car vous travaillez toujours sur la version la plus récente. Avec cela, les autorisations doivent être correctes et vous pouvez également le pousser sur votre compte. Si quelque chose n'est pas clair, il suffit d'écrire un commentaire et je l'expliquerai davantage. Je n'ai pas de source officielle, c'est juste la façon dont je le ferais ... et peut-être la raison pour laquelle vous ne trouvez rien en ligne à ce sujet. Lorsque cela est configuré, vous pouvez créer un processus de surveillance des modifications de fichiers qui exécute le point 4 Inotify .

MODIFIER le rechargement automatique du thème de travail: cela rechargera tous les paramètres de votre thème

Tout d'abord, vous avez besoin de packages pour vérifier les changements de disque et l'outil Unity-Tweak

Sudo apt-get install inotify-tools unity-Tweak-tool

Supprimez votre dossier de thème existant, n'oubliez pas que pour tous mes tests, j'ai pris un thème WinXP comme test.

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

Liez votre dossier de thèmes github

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

Pour des raisons de sécurité, créez une copie de votre centre logiciel

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

Créez un fichier avec ce contenu dans votre dossier de départ comme je l'avais dans /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

Lorsque vous avez fait cela, réglez-le sur chmod 755

chmod 755 /home/snapo/autothemechange.sh

Rappelez-vous, le script affichera de nombreuses erreurs, car je rechargerai la plupart des moteurs de thème ... cela signifie que si vous utilisez gtk3, tous les autres donnent une erreur, si vous utilisez l'unité de la même manière pour les autres ... veuillez les ignorer.

Il y a 3 variables que vous devez modifier avant de l'exécuter la première fois, la description de chaque variable se trouve à droite de la variable.

SI vous voulez que le script démarre automatiquement lorsque vous vous connectez (ce que je ne recommande pas pour inotify), vous pouvez faire ce qui suit:

Système> Préférences> Applications de démarrage:

bash /home/snapo/autothemeupdate.sh

je recommande de créer un lien sur le bureau, donc pendant que vous commencez à développer, double-cliquez sur le lien.

2
snapo