4.1.1 Configuration du système

Lorsque cette fonctionnalité est active, LilyPond ajoute des hyperliens au fichier PDF ou SVG. Ces liens sont transmis à un « URI helper » ou au navigateur internet, qui se charge d’ouvrir un éditeur de texte à l’endroit même où le curseur pointe.

Afin que cette chaîne de traitement soit pleinement opérationnelle, il faut configurer votre visionneur de PDF de façon à ce qu’il suive les liens grâce au script ‘lilypond-invoke-editor’ fourni avec LilyPond.

lilypond-invoke-editor’ est un petit programme assistant. Il se charge d’appeler un éditeur pour les identifiants de ressource (URI) de type textedit, et un navigateur pour les autres. Il teste en outre les variables d’environnement EDITOR et LYEDITOR pour trouver et lancer l’éditeur favori. Dans la mesure où LYEDITOR aura préséance sur EDITOR, nous vous conseillons de l’utiliser si vous désirez utiliser un éditeur pour le terminal et un autre pour la fonctionnalité pointer-cliquer de LilyPond.

Les éditeurs peuvent recourir à des syntaxes différentes pour ouvrir un fichier à une ligne et une colonne spécifiques. LilyPond dispose déjà d’un certain nombre de commandes selon les éditeurs, définies dans le fichier ‘scripts/lilypond-invoke-editor.py’. Il suffit donc de libeller, par exemple :

export LYEDITOR=atom

pour lancer la commande

atom %(file)s:%(line)s:%(column)s

%(file)s, %(line)s et %(column)s seront respectivement remplacés par le fichier, la ligne et la colonne considérés.

L’utilisation d’un éditeur non répertorié dans ce fichier recquiert d’en connaître la syntaxe spécifique et d’assigner la commande complète à la variable LYEDITOR. Voici par exemple ce qui convient à l’éditeur Visual Studio Code :

export LYEDITOR="code --goto %(file)s:%(line)s:%(column)s"

Note : L’utilisation d’Emacs recquiert une configuration supplémentaire. Il faudra ajouter la ligne (server-start) à votre fichier ‘~/.emacs’ afin d’éviter qu’une instance supplémentaire d’Emacs ne s’ouvre à chaque clic sur un objet du PDF.


Utilisation avec GNOME

En ce qui concerne l’environnement GNOME, les URI sont gérés par des fichers « .desktop ». Il faut donc créer un fichier dans un répertoire local tel que ‘/tmp’, que l’on appelera ‘lilypond-invoke-editor.desktop’. Il devra avoir le contenu suivant :

[Desktop Entry]
Version=1.0
Name=lilypond-invoke-editor
GenericName=Textedit URI handler
Comment=URI handler for textedit:
Exec=lilypond-invoke-editor %u
Terminal=false
Type=Application
MimeType=x-scheme-handler/textedit;
Categories=Editor
NoDisplay=true

puis exécuter les commandes

xdg-desktop-menu install ./lilypond-invoke-editor.desktop
xdg-mime default lilypond-invoke-editor.desktop x-scheme-handler/textedit

Après cette invocation,

xdg-open textedit:///etc/issue:1:0:0

devrait appeler ‘lilypond-invoke-editor’ pour ouvrir les fichiers.


Configuration spécifique à Evince

Il se peut que, bien que xdg-open soit fonctionnel, Evince refuse d’ouvir les liens pointer-cliquer pour des raisons d’autorisation. S’impose alors une modification du profil Apparmor d’Evince ; c’est lui qui contrôle le type d’action qu’Evince est autorisé à réaliser.

Sur une distribution Ubuntu, cela consiste à éditer le fichier ‘/etc/apparmor.d/local/usr.bin.evince’ et lui ajouter les lignes suivantes :

# Pour les liens Textedit
/usr/local/bin/lilypond-invoke-editor Cx -> sanitized_helper,

puis lancer la commande

sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.bin.evince

Evince devrait alors être en mesure d’ouvrir les liens pointer-cliquer. Une telle configuration devrait être fonctionnelle pour d’autres visionneurs.


Activation du pointer-cliquer

La fonctionnalité de « pointer-cliquer » est activée par défaut pour ce qui est des fichiers PDF et SVG.

L’option pointer-cliquer accroît la taille des fichiers de manière significative. Afin de réduire la taille de ces fichiers (ainsi que du PS), il est toujours possible de désactiver le pointer-cliquer en ajoutant

\pointAndClickOff

dans le fichier ‘.ly’. Il peut alors être activé de manière explicite grâce à

\pointAndClickOn

Le pointer-cliquer peut aussi être désactivé au moment de la compilation en ligne de commande :

lilypond -dno-point-and-click file.ly

Note : Lorsqu’un fichier LilyPond est destiné à être redistribué, pensez à désactiver le pointer-cliquer, de telle sorte que les chemins d’accès et autres informations propres à votre système ne se retrouvent pas inclus dans le fichier PDF.


Pointer-cliquer sélectif

Pour certaines applications interactives, il est parfois préférable de limiter la fonctionnalité du pointer-cliquer à quelques éléments seulement. Par exemple, si vous avez l’intention de créer une application lançant l’audio et la vidéo à partir d’une note en particulier, il serait mal venu qu’un clic sur la note vous amène à l’altération ou une liaison qui l’affecterait.

Les événements générateurs de lien peuvent se gérer :

Plusieurs types d’événement peuvent être mentionnés :


LilyPond — Utilisation des programmes v2.23.11 (branche de développement).