Vor einigen Tagen las ich auf gnulinux.ch einen Artikel über Text-Expander, der unter anderem ein mir bisher nicht bekanntes Tool namens Espanso vorstellte, das mir aufgrund seiner gut gemachten Webseite als recht interessant erschien.
Text Expander
Jeder, der viel schreibt, benötigt einen Text-Expander. Darunter versteht man ein Werkzeug, das vordefinierte Kürzel durch hinterlegte Textbausteine ersetzt. Das bekannteste Beispiel ist vermutlich das auch von Ralf in seinem Artikel verwendete mfg, das nach Eingabe zu mit freundlichen Grüßen ersetzt wird. Da ich mit dem von mir seit Jahren verwendeten AutoKey nicht immer zufrieden war und es bisher auch nicht unter Wayland läuft, war ich natürlich neugierig auf den vielversprechenden Neuzugang.
Cross-Plattform mit Synchronisation
Der in Rust verfasste Text Expander Espanso läuft unter Linux, macOS und Windows. Mir reicht die Linux-Version, aber viele von euch werden vermutlich auch andere Betriebssysteme einsetzen. Da ist dann eine Konfigurationsdatei, die synchronisiert werden kann, für alle genutzten Systeme sehr hilfreich.
Die Installation unter Linux lässt sich für Debian, Ubuntu und deren Derivate über ein DEB oder als selbst erstelltes Paket durchführen. Zudem stehen fertige Pakete als AppImage oder Snap bereit. Für alle anderen Distributionen kann das AppImage oder ein selbst erstelltes Paket verwendet werden. Einzig im AUR von Arch Linux ist Espanso vertreten. Hier will der Entwickler mit der Zeit noch nachbessern.
Installation
Vor dem Download sollte aber überprüft werden, ob das System X11 oder Wayland als Sitzungsart nutzt. Dazu dient der Befehl
echo $XDG_SESSION_TYPE
Je nach Ergebnis sind jeweils andere Pakete oder ein anderer Quellcode auszuwählen, wie der Installationsanweisung zu entnehmen ist. Als Beispiel soll die Installation des DEB unter X11 dienen. Zunächst wird das Paket mit
wget https://github.com/federico-terzi/espanso/releases/download/v2.1.7-beta/espanso-debian-x11-amd64.deb
heruntergeladen und anschließend mit
sudo apt install ./espanso-debian-x11-amd64.deb
installiert. Der Befehl espanso status verrät, ob die Installation geklappt hat. Nun wird Espanso noch als Dienst bei Systemd bekannt gemacht. Der Befehl espanso service register erledigt das. Nach Eingabe von espanso start ist das Tool dann einsatzbereit. Nachdem das Begrüßungsfenster geschlossen ist, gibt es unter Linux kein weiteres Lebenszeichen von Espanso auf dem Desktop, während bei macOS und Windows ein Icon in der Bedienleiste erscheint. Man kann aber gleich testen, ob es funktioniert, indem man :espanso irgendwo eingibt und sich freut.
Konfiguration
In seiner einfachsten Form erkennt Espanso, wenn ein Schlüsselwort eingegeben wird und ersetzt es während der Eingabe. Die Konfiguration wird in mehreren Dateien unterhalb von /home/USER/.config/espanso vorgenommen. Die Datei default yaml im Ordner config enthält globale Einstellungen, die durch Entfernen des vorangestellten Rautezeichens # aktiviert werden. YAML ist äußerst pingelig, was die Einrückungen angeht, also Vorsicht. Die globalen Einstellungen gelten für alle Apps, es sei denn, eine App wird in einer eigenen YAML-Datei davon ausgenommen.
Im Ordner match wird definiert, was Espanso tun soll. In /match/base.yml sind einige einfache Beispiele vorgegeben, anhand deren Struktur weitere Trigger-Match-Paare definiert werden können. Die Datei kann entweder mit dem bevorzugten Editor oder dem Befehl espanso edit geöffnet werden. Beim Erstellen von Ersetzungen ist darauf zu achten, dass derzeit Umlaute und ß nicht im Replace-String verwendet werden sollten, denn damit funktioniert die Ersetzung in einigen Apps, in anderen aber nicht.
Espanso kann noch mehr
Espanso kann aber noch viel mehr als Textbausteine. Das Konzept »Pakete« bietet eine einfache Möglichkeit, Ersetzungen mit der Community zu teilen und wiederzuverwenden. Espanso bietet dazu einen eingebauten Paketmanager und den Espanso Hub mit einer Menge bereits vordefinierter Matches. Dazu gibt es eine eigene Dokumentation. Wo wir schon bei Dokumentation sind: Espanso ist von der Installation bis zu den fortgeschrittenen Funktionen vorbildlich dokumentiert. Da mir in zwei Tagen der Nutzung noch keine Unstimmigkeiten aufgefallen sind, habe ich heute AutoKey mit Espanso ersetzt und bereits einen Großteil der Matches dort eingefügt. Daumen hoch.
Photo by Bruno Martins on Unsplash

Hi, ich finde Espanso super, habe es auf manjaro plasma am laufen.
Das Problem mit den Umlauten hat mich sehr gestoert.
(…wer will schon gerne “Mit freundlichen Gruessen” schreiben.)
Es gibt eine “Extension” namens “german-accents” im Espanso-Hub.
Danach kann man einfach seine Textbausteine entsprechen in der yml-Datei des packages schreiben.
Das brauche ich unter Debian nicht:
- trigger: ":mfg"replace: "mit freundlichen Grüßen"
im Standard espanso match file funktioniert.
Hi Ferdinand, ja ich kann mir vorstellen, dass es bei dir geht. Bei mir gings Anfangs auch. Mit der Zeit ist habe ich aber meine base datei weiter gefuettert und irgendwann war Schluss und es kamen nur noch utf-8-Fehlermeldungen (~/.config/espanso/match/base.yml).
Da hat bei mir dann nur noch das german-accents package geholfen.
Aber wenn es auch ohne geht, umso besser.
Wobei ja auch auf der espanso.org empfohlen wird nicht mit Umlauten zu arbeiten.
Nix fuer ungut. LG Holger
Ich wusste gar nicht, dass es ein german-accents package gibt.Gut zu wissen, falls man es mal braucht.
Ich bin vor ein paar Jahren mal auf Espanso gestoßen und nutze es seitdem mit Linux Mint und Manjaro. Ich mag allerdings Wayland nicht und bin ein eingefleischter X11-Benutzer. Allein schon wegen meiner Skripte (Teile einer Webseite im Browser markieren, ein Tastendruck und zu Markdown konvertiert ab in die Inbox, Text markieren und vorlesen lassen, etc.). Und wenn mich mal der Spieltrieb packt, dürfen auch so Sachen wie xsnow und xpenguins nicht fehlen … 😉
Unter Linux hat Espanso kein Taskbar-Icon, finde ich persönlich auch okay so.
Espanso kann übrigens “Packages” (wie etwa das HTML- oder Emoji-Package, siehe Espanso Hub), man könnte ja eventuell seine eigenen Textbausteine in einem Package verteilen, damit’s für den Enduser leicher wird?
Nice! Endlich eine Alternative zu AutoKey, ich bin beruflich echt hard angewiesen auf derartiges und da Autokey kein Wayland kann und will (oder der Umbau dafür gestaltet sich als extrems chwierig) zumindest kommt da nichts in Gang, hatte ich schon angst auf Windows umsteigen zu müssen nur für sowas.
Habe es gerade mal getestet unter Arch, da funktioniert einigermaßen nur selbst kompiliert aktuell. Aber auch das Icon in der Leiste erscheint nicht. Scheint leider noch einige Kinderkrankheiten zu haben… mah. Schade 😀
Aber das erkennen von Triggern läuft wahnsinnig flüssig, flüssiger als mit Autokey. Sehr vielversprechend. ^^
Ich glaube, für Linux ist kein Icon vorgesehen. Auf eine entsprechende Anfrage habe ich noch keine Antwort erhalten. eigentlich braucht man ja kein Icon.
Oh, schade. Dann wird es wieder eher was für nerds bleiben.
Eine GUI empfinde ich für sowas dann doch als essentiell. Wenn sowas z.b. in einem Büro von weniger versierten MA genutzt wird… die brauchen ne GUI für schnelle Baustein-Erstellung.
Gerade wenn es mit YAML arbeitet, da wird jeder normale Mensch der mit sowas nie Kontakt hat, verzweifeln. Vom normalen Personaler über Supporter und Buchhaltung.
Sehr schade. AutoKey scheint da unersetzbar zu bleiben… hoffentlich kommt Wayland da mal in Gang.
Mach dir doch den Button selbst. Wenn es nur darum geht die entsprechende Datei zu editieren, geht das doch ganz einfach.
Hier wäre schon mal das Script:
#!/bin/bash
nano ~/.config/espanso/match/base.yml
Dann machst du eine Verknüpfung zum diesem Programm auf dem Desktop und schon hast du einen Klick-Button für den “normalen” Personaler über Supporter und Buchhaltung.
Sorry du brauchst ja einen Editor für die GUI. Ich habe mal kate gewählt.
#!/bin/bash
kate ~/.config/espanso/match/base.yml
Das an sich ist kein Thema. Aber alleine die Tatsache das es YAML ist und nicht wie bei AutoKey simpler Text, macht es für einen normalen Benutzer unattraktiv.
Die Syntax der Leerzeichen in YAML macht jedes Zeichen falsch zu einer Nervenzerreisprobe für solche Benutzer ^^.
Ich kenne das selbst wenn ich ansible playbooks schreibe. Mal nicht aufgepasst und ich suche mich manchmal etwas dusselig wo es nun falsch eingerückt ist.
Das ist bedauerlicherweise nicht benutzerfreundlich.
Es ist immer schwer abzuschätzen, welcher Benutzer zu welchen Leistungen fähig ist. In der Praxis klärt sich das dann aber schnell. Es ist doch schön wenn man in einer Firma denjenigen die selbst erstellte Textbausteine fordern, auf so einfache Weise die Möglichkeit dazu einräumen kann. Und Leute die das wirklich wollen kommen dann auch mit YAML zurecht.
Jedenfalls sehe ich hier keinen Mangel von espanso.
Prinzipiell bin ich auf deiner Seite.
Die Zielgruppe von espanso ist dementsprechend aber unsereins und nicht relativ durchschnittliche Personen mit allgemeinen IT-Kenntnissen.
Was ich schade finde, denn eine Alternative von für AutoKeys ist zwingend erforderlich um hier mal wieder Schwung rein zu bringen.
Für unsereins ist espanso natürlich super und extrem mächtig…
Ja, bei wayland ist im AUR PKB noch der Wurm drin. Vielleicht fehlt dort auch nur eine Abhängigkeit.
Ich habe beide wayland PKBs aus dem AUR ausprobiert aber auf einer Plasma (wayland) Sitzung hat es auf keinen Trigger reagiert. Mit der ersten Eingbe von
:datelief espanso nicht mehr und musste neu gestartet werden.Danach habe ich das espanso (für x11) kompiliert und es mit Plasma (x11) gestartet. Klasse und sau schnell. 🙂
@ferdinand
Das [Enter] kann in der Anleitung weg. Der Trigger wird sofort ersetzt ohne Eingabebestätigung.
Danke für den Tipp mit espanso.