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:
bin
et share
et lib
. Il utilise Qt.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
.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
.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?
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
.
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
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=...
.
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
.
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.
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 :)
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.
mkdir $HOME/.config.theme_override
.ln -s "$HOME/.config/Mendeley Ltd." "$HOME/.config.theme_override/Mendeley Ltd."
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:
$HOME/.local/share/applications/mendeleydesktop.desktop
pour qu'il ressemble à (**) ci-dessous.desktop
:chmod -w $HOME/.local/share/applications/mendeleydesktop.desktop
Quelques notes/idées pour aider les futurs détectives:
$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.
).$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..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