Présentation

Espanso est un super outil qui améliore votre productivité !

En tant que développeur, devOps ou tout autre activité en lien avec l'écriture de texte (copywritter, blogguer,..), nous devons répéter régulièrement les mêmes actions, réécrire des bouts de phrases ou de code.
C'est à la fois très fatiguant avec un taux d'erreur important et surtout cela n'ajoute pas de valeur ajoutée à ce que l'on fait.

J'ai découvert depuis quelque mois ce merveilleux outil Espanso, qui s'installe directement sur votre PC (Windows, mac, Linux), et qui te permet via des raccourcis texte de générer automatiquement du texte prédéfini. Le tout est en plus Opensource.
Espanso fonctionne avec la création de modèles (raccourci) qui vont être détectés (matching) pour remplacer la chaine de texte à écrire. Dans le principe c'est assez simple à paramétrer mais il faut quand même avoir un minimum de connaissance. Ne t'inquiètes pas, je vais t'expliquer dans la suite du tutoriel comment ça fonctionne 😄
A mon sens, il manque un petit éditeur graphique qui te permettrai de paramétrer plus facilement les raccourcis. Une version 2.0 est en cours de développement, j'ai le pressentiment que plein de nouveautés seront à venir 🔥.

Espanso permet aussi de:

  • Copier des images préfinis via un raccourci
  • Exécuter des scripts (lancer un programme, obtenir une information)
  • Utiliser des formulaires pour générer du contenu plus complexe

Sérieusement cet outil est une pépite (oui je me répète mais c'est génial 😍).

Voici le lien pour le télécharger Espanso.

Après tout ce présentation, j'espère que tu as envie d'en savoir plus !
Commençons par faire un cas d'utilisation concret pour mieux comprendre !

Cas d'utilisation

Depuis ces derniers temps et surtout avec la sortie d'OpenMVPBox, j'ai dû régulièrement répéter des centaines de fois les mêmes commandes dans une console linux.
Et franchement moins j'écris des lignes de commandes et mieux je me porte 😄, surtout qu'au bout d'un certain temps j'ai tendance à faire des erreurs ...
Donc j'ai choisi de configurer les raccourcis suivant :

Raccourci Commande
:dbuild docker-compose build
:dup docker-compose up
:dupd docker-compose up -d
:ddown docker-compose down
:dlogs docker-compose logs
:dlogsf docker-compose logs -f
:dexec docker-compose exec
:drestart docker-compose restart

Alors comment ça fonctionne ?

Quand je saisis le texte :dup dans n'importe quel éditeur ( bloc note, ssh, recherche web, word, ...) cela me remplace automatiquement par docker-compose up. Donc avec 4 caractères j'en écris finalement une quinzaine, quel gain de temps !
Quand je saisis le texte :dexec, cela est directement remplacé par docker-compose exec et ainsi de suite.

C'est un exemple très basique pour comprendre le fonctionnement et le paramétrage, qui se fait assez facilement. pour le coup !
Il est aussi possible de proposer cette liste dans Espanso hub , qui un contient un ensemble de package créés par la communauté Espanso (toi peut-être prochainement 😄), destinée à tous.
C'est assez récent, pour le moment il y a des packages assez basiques comme :

  • Emoticônes (Emojis)
  • Formules Excel
  • Symboles mathématiques
  • Des raccourcis de balise HTML
  • Accents français (en majuscules par exemple)
  • ...

Pour installer des packages supplémentaires, il faut exécuter la commande suivante dans un cmd.exe (sous windows) ou dans un terminal :

  espanso install nom_du_paquet

Le Hub des packages se trouve ici.

Pour installer un paquet non officiel, tu peux faire la commande suivante :

espanso install -e nomDuPaquet UrlDuDépot 
espanso restart

Finalement, j'ai créé un dépôt pour les commandes docker-compose.

 espanso install -e docker-compose https://github.com/Jazys/espanso-docker-compose 
 espanso restart

Comment paramétrer Espanso pour avoir ses propres raccourcis

L'explication, bien qu'elle soit en anglais, est assez claire. Tu peux la retrouver ici si tu le souhaites https://es/panso.org/install
Je vais t'expliquer brièvement quelques paramétrages que je trouve accessibles. Si plusieurs personnes souhaitent une explication sur les fonctionnalités avancées, je ferais peut-être un article plus poussé.

Let's GO 🌟🌟
Il faut éditer le fichier default.yml pour créer ses raccourcis. Sous Windows, tu le trouvera dans C:\Users\TonNomUtilisateur\AppData\Roaming\espanso.
Voici son contenu par défaut :

# espanso configuration file

# This is the default configuration file, change it as you like it
# You can refer to the official documentation:
# https://espanso.org/docs/

# Matches are the substitution rules, when you type the "trigger" string
# it gets replaced by the "replace" string.
matches:
  # Simple text replacement
  - trigger: ":espanso"
    replace: "Hi there!"

  - trigger: ":greet"
    form: |
      Hey {{name}},
      Happy Birthday!

  # Dates
  - trigger: ":date"
    replace: "{{mydate}}"
    vars:
      - name: mydate
        type: date
        params:
          format: "%m/%d/%Y"

  # Shell commands
  - trigger: ":shell"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "echo Hello from your shell" 

Attention ce fichier est au format YAML, regarde Wikipédia pour en savoir plus!
C'est l'indentation qu'il faut respecter scrupuleusement sous peine d'un dysfonctionnement d'Espanso.

Si nous reprenons le fichier de base, voyons ce qu'il raconte :

  • quand je saisis :espanso il va s'afficher à la place Hi there !
  • quand je saisis :greet, une popup s'affiche en vous demandant de saisir un nom et ce nom va être inclus dans la phrase préfinie Hi XX, Happy Birthday
  • quand je saisis :date, il va s'afficher la date du jour au format US
  • quand je saisis :shell, cela va exécuter une commande, qui dans ce cas affiche Hello from your shell

Maintenant si tu souhaites ajouter par exemple le raccourci suivant :salutation pour Veuillez agréer, Madame, Monsieur, l'expression de mes sentiments distingués alors le fichier est le suivant :

 # espanso configuration file

# This is the default configuration file, change it as you like it
# You can refer to the official documentation:
# https://espanso.org/docs/

# Matches are the substitution rules, when you type the "trigger" string
# it gets replaced by the "replace" string.
matches:
  # Simple text replacement
  - trigger: ":espanso"
    replace: "Hi there!"

  - trigger: ":salutation"
    replace: "Veuillez agréer, Madame, Monsieur, l'expression de mes sentiments distingués"

  - trigger: ":greet"
    form: |
      Hey {{name}},
      Happy Birthday!

  # Dates
  - trigger: ":date"
    replace: "{{mydate}}"
    vars:
      - name: mydate
        type: date
        params:
          format: "%m/%d/%Y"

  # Shell commands
  - trigger: ":shell"
    replace: "{{output}}"
    vars:
      - name: output
        type: shell
        params:
          cmd: "echo Hello from your shell"

Lorsque vous sauvegardez le fichier, une petite popup vous indique le message suivant : "Reloaded Config" indiquant la bonne prise en compte de la modification.
Voilà le tour est joué, félicitation, tu as créé tes premiers raccourcis !💥

Les petits plus

A tout moment, il est possible de désactiver le fonctionnement d'Espanso, un double appui sur "ALT" fait varier son état à ON/OFF. Cela peut s'avérer très pratique.

Il est possible aussi d'activer le matching uniquement dans certaine fenêtre. Par exemple, quand j'ai Chrome d'ouvert, je veux que certaines détections soient effectives uniquement dans ce cas là. Il faut se référer à la documentation avec le terme de filter_title.

Les autres fonctionnalités sympa que j'aime bien :

J'espère que cette présentation d'Espanso t'as plu. Je pense qu'il va te faire gagner beaucoup de temps.
Ce coup-ci ce n'était pas un article en lien avec une solution no/low-code mais cela reste un outil Opensource. Je t'invite donc à créer tes propres raccourcis et à les diffuser via le HUB.

Happy Matching 🔥

Article précédent Article suivant