Espanso, un gestionnaire d’abréviations open-source pensé pour les développeurs

Nicolas Furno |

Espanso est un gestionnaire d’abréviations, un concurrent de TextExpander, Typinator ou encore de la fonctionnalité de remplacement de texte intégrée à macOS. L’idée est toujours la même : on saisit un texte bref en guise d’abréviation et l’app le remplace par un texte plus long ou plus complet. Par exemple, taper cdlt peut donner « cordialement ». Par rapport aux autres options, Espanso se distingue à la fois par sa licence open-source et son fonctionnement qui conviendra davantage aux développeurs et bricoleurs qu’au grand public.

L’interface principale d’Espanso en bas à droite, le fichier où on peut définir les abréviations en arrière-plan.

Côté licence, le code source d’Espanso est distribué sur GitHub en GPL-3.0. L’application est codée principalement en Rust et C++ et les contributions sont les bienvenues si vous avez les compétences nécessaires. Il s’agit d’une app multiplateforme, disponible autant sur macOS que sur Windows et Linux, mais elle repose sur du code natif pour chaque plateforme et non pas une solution transversale comme Electron.

Côté utilisation, l’interface est réduite au maximum, puisqu’elle se limite à une boîte de dialogue avec une liste d’abréviations et quelques commandes accessibles après avoir saisi la touche >. Par défaut, cette fenêtre s’affiche avec le raccourci ⌥espace et si vous voulez en changer, il va falloir sortir un éditeur de code. En effet, les réglages sont définis dans un fichier texte et les modifications se feront également par ce biais. Plus étonnant, on ne peut pas ajouter d’abréviations au-delà des trois intégrées par défaut avec une interface graphique, il faudra au choix manier l’éditeur de code ou bien le terminal.

Les abréviations sont elles aussi stockées dans des fichiers yaml stockés sur votre ordinateur1. Vous pourrez en ajouter d’autres en respectant une syntaxe assez simple, voici ce que cela donnerait pour mon exemple initial :

  - trigger: "cdlt"
      replace: "cordialement"

Comme tous ses concurrents, Espanso peut aller bien plus loin qu’un simple remplacement de texte par un autre texte. Le programme est fourni avec plusieurs commandes pour insérer la date ou exploiter le presse-papier, mais il est aussi possible d’aller (beaucoup) plus loin avec des scripts. Seul le texte peut être géré en revanche, on ne peut pas l’utiliser pour insérer des images ou d’autres fichiers. Les possibilités restent élevées, avec même un module de sélection aléatoire ou encore de quoi réaliser des listes d’options.

Pour simplifier l’ajout d’abréviations, Espanso dispose d’un « hub », où l’on trouve des packs prêts à emploi. Leur installation se fait à l’aide du terminal avec une ligne de commande installée en même temps que l’app. Par exemple, espanso install lorem va installer plusieurs abréviations pour insérer ensuite du faux texte « Lorem ipsum ». Il y a quelques dizaines de packs prêts à l’emploi et comme tout est open-source, les contributions sont encore une fois les bienvenues.

Cette même ligne de commande a de nombreuses autres fonctions et peut notamment déplacer l’emplacement de sauvegarde des fichiers nécessaires à Espanso, ce qui peut permettre de les synchroniser entre plusieurs ordinateurs. Comme le format et la structure de ces données sont identiques sur tous les systèmes, cela peut servir entre un Mac et un PC sous Linux. La documentation complète mérite d’être lue si vous êtes intéressé par ce gestionnaire d’abréviations complet, mais pas aussi intuitif à prendre en main que les autres.


  1. Sur macOS, le fichier principal est ~/Library/Application\ Support/espanso/match/base.yml.  ↩︎

avatar fleeBubl | 

Très jolie idée, cette interactivité qui intègre les résultat au texte, depuis n’importe quelle zone de saisie, des raccourcis appelant des lignes de commandes.

avatar RicoLaaa | 

Je l’utilise depuis un bon moment et je ne peux plus m’en passer. C’était la seule option viable que je pouvais installer sur le portable windoz pro sans droits admin.
Il permet de créer des formulaires pour compléter par exemple un template qui sera ensuite utilisé pour envoyer un mail. Possibilité aussi d’utiliser des variables dans les réponses. J’ai par exemple fait un petit script (je suis pas dev, j’ai demandé à chatGPT de le faire pour moi) qui change les salutations à la fin d’un mail suivant le moment de la journée en tapant toujours la même abréviation.
Le créateur de l’app est assez débordé dernièrement donc si des devs sont dispos pour donner un coup de main et continuer le développement les simples mortels comme moi vous remercient d’avance!

avatar Marvin_R | 

Je l'ai adopté. il est très bien, puissant et rapide, en plus d'être léger. J'ai utilisé précédemment TextExpander, Alfred puis Raycast.
Comme ça fonctionne par fichiers textes, ça se synchronise simplement avec iCloud (donc plus ou moins vite). Et je me dis que ce sera plus simple pour exporter les données si jamais je change de logiciel.
Le fait de passer par un fichier texte est plus souple, c'est un peu rebutant pour les novices, mais ça reste assez simple à utiliser.
(Petit bémol, si je tape "cdlm", ça colle "cordialement", mais si j'efface ensuite un caractère, ça revient à "cdlm" et ça efface le "m", on ne peux pas effacer un bout du texte collé. )
Merci RicoLaaa, je ne savais pas qu'on pouvait l'installer sur windows sans droit admin !

avatar iPop | 

@Marvin_R

« Le fait de passer par un fichier texte est plus souple, c'est un peu rebutant pour les novices, mais ça reste assez simple à utiliser. »

Idem, je suis passé au format texte, c’est plus souple, sans souci et la sécurité en plus.

avatar amonbophis | 

Quelle est le plus par rapport au système intégré au Finder?

avatar iPop | 

@amonbophis

L’outil du système ne sert qu’à replacer de très courtes phrases, tu ne peux écrire un paragraphe entier avec des sauts de lignes ou des tabulations.

avatar BeePotato | 

@ iPop : « L’outil du système ne sert qu’à replacer de très courtes phrases, tu ne peux écrire un paragraphe entier avec des sauts de lignes ou des tabulations. »

Si, tu peux tout à fait. C’est juste que l’interface n’est pas pratique pour pour ça en raison de la taille du champ de texte.

Comme d’habitude dans MacOS quand on veut saisir un retour à la ligne ou une tabulation sans sortir d’un champ de texte, il faut utiliser ⌥+⏎ et ⌥+⇥. Mais vu l’espace dont on dispose pour voir ce que l’on saisit, le mieux reste de saisir son texte ailleurs et faire du copier-coller.

avatar iPop | 

@BeePotato

Ah, je ne savais pas. J’ai eu plein d’applications dans le genre dont Atext, etc… pour finalement adopter IA Writer qui permet d’intégrer n’importe quel document (et non juste quelques lignes) à un autre juste en tapant les premières lettres. Pas besoin de configurer quoi que ce soit, couplé à celui du système ça suffit amplement pour faire le job, voir mieux.
Donc tu peux faire autant de Snippet avec styles et les intégrer. Les textes étant des fichiers TXT, même des tableaux, il n’y a pas plus sûr comme format. Tu peux même rajouter Raccourcis pour faire des entrées et créer des fichiers qui seront intégrés à d’autres, les possibilités sont infinis.

avatar BeePotato | 

@ iPop :
Pour l’inclusion de morceaux longs et un peu complexes, j’avoue que j’en reste au système des extraits de MacOS (apparu dans je ne sais plus quelle version du Système 7 ou de MacOS 8). Vingt-cinq ans d’habitude, couplés à des besoins pas immenses dans ce domaine, font que je ne suis probablement pas près de passer à autre chose. 🙂

avatar iPop | 

@BeePotato

Ah oui tout de même. Je me souviens encore de ces extraits, j’avais aussi une sacré collection.

avatar BeePotato | 

@ iPop :
Ça marche bien, faut dire. Et ça a l’avantage d’être indépendant de toute application, d’être organisable via les outils du Finder (dossiers + tags), et de pouvoir être accessible rapidement via le Dock.

avatar iPop | 

@BeePotato

Je ne sais plus ce qu’est le format, faut espérer que ce soit soutenu.
Il y a une application « Yoink » qui est aussi pas mal, je ne l’ai pas mais il a l’avantage d’utiliser un simple dossier et ses éléments sont des fichiers TXT et images.

avatar BeePotato | 

@ iPop : « Je ne sais plus ce qu’est le format, faut espérer que ce soit soutenu. »

Le format des extraits ? Ben il continuera d’être maintenu tant que MacOS continuera d’intégrer cette fonction. Et pour l’instant, je ne vois pas pourquoi elle disparaîtrait (mais on n’est jamais à l’abri d’une surprise avec Apple).
En tout cas, le format actuel est facilement récupérable : une plist en version binaire, contenant diverses représentations de l’extrait (RTF, RTFD le cas échéant, texte brut en divers encodages). Je ne m’inquiète pas.

avatar iPop | 

@BeePotato

Cette fonction n’existe plus sur iOS ou plutôt elle a changé. Sur iOS si on déplace un élément d’un document dans FICHIER il se transforme en fichier TXT, tandis que les images en PNG. Dans le cas où il y aurait les deux, c’est un PNG…ça a son utilité.

avatar BeePotato | 

@ iPop :
L’histoire d’iOS ressemble à une tentative sans cesse renouvelée de réinventer ce qui fonctionnait très bien dans MacOS, pour finir par en sortir une version mal fichue et pas finie. 🙄

Ça me donne régulièrement l’impression d’être développé par des gusses qui n’ont jamais utilisé un Mac de leur vie.

avatar titigrou | 

C’est possible d’ajouter un bloc de texte ?
Genre par exemple pour du latex faire un
/begin{}
/end{}
?

avatar RicoLaaa | 

@titigrou

Oui tu peux ajouter des blocs de texte et même formater le texte avec du markdown en mettant markdown : au lieu de replace :

avatar Crabardaf | 

@titigrou

On peut même ajouter une image.
Une autre fonction intéressante est la possibilité de remplacer un texte quelle que soit la casse saisie. Je m’en sers par exemple pour reformater automatiquement des noms de communes compliqués en respectant les normes d’écriture.

avatar Tiroly | 

Oh génial, j’essaye de ce pas.
Mais la grande force de l’outil intégré à macOS, c’est le partage avec iOS des raccourcis. J’imagine que c’est impossible pour une app tierce (hormis peut être avec des claviers alternatifs ?)

avatar ratz | 

Le souci de l'abréviation intégrée a macOS, c'est que ça ne marche pas sur énormément dapplis

Exemple : chrome ...

avatar BeePotato | 

@ ratz : « Exemple : chrome ... »

Dans Chrome, ça fonctionne, juste pas aussi bien qu’ailleurs (il faut valider en saisissant une espace ou en sélectionnant le remplacement dans le popup qui apparaît, alors que dans les applications normales on peut valider avec n’importe quel caractère non alphabétique).

CONNEXION UTILISATEUR