web-dev-qa-db-fra.com

Thème Force Mendeley Desktop GTK

Cela fait un moment que j'essaie de définir le thème GTK de l'interface utilisateur de bureau Mendeley, sans succès. La raison pour laquelle je veux faire cela est parce que j'utilise n thème sombre , et que Mendeley est illisible (police sombre sur un fond sombre) avec ce thème. Les deux sources d’information pertinentes que j’utilise sont ici et ici .

Ils disent tous les deux qu’appeler un exécutable comme

$ GTK_THEME=MyFancyTheme my_stubborn_app

devrait remplacer le thème GTK par défaut pour l'utilisateur actuel, et que des modifications permanentes de thème peuvent être intégrées dans le .../share/my_stubborn_app.desktop en modifiant la ligne EXEC:

Exec=env GTK_THEME=MyFancyTheme /path/to/my_stubborn_app %u

Aucune de ces méthodes ne fonctionne dans mon cas. Les particularités de l'interface utilisateur de bureau Mendeley sur Ubuntu (Trusty Tahr 14.04, Mendeley UI v1.14 dans mon cas) sont les suivantes:

  • Il s'agit d'un paquet autonome avec ses propres dossiers bin et share et lib. Il utilise Qt.
  • Le binaire réel est dans lib/mendeleydesktop/libexec/mendeleydesktop.x86_64 (pour Ubuntu 64 bits) mais ne peut pas être appelé directement car il nécessite des variables d'environnement définies par le python script bin/mendeleydesktop.
  • Le fichier mendeleydesktop.desktop (qui permet d’avoir une icône dans le lanceur Unity) est écrasé par bin/install-mendeley-link-handler.sh à chaque appel de bin/mendeleydesktop.
  • Ce fichier mendeleydesktop.desktop est créé/remplacé dans $HOME/.local/share/applications.

Jusqu'ici, j'ai modifié bin/install-mendeley-link-handler.sh afin que le fichier .desktop écrasé à chaque appel comprenne la ligne modifiée Exec=env GTK_THEME.... Cela ne semble pas fonctionner. Quelqu'un peut-il aider?

3
Sheljohn

J'ai finalement réussi à le faire, même si cela semble un peu maladroit. Dans ce qui suit:

  • $MENDELEY_FOLDER est le dossier Mendeley,
  • $CURRENT_GTK_THEME est le nom du thème GTK que vous utilisez actuellement.
  • $MENDELEY_GTK_THEME est le nom du thème que vous souhaitez utiliser avec Mendeley.

REMARQUE: pour obtenir le nom du thème que vous utilisez actuellement, tapez gsettings get org.gnome.desktop.interface gtk-theme dans un terminal. Un bon thème à utiliser avec Mendeley est Ambiance.

Créer un nouveau répertoire de thèmes

Nous allons essentiellement persuader Mendeley de penser que le dossier de thèmes GTK racine est ailleurs.

mkdir $MENDELEY_FOLDER/share/themes/
ln -s  /usr/share/themes/$MENDELEY_GTK_THEME  $MENDELEY_FOLDER/share/themes/$CURRENT_GTK_THEME

Modifier le script install-mendeley-link-handler.sh

Il devrait être situé dans $MENDELEY_FOLDER/bin/install-mendeley-link-handler.sh. Vous devez éditer les lignes qui écrasent le fichier mendeleydesktop.desktop, dans mon cas:

cat > $DESKTOP_PATH/mendeleydesktop.desktop <<EOF
[Desktop Entry]
Name=Mendeley Desktop
GenericName=Research Paper Manager
Comment=Mendeley Desktop is software for managing and sharing research papers
Exec=env GTK_DATA_PREFIX=$MENDELEY_FOLDER $MENDELEYDESKTOP_BIN %u
Icon=mendeleydesktop
Terminal=false
Type=Application
Categories=Education;Literature;Qt;
X-SuSE-translate=false;
MimeType=x-scheme-handler/mendeley;application/pdf;text/x-bibtex;
X-Mendeley-Version=1
EOF

Notez le changement dans la ligne Exec=....

Créer un nouvel exécutable mendeley

Où que vous conserviez vos fichiers binaires locaux (par exemple, $HOME/local/bin), créez un nouveau fichier mendeley avec les éléments suivants:

GTK_DATA_PREFIX=$MENDELEY_FOLDER \
    $MENDELEY_FOLDER/bin/mendeleydesktop

Ensuite, rendez-le exécutable en exécutant chmod +x mendeley et exécutez-le afin de mettre à jour le fichier mendeleydesktop.desktop.

Si vous avez installé Mendeley à l’échelle du système

La dernière étape n’est que légèrement différente, en ce sens que le script système (situé probablement dans /opt/mendeleydesktop) crée en fait un lien vers l’exécutable mendeleydesktop dans $HOME/.local/share, et c’est ce que le le script précédent doit appeler à la place.

Appliquer ces modifications à l'icône Unity

Le fichier à éditer doit être /usr/share/applications/mendeleydesktop.desktop. Dans ce fichier, vous devez modifier la ligne Exec comme précédemment, en préfixant l'appel avec la définition de GTK_DATA_PREFIX. Cela devrait faire l'affaire :)

3
Sheljohn

Je voudrais ajouter une réponse qui a bien fonctionné pour moi sur kde plasma (manjaro linux). Cela ne nécessite pas de droits d'administrateur.

disclaimer: testé une seule fois sur mon système le 2018-12-04 avec Mendeley 1.19,
Les commandes ci-dessous et les résultats peuvent varier en fonction des versions de DE et/ou OS ou des versions de Mendeley.

  1. créer un dossier vide, par exemple.
    mkdir $HOME/.config.theme_override.
  2. créez un lien symbolique entre votre configuration Mendeley et le nouveau dossier:
    ln -s "$HOME/.config/Mendeley Ltd." "$HOME/.config.theme_override/Mendeley Ltd."
  3. démarrez mendeleydesktop à partir de la ligne de commande en utilisant:
    XDG_CONFIG_HOME="$HOME/.config.theme_override" mendeleydesktop

Ensuite, mendeley recherchera les paramètres du thème plasma dans $HOME/.config.theme_override, elle ne trouvera aucun thème et retombera sur le thème clair lisible.

Maintenant l'entrée du bureau:

  1. assurez-vous que mendeley est fermé
  2. éditez le fichier $HOME/.local/share/applications/mendeleydesktop.desktop pour qu'il ressemble à (**) ci-dessous
  3. retirer l'autorisation d'écriture du fichier .desktop:
    chmod -w $HOME/.local/share/applications/mendeleydesktop.desktop
  4. démarrez mendeleydesktop à partir du lanceur d'applications et contemplez l'interface claire et lisible.

Quelques notes/idées pour aider les futurs détectives:

  • Le dossier de configuration par défaut de Mendeley est $HOME/.config/Mendeley Ltd., la modification de votre dossier de configuration ne modifie pas l'emplacement de la base de données Mendeley ($HOME/.local/share/data/Mendeley Ltd.).
  • Mendeley stocke également certaines données dans $HOME/.local/share/Mendeley Ltd. et $HOME/.cache/Mendeley Ltd., la modification du dossier de configuration ne change pas l'endroit où Mendeley recherche ces dossiers. Il semble que ces dossiers puissent être supprimés sans risque et Mendeley les restaurera automatiquement. Si les éléments ci-dessus ne fonctionnent pas pour changer le thème, peut-être que la suppression de ces dossiers peut aider, mais je ne suis pas sûr, procédez à vos risques et périls.
  • Chaque fois que Mendeley est démarré, un script est exécuté pour remplacer le fichier .desktop, qui est le fichier qui fait apparaître mendeley dans les menus et les lanceurs d'application. C'est pourquoi nous avions besoin de l'étape (3.) ci-dessus. Ce fichier se trouve à l'emplacement suivant: $HOME/.local/share/applications/mendeleydesktop.desktop, il exécutera le fichier $HOME/.local/share/mendeleydesktop, qui est associé par défaut à /opt/mendeleydesktop/bin/mendeleydesktop. Ne me demandez pas pourquoi les développeurs de Mendeley ont choisi cette configuration compliquée.

(** contenu de $HOME/.local/share/applications/mendeleydesktop.desktop)

[Desktop Entry]
Name=Mendeley Desktop
GenericName=Research Paper Manager
Comment=Mendeley Desktop is software for managing and sharing research papers
Exec=env XDG_CONFIG_HOME="$HOME/.config.theme_override" $HOME/.local/share/mendeleydesktop %f
Icon=mendeleydesktop
Terminal=false
Type=Application
Categories=Education;Literature;Qt;
X-SuSE-translate=false
MimeType=x-scheme-handler/mendeley;application/pdf;text/x-bibtex;
X-Mendeley-Version=1
1
Sam De Meyer