Shin: ein Text Expander

  Ralf Hersel   Lesezeit: 5 Minuten  🗪 1 Kommentar

Die Anwendung ersetzt eure Textkürzel durch Langtexte und funktioniert in fast jeder Anwendung auch unter Wayland.

shin: ein text expander

Was ein «Text-Expander» ist, habe ich bereits in diesem Artikel erklärt. Die Kommentare unter diesem alten Beitrag zeigen, dass einige das Konzept einer systemweiten Text-Ersetzung nicht verstanden haben. Natürlich bieten viele Anwendungen eine «Suchen-und-Ersetzen» Funktion, selbstverständlich lassen sich viele Texte auch ohne Ersetzung schnell schreiben. Der Vorteil eines Text-Expanders ist, dass man in jeder Anwendung auf seine eigene Sammlung von Texten zugreifen und diese schnell einsetzen kann, ohne diese in verschiedenen Anwendungen zu pflegen und mit Suchen-und-Ersetzen aufrufen zu müssen.

Eine vielversprechende Lösung ist das erwähnte Espanso. Leider muss man diese Anwendung selbst kompilieren, um Wayland-Unterstützung zu bekommen. Nun gibt es mit Shin eine Anwendung, die unter X.Org und Wayland läuft, und relativ einfach zu installieren, konfigurieren und zu bedienen ist. Ich habe sie für euch ausprobiert und kann sie empfehlen.

Shin ist in Go geschrieben und verwendet IBus, um eure Eingaben abzufangen. Alle Angaben in diesem Artikel beziehen sich auf eine Arch-basierte Distro mit GNOME als Benutzeroberfläche. Keine Sorge, auf der Projektseite von Shin findet ihr auch Anleitungen für eure Distribution. Dieser Artikel wäre zu lang geworden, hätte ich alle Distros berücksichtigt.

Für die Installation könnt ihr dieses AUR-Paket verwenden. Danach legt ihr dieses Verzeichnis an:

~/.config/shin/bin/

In dieses Verzeichnis könnt ihr beliebige Shell-Skripte ablegen, die eure Textersetzungen enthalten. Hier ist ein Beispiel:

~/.config/shin/bin > cat :gln
#!/bin/bash
echo "GNU/Linux.ch"

Was sehen wir hier? Es gibt ein Shell-Skript mit dem Namen ":gln". Diese Datei muss ausführbar gemacht werden. Dieser Dateiname ist das Kürzel, welches ihr später eingebt, um eine bestimmte Textersetzung anzusprechen. Der Doppelpunkt am Anfang soll verhindern, dass das Kürzel mit anderen Kürzeln oder Aliasen in Konflikt gerät. Ihr könnt stattdessen auch etwas anders verwenden, z. B. "--gln". Die Datei hat keine ".sh"-Endung, weil das für ein Shell-Skript nicht nötig ist und weil das einzugebende Kürzel damit zu lang würde. Ihr könnt beliebig viele dieser Dateien erstellen; wie wäre es mit ":mfg"? Im Shell-Skript könnt ihr machen, was ihr wollt. Naheliegend ist es, einen Text mittels "echo" auszugeben, wie ihr oben seht.

Jetzt benötigt ihr ein Tastenkürzel, um die Ersetzung auszulösen. Unter GNOME öffnet ihr die "Systemeinstellungen → Tastatur → Tastenkombinationen → Eigene Tastenkombinationen" und erzeugt dort eine Belegung für Shin, z. B. so:

Den Namen könnt ihr frei wählen. Wichtig ist der Befehl: ibus engine shin und die Tastenkombination nach eurem Geschmack. Nun müsst ihr euch Auslogen und wieder Einlogen, um die Änderungen wirksam zu machen. Um Shin zu testen, könnt ihr einen Texteditor öffnen und dort z. B. diesen Text eingeben: "Ich mag ". Jetzt tippt ihr die Tastenkombination für Shin, also Alt+Leertaste, falls ihr meinem Beispiel gefolgt seid. Und dann gebt ihr den Namen des Shell-Skripts ein :gln gefolgt von der Return-Taste.

Das Ergebnis sieht so aus:

Das funktioniert in derselben Art und Weise in allen anderen Anwendungen. Getestet habe ich es im Terminal, LibreOffice und in Firefox bei unserem CMS Bludit: Ich mag GNU/Linux.ch.

Hinweis: lest bitte die Informationen in der Quelle, damit Shin bei euch auch so gut funktioniert wie bei mir.

Quelle: https://github.com/p-e-w/shin

Tags

Expansion, Text, Ersetzen, Shin, Text-Expander

Thomas
Geschrieben von Thomas am 21. Januar 2023 um 11:42

Vielen Dank für den Tipp. Espanso kannte ich schon, shin war mir neu.

Ich bin Anfang 2020 vom Mac zu Linux gewechselt, da steckte Espanso noch in den Kinderschuhen und war bei meinen Recherchen nicht aufgetaucht. Autokey hatte ich mir angeschaut, taugte mir aber aus versch. Gründen nicht. Daher habe ich mir seinerzeit mit Python selbst ein Tool gestrickt, das ich nach wie vor nutze.

Allerdings ist das kein echter "Expander", sondern eine Snippetverwaltung, bei der ich die Snippets durch Eingabe eines Suchtexts filtern und dann ein Snippet mit den Pfeiltasten auswählen und Enter aufrufen kann. Die Snippets sind dabei wiederum eigenständige Python-Skripte, die teilweise interaktiv sind (Dropdowns, Texteingabe, etc.). Ist nicht ganz so schnell wie ein echter Expander, dafür muss ich mir aber auch keine Kürzel merken.

Ich werde mir shin auf jeden Fall mal anschauen. Meine bestehenden Python-Skripte sollte ich damit ja weiterverwenden können.