Nerdkrams
Kein Spuk: Texte im Web siche­rer tip­pen mit GhostText.

Wenn man den Fehler macht, den Heilsversprechungen derer, die am lieb­sten das kom­plet­te Betriebssystem in den Webbrowser schie­ben wür­den, zu glau­ben, wird man grund­sätz­lich im unpas­send­sten Moment dar­an erin­nert, war­um das eine furcht­ba­re Idee ist: Verabschiedet sich der Webbrowser, ver­ab­schie­det sich auch alles, was man gera­de for­mu­liert hat. Wenn sich die eige­nen Beiträge im Web nicht gera­de auf Hashtagwellen auf Instagram oder gram­ma­ti­ka­lisch nicht emp­feh­lens­wer­te Kurztexte auf Twitter beschrän­ken, dann könn­te das unter Umständen eher unan­ge­nehm wer­den. Wer tippt schon gern über Stunden - wenn nicht: Tage, gar Wochen - aus­ge­feil­te Texte gern ein zwei­tes Mal von vorn?

Einige „Webanwendungen“ - allein das Wort schon! - ver­su­chen die­sem selbst ver­ur­sach­ten Problem inzwi­schen ent­ge­gen­zu­wir­ken; die Forensoftware XenForo und die Blogsoftware WordPress etwa spei­chern den Beitrag, den man gera­de tippt, in kur­zen Abständen in einem Zwischenspeicher, nach einem Neustart des Systems ist somit wenig­stens ein Großteil des Geschriebenen noch nicht ver­lo­ren. Dass die Zuverlässigkeit also vom Dienst selbst abhängt, hat in der Vergangenheit diver­se Entwickler zum Programmieren von Browsererweiterungen ver­an­lasst, etwa Textarea Cache, das sich die Inhalte von Textfeldern wäh­rend des Schreibens „merkt“ und das Gemerkte für spä­te­re Sitzungen vor­hal­ten kann. Die inzwi­schen ein­ge­stell­te Firefoxerweiterung It’s All Text! ging sogar noch einen Schritt wei­ter und ver­knüpf­te den jeweils bevor­zug­ten Texteditor direkt mit die­sen Textfeldern, so dass man den Text im Browser nur noch abschicken muss­te. Seit Firefox kaum noch von Chrome zu unter­schei­den ist, ist das aber vorbei.

Wohl dem, der recht­zei­tig für Ersatz gesorgt hat. Wohl dem, der GhostText kennt.

Was macht GhostText denn überhaupt?

GhostText ermög­licht eine Anbindung jedes Texteditors an den Webbrowser (sofern die­ser Webbrowser Chrome, Firefox oder Opera ist - ande­re auf Chromium basie­ren­de Webbrowser kön­nen, müs­sen aber nicht, auch funk­tio­nie­ren). Hierfür kom­mu­ni­ziert es nach der Auswahl eines Textfelds per WebSocket mit belie­bi­gen Anwendungen, die einen geeig­ne­ten Server auf Port 4001 bereit­stel­len kön­nen. Mit die­sen Anwendungen tauscht GhostText der­zeit (sofern jeweils vor­han­den) den Titel, den URL, den Inhalt und die Cursorauswahl des Textfelds aus. Das Protokoll ist auf GitHub dokumentiert.

Diese Technik funk­tio­niert natür­lich vor allem in Verbindung mit einem Texteditor gut.

Aber wel­cher Texteditor?

Die zweitschönste Art von Pornografie: Screenshots von Texteditoren.Über die Frage, wel­chen Texteditor ich emp­feh­len kann und war­um man nicht statt­des­sen einen ande­ren neh­men soll­te, könn­te ich Bücher oder wenig­stens Bildschirmseiten fül­len. Als ich das aber zuletzt ver­sucht habe, habe ich es weni­ge Jahre spä­ter bereut. Auch ich selbst neh­me längst davon Abstand, einen bestimm­ten Texteditor als das Maß aller Dinge zu begrei­fen; die­sen Text etwa schrei­be ich in dead­pi­xis sam, weil mir gera­de danach ist, und hät­te ich fünf Minuten spä­ter ange­fan­gen, so hät­te ich viel­leicht einen ande­ren benutzt. Ich benut­ze der­zeit mehr oder weni­ger regel­mä­ßig sechs ver­schie­de­ne Texteditoren für unter­schied­li­che Zwecke, gele­gent­lich kom­men auch mal ein sieb­ter und ein ach­ter hinzu.

Eigentlich spricht nichts dage­gen, zum erst­be­sten Texteditor, und sei’s ed, zu grei­fen, prak­tisch hin­ge­gen ist das unter Umständen mit Komfortverlust ver­bun­den, denn GhostText selbst kennt zwei Arten der Verbindung. Der Entwickler wirbt momen­tan mit der Echtzeitversion, hier­für benö­tigt man einen der unter­stütz­ten Texteditoren - das sind der­zeit Sublime Text, Atom, Visual Studio Code, Vim, NeoVim, GNU Emacs und sogar Acme - und die jeweils pas­sen­de Erweiterung. Der Rest funk­tio­niert, je nach Editor, meist weit­ge­hend auto­ma­tisch, wie ich in einem kur­zen Test mit der GNU-Emacs-Version fest­ge­stellt habe. Die wei­te­re Lektüre mei­nes fol­gen­den Geschwalls wäre in die­sem Fall ohne ersicht­li­chen Mehrwert. Bevorzugt man jedoch einen ande­ren Texteditor, so soll man zu It’s All Ghosts greifen.

Tut man das, so ist die Wahl des Texteditors völ­lig egal, unter­stützt wird wohl jeder, der Dateinamen als Aufrufparameter akzep­tiert. Der benut­zer­sei­ti­ge Unterschied zu den offi­zi­el­len und halb­of­fi­zi­el­len Editorplugins ist, dass It’s All Ghosts sich, daher wohl der Name, bei­na­he wie das gute alte It’s All Text! ver­hält: Es gibt kei­ne Liveaktualisierung, statt­des­sen wird der Text erst in den Webbrowser über­nom­men, wenn der Editor been­det wird. Das wird erst dann zu einem Problem, wenn der Texteditor (oder der Computer) selbst abstürzt und kein Backup der aktu­el­len Editorsitzung vor­liegt. In dem Fall emp­feh­le ich einen ande­ren Texteditor oder ein ver­nünf­ti­ges Maß an Fatalismus und/oder Sarkasmus. Da es sich mir nicht erschließt, war­um man für das Bearbeiten von blo­ßem Text unbe­dingt eine gra­fi­sche Oberfläche haben muss, spricht wenig­stens für die­sen Anwendungsfall nichts gegen einen kon­so­len­ba­sier­ten Editor. Ein sol­cher ist zumeist noch immer kom­for­ta­bler zu benut­zen als eine text­area, wenn man sich nicht gera­de mit wei­te­ren Browsererweiterungen behel­fen möch­te, und belegt anders als „moder­ne“ Alternativen nur weni­ge Systemressourcen. Davon kann man bekannt­lich nie genug haben.

Wenn man nicht gera­de Windows nutzt (denn unter Windows ist sei­ne Unterstützung für die Kommandozeile noch eher mau), aber sich für unge­wohn­te Konzepte begei­stern kann, könn­te poe einen Blick wert sein, ein nicht übler Nachbau des Texteditors Acme, der sich eben­so wie sein Vorbild kom­plett mit der Maus bedie­nen lässt. Ich hör­te, das wer­de von vie­len Menschen als Vorteil ver­stan­den. Ansonsten habe ich den tasta­tur­freund­li­chen Editor micro als gut genug bedien­bar wahr­ge­nom­men. Wer - wie ich - cmd nicht über­mä­ßig gut lei­den kann, der möge, da Console2 anschei­nend nicht mehr gepflegt wird, sich ein­mal ConEmu anse­hen, das sich auch als Systemstandard set­zen lässt; micro wird dann auto­ma­tisch in ConEmu statt in cmd gestartet.

Installation

An not­wen­di­ger Software haben wir nun also die fol­gen­de zusammengetragen:

  • Einen brauch­ba­ren Texteditor.
  • Eine brauch­ba­re Konsole (optio­nal, je nach System und Texteditor).
  • GhostText (die jewei­li­ge Browsererweiterung).
  • It’s All Ghosts.
  • Python 3 (für It’s All Ghosts).

Ich gehe im Folgenden davon aus, dass mei­ne obi­gen Empfehlungen wenig­stens teil­wei­se berück­sich­tigt wer­den. Unter Windows bie­tet es sich an, bei die­ser Gelegenheit, sofern noch nicht gesche­hen, das her­vor­ra­gen­de Chocolatey zu instal­lie­ren, denn das macht die Installation der übri­gen Software etwas weni­ger auf­wen­dig - der Administrator muss anschlie­ßend zur Installation von micro, ConEmu und Python nur noch fol­gen­den Befehl ein­tip­pen oder -kopieren:

$ cinst micro conemu python3

Andere Konsolen und Texteditoren sind nach Belieben auf ähn­li­che Weise zu instal­lie­ren. Ansonsten spricht außer etwas mehr Aufwand auch nichts gegen eine hän­di­sche Installation der gewünsch­ten Komponenten.

Einrichtung

It’s All Ghosts ist ein nicht beson­ders unge­wöhn­li­ches Python-3-Paket und lässt sich auch als ein sol­ches installieren:

$ pip install ItsAllGhosts

Wenn das nur einen Fehler aus­gibt, könn­te pip3 ein bes­ser funk­tio­nie­ren­der Befehl sein:

$ pip3 install ItsAllGhosts

Sofern Chocolatey instal­liert ist, genügt jetzt refres­henv, anson­sten soll­te (unter Windows) die Konsole ein­mal neu gestar­tet wer­den, um die neu­en Pfade zu fin­den. Anschließend soll­te der Befehl its­allghosts zur Verfügung stehen.

It’s All Ghosts ver­sucht stan­dard­mä­ßig Notepad++ (Windows) oder uxterm mit nano (Unix, Linux, BSD) zu benut­zen. Dieses Verhalten lässt sich ändern, indem man eine eige­ne Konfigurationsdatei schreibt.

Windows

Es ist unter C:\Users\<Benutzer>\.config\ - gege­be­nen­falls mit­tels echo %XDG_CONFIG_HOME% vor­her prü­fen, ob der Ordner expli­zit woan­ders liegt, nor­ma­ler­wei­se soll­te das aber nicht der Fall sein - eine neue Datei namens itsallghosts.cmd anzu­le­gen, die den gewünsch­ten Editor auf­ruft. Für micro sieht das zum Beispiel so aus:

micro "%*"

It’s All Ghosts ersetzt %* durch den Pfad zu der tem­po­rä­ren Datei, die ange­legt und bear­bei­tet wird - Anführungszeichen sind (wegen mög­li­cher Leerzeichen) hier also durch­aus zu empfehlen.

Unix, Linux, BSD

Es ist unter ~/.config - gege­be­nen­falls mit­tels echo $XDG_CONFIG_HOME vor­her prü­fen, ob der Ordner expli­zit woan­ders liegt, nor­ma­ler­wei­se soll­te das aber nicht der Fall sein - eine neue Datei namens itsallghosts_cmd anzu­le­gen, die den gewünsch­ten Editor in der gewünsch­ten Konsole auf­ruft. Für micro in einer KDE-Konsole sieht das zum Beispiel so aus:

exec konsole – separate -e micro "$*"

Ich habe das jetzt nicht gete­stet, gehe aber davon aus, dass ich kei­nen völ­li­gen Unsinn geschrie­ben habe. It’s All Ghosts ersetzt $* durch den Pfad zu der tem­po­rä­ren Datei, die ange­legt und bear­bei­tet wird - Anführungszeichen sind (wegen mög­li­cher Leerzeichen) hier also durch­aus zu empfehlen.

Nutzung

its­allghosts stellt auf Port 4001 eine Schnittstelle zu dem ein­ge­stell­ten Editor bereit, die übli­che GhostText-Erweiterung soll­te also in der Lage sein, mit ihm zu kom­mu­ni­zie­ren. Hierfür soll­ten, sofern nie­mand einen Fehler gemacht hat, nach dem Start der Anwendung ein Klick auf das GhostText-Symbol im Browser und eine Auswahl des gewünsch­ten Textfeldes, das dann einen hell­blau „schim­mern­den“ Rand bekommt, genügen.

GhostText (vorher)

Hat man das Textfeld aus­rei­chend gefüllt, kann die Datei gespei­chert (Strg-S) und der Texteditor geschlos­sen (Strg-Q) wer­den. Die Inhalte soll­ten anschlie­ßend im Browser zu sehen sein.

GhostText (nachher)

Das war alles!

Fragen, Anmerkungen, Korrekturen und/oder Lobhudelei sind auch dies­mal gern gesehen.

Senfecke:

  1. Wow, recht herz­li­chen Dank fuer den aus­fuehr­li­chen Text.
    Ich hab vie­le Dinge ken­nen­ge­lernt die ich noch nicht kann­te (unter ande­rem auch Choloatey und Poe.

    Dein Beitrag bie­tet vie­le inter­es­san­te Facetten und Links an um sich dem Problem zu wid­men. Selbiges wird ein­gangs deut­lich erklaert.

    Was ich schrei­ben moech­te. Ich habe schon lan­ge nicht mehr einen solch schoe­nen Beitrag gele­sen. Ich mer­ke wie viel Zeit und Muehe du in dei­nen Text gesteckt hast, dankeschoen.

  2. Was spricht gegen: Editor/Textverareibtung star­ten, Text schrei­ben (ggf. manu­ell oder auto­ma­tisch sichern), Strg+a, Strg+c, Strg+v im Textfeld des Browsers?

  3. Die furcht­bar­ste Idee ist es aller­dings, der Deutschen IT sol­che Probleme und deren Lösungen an und in die Hand zu geben. Das Resultat wird sich von Dachau kaum unter­schei­den las­sen. FAIL! WTF Arrrrr!

    • Was soll die­ser stumpf­sin­ni­ge Vergleich? Provokation oder woll­test Du uns wirk­lich etwas mitteilen?

Comments are closed.

:) 
:D 
:( 
:o 
8O 
:? 
8) 
:lol: 
:x 
:aufsmaul: 
mehr...
 

Erlaubte Tags:
<strong> <em> <pre> <code> <a href="" title=""> <img src="" title="" alt=""> <blockquote> <q> <b> <i> <del> <span style=""> <strike>

Datenschutzhinweis: Ihre IP-Adresse wird nicht gespeichert. Details finden Sie hier.