{"id":14220,"date":"2018-07-30T20:37:12","date_gmt":"2018-07-30T18:37:12","guid":{"rendered":"https:\/\/tuxproject.de\/blog\/?p=14220"},"modified":"2018-10-14T01:44:53","modified_gmt":"2018-10-13T23:44:53","slug":"kein-spuk-texte-im-web-sicherer-tippen-mit-ghosttext","status":"publish","type":"post","link":"https:\/\/tuxproject.de\/blog\/2018\/07\/kein-spuk-texte-im-web-sicherer-tippen-mit-ghosttext\/","title":{"rendered":"Kein Spuk: Texte im Web sicherer tippen mit GhostText."},"content":{"rendered":"<p>Wenn man den Feh\u00adler macht, den Heils\u00adver\u00adspre\u00adchun\u00adgen derer, die am lieb\u00adsten das kom\u00adplet\u00adte Betriebs\u00adsy\u00adstem <a href=\"https:\/\/tuxproject.de\/blog\/2014\/10\/tore-zum-mistmachweb\/\">in den Web\u00adbrow\u00adser<\/a> schie\u00adben w\u00fcr\u00adden, zu glau\u00adben, wird man grund\u00ads\u00e4tz\u00adlich im unpas\u00adsend\u00adsten Moment dar\u00adan erin\u00adnert, war\u00adum das eine furcht\u00adba\u00adre Idee ist: Ver\u00adab\u00adschie\u00addet sich der Web\u00adbrow\u00adser, ver\u00adab\u00adschie\u00addet sich auch alles, was man gera\u00adde for\u00admu\u00adliert hat. Wenn sich die eige\u00adnen Bei\u00adtr\u00e4\u00adge im Web nicht gera\u00adde auf Hash\u00adtag\u00adwel\u00adlen auf Insta\u00adgram oder gram\u00adma\u00adti\u00adka\u00adlisch nicht emp\u00adfeh\u00adlens\u00adwer\u00adte Kurz\u00adtex\u00adte auf Twit\u00adter beschr\u00e4n\u00adken, dann k\u00f6nn\u00adte das unter Umst\u00e4n\u00adden eher unan\u00adge\u00adnehm wer\u00adden. Wer tippt schon gern \u00fcber Stun\u00adden \u2013 wenn nicht: Tage, gar Wochen \u2013 aus\u00adge\u00adfeil\u00adte Tex\u00adte gern ein zwei\u00adtes Mal von vorn?<\/p>\n<p><!--more--><\/p>\n<p>Eini\u00adge \u201eWeb\u00adan\u00adwen\u00addun\u00adgen\u201c \u2013 <em>allein das Wort schon!<\/em> \u2013 ver\u00adsu\u00adchen die\u00adsem selbst ver\u00adur\u00adsach\u00adten Pro\u00adblem inzwi\u00adschen ent\u00adge\u00adgen\u00adzu\u00adwir\u00adken; die Foren\u00adsoft\u00adware <em>Xen\u00adFo\u00adro<\/em> und die Blog\u00adsoft\u00adware <em>Word\u00adPress<\/em> etwa spei\u00adchern den Bei\u00adtrag, den man gera\u00adde tippt, in kur\u00adzen Abst\u00e4n\u00adden in einem Zwi\u00adschen\u00adspei\u00adcher, nach einem Neu\u00adstart des Systems ist somit wenig\u00adstens ein Gro\u00df\u00adteil des Geschrie\u00adbe\u00adnen noch nicht ver\u00adlo\u00adren. Dass die Zuver\u00adl\u00e4s\u00adsig\u00adkeit also vom Dienst selbst abh\u00e4ngt, hat in der Ver\u00adgan\u00adgen\u00adheit diver\u00adse Ent\u00adwick\u00adler zum Pro\u00adgram\u00admie\u00adren von Brow\u00adser\u00ader\u00adwei\u00adte\u00adrun\u00adgen ver\u00adan\u00adlasst, etwa <a href=\"https:\/\/addons.mozilla.org\/de\/firefox\/addon\/textarea-cache\/\"><em>Text\u00adarea Cache<\/em><\/a>, das sich die Inhal\u00adte von Text\u00adfel\u00addern w\u00e4h\u00adrend des Schrei\u00adbens \u201emerkt\u201c und das Gemerk\u00adte f\u00fcr sp\u00e4\u00adte\u00adre Sit\u00adzun\u00adgen vor\u00adhal\u00adten kann. Die inzwi\u00adschen <a href=\"https:\/\/github.com\/docwhat\/itsalltext\">ein\u00adge\u00adstell\u00adte<\/a> Fire\u00adfo\u00adxer\u00adwei\u00adte\u00adrung <em>It\u2019s All Text!<\/em> ging sogar noch einen Schritt wei\u00adter und ver\u00adkn\u00fcpf\u00adte den jeweils bevor\u00adzug\u00adten Text\u00adedi\u00adtor direkt mit die\u00adsen Text\u00adfel\u00addern, so dass man den Text im Brow\u00adser nur noch abschicken muss\u00adte. Seit Fire\u00adfox kaum noch <a href=\"https:\/\/tuxproject.de\/blog\/2017\/02\/chromefox-ende\/\">von Chro\u00adme zu unter\u00adschei\u00adden<\/a> ist, ist das aber vor\u00adbei.<\/p>\n<p>Wohl dem, der recht\u00adzei\u00adtig f\u00fcr Ersatz gesorgt hat. Wohl dem, der <a href=\"https:\/\/github.com\/GhostText\/GhostText\">Ghost\u00adText<\/a> kennt.<\/p>\n<p><b>Was macht Ghost\u00adText denn \u00fcber\u00adhaupt?<\/b><\/p>\n<p>Ghost\u00adText erm\u00f6g\u00adlicht eine Anbin\u00addung jedes Text\u00adedi\u00adtors an den Web\u00adbrow\u00adser (sofern die\u00adser Web\u00adbrow\u00adser Chro\u00adme, Fire\u00adfox oder Ope\u00adra ist \u2013 ande\u00adre auf Chro\u00admi\u00adum basie\u00adren\u00adde Web\u00adbrow\u00adser k\u00f6n\u00adnen, m\u00fcs\u00adsen aber nicht, auch funk\u00adtio\u00adnie\u00adren). Hier\u00adf\u00fcr kom\u00admu\u00adni\u00adziert es nach der Aus\u00adwahl eines Text\u00adfelds per <a href=\"https:\/\/de.wikipedia.org\/wiki\/WebSocket\">Web\u00adSocket<\/a> mit belie\u00adbi\u00adgen Anwen\u00addun\u00adgen, die einen geeig\u00adne\u00adten Ser\u00adver auf Port 4001 bereit\u00adstel\u00adlen k\u00f6n\u00adnen. Mit die\u00adsen Anwen\u00addun\u00adgen tauscht Ghost\u00adText der\u00adzeit (sofern jeweils vor\u00adhan\u00adden) den Titel, den URL, den Inhalt und die Cur\u00adsor\u00adauswahl des Text\u00adfelds aus. Das Pro\u00adto\u00adkoll ist <a href=\"https:\/\/github.com\/GhostText\/GhostText\/blob\/master\/PROTOCOL.md\">auf Git\u00adHub<\/a> doku\u00admen\u00adtiert.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/ghosttext.gif\" alt width=\"458\" height=\"515\" class=\"alignnone size-full wp-image-14221\"><\/p>\n<p>Die\u00adse Tech\u00adnik funk\u00adtio\u00adniert <em>nat\u00fcr\u00adlich<\/em> vor allem in Ver\u00adbin\u00addung mit einem Text\u00adedi\u00adtor gut.<\/p>\n<p><b>Aber wel\u00adcher Text\u00adedi\u00adtor?<\/b><\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/sam.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/sam-120x92.png\" alt=\"Die zweitsch\u00f6nste Art von Pornografie: Screenshots von Texteditoren.\" title=\"Die zweitsch\u00f6nste Art von Pornografie: Screenshots von Texteditoren.\" width=\"120\" height=\"92\" class=\"alignright size-thumbnail wp-image-14222\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/sam-120x92.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/sam-300x229.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/sam-197x150.png 197w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/sam.png 729w\" sizes=\"auto, (max-width: 120px) 100vw, 120px\"><\/a>\u00dcber die Fra\u00adge, wel\u00adchen Text\u00adedi\u00adtor ich emp\u00adfeh\u00adlen kann und war\u00adum man nicht statt\u00addes\u00adsen einen ande\u00adren neh\u00admen soll\u00adte, k\u00f6nn\u00adte ich B\u00fccher oder wenig\u00adstens Bild\u00adschirm\u00adsei\u00adten f\u00fcl\u00adlen. Als ich das aber zuletzt ver\u00adsucht habe, habe ich es <a href=\"https:\/\/tuxproject.de\/blog\/2017\/05\/vims-vielfalt-ist-sein-untergang\">weni\u00adge Jah\u00adre sp\u00e4\u00adter<\/a> bereut. Auch ich selbst neh\u00adme l\u00e4ngst davon Abstand, einen bestimm\u00adten Text\u00adedi\u00adtor als das Ma\u00df aller Din\u00adge zu begrei\u00adfen; die\u00adsen Text etwa schrei\u00adbe ich in <a href=\"https:\/\/github.com\/deadpixi\/sam\">dead\u00adpi\u00adxis <em>sam<\/em><\/a>, weil mir <em>gera\u00adde danach ist<\/em>, und h\u00e4t\u00adte ich f\u00fcnf Minu\u00adten sp\u00e4\u00adter ange\u00adfan\u00adgen, so h\u00e4t\u00adte ich viel\u00adleicht einen ande\u00adren benutzt. Ich benut\u00adze der\u00adzeit mehr oder weni\u00adger regel\u00adm\u00e4\u00ad\u00dfig sechs ver\u00adschie\u00adde\u00adne Text\u00adedi\u00adto\u00adren f\u00fcr unter\u00adschied\u00adli\u00adche Zwecke, gele\u00adgent\u00adlich kom\u00admen auch mal ein sieb\u00adter und ein ach\u00adter hin\u00adzu.<\/p>\n<p><em>Eigent\u00adlich<\/em> spricht nichts dage\u00adgen, zum erst\u00adbe\u00adsten Text\u00adedi\u00adtor, und sei\u2019s <tt>ed<\/tt>, zu grei\u00adfen, prak\u00adtisch hin\u00adge\u00adgen ist das unter Umst\u00e4n\u00adden mit Kom\u00adfort\u00adver\u00adlust ver\u00adbun\u00adden, denn Ghost\u00adText selbst kennt zwei Arten der Ver\u00adbin\u00addung. Der Ent\u00adwick\u00adler wirbt momen\u00adtan mit der Echt\u00adzeit\u00adver\u00adsi\u00adon, hier\u00adf\u00fcr ben\u00f6\u00adtigt man einen der unter\u00adst\u00fctz\u00adten Text\u00adedi\u00adto\u00adren \u2013 das sind der\u00adzeit <strong>Sub\u00adli\u00adme Text<\/strong>, <strong>Atom<\/strong>, <strong>Visu\u00adal Stu\u00addio Code<\/strong>, <strong>Vim<\/strong>, <strong>Neo\u00adVim<\/strong>, <strong>GNU Emacs<\/strong> und sogar <strong>Acme<\/strong> \u2013 und die jeweils pas\u00adsen\u00adde Erwei\u00adte\u00adrung. Der Rest funk\u00adtio\u00adniert, je nach Edi\u00adtor, meist weit\u00adge\u00adhend auto\u00adma\u00adtisch, wie ich in einem kur\u00adzen Test mit der GNU-Emacs-Ver\u00adsi\u00adon fest\u00adge\u00adstellt habe. Die wei\u00adte\u00adre Lek\u00adt\u00fc\u00adre mei\u00adnes fol\u00adgen\u00adden Geschwalls w\u00e4re in die\u00adsem Fall ohne ersicht\u00adli\u00adchen Mehr\u00adwert. Bevor\u00adzugt man jedoch einen ande\u00adren Text\u00adedi\u00adtor, so soll man zu <a href=\"https:\/\/edugit.org\/nik\/itsallghosts\"><em>It\u2019s All Ghosts<\/em><\/a> grei\u00adfen.<\/p>\n<p>Tut man das, so ist die Wahl des Text\u00adedi\u00adtors v\u00f6l\u00adlig egal, unter\u00adst\u00fctzt wird wohl jeder, der Datei\u00adna\u00admen als Auf\u00adruf\u00adpa\u00adra\u00adme\u00adter akzep\u00adtiert. Der benut\u00adzer\u00adsei\u00adti\u00adge Unter\u00adschied zu den offi\u00adzi\u00adel\u00adlen und halb\u00adof\u00adfi\u00adzi\u00adel\u00adlen Edi\u00adtor\u00adplug\u00adins ist, dass <em>It\u2019s All Ghosts<\/em> sich, daher wohl der Name, bei\u00adna\u00adhe wie das gute alte <em>It\u2019s All Text!<\/em> ver\u00adh\u00e4lt: Es gibt kei\u00adne Live\u00adak\u00adtua\u00adli\u00adsie\u00adrung, statt\u00addes\u00adsen wird der Text erst in den Web\u00adbrow\u00adser \u00fcber\u00adnom\u00admen, wenn der Edi\u00adtor been\u00addet wird. Das wird erst dann zu einem Pro\u00adblem, wenn der Text\u00adedi\u00adtor (oder der Com\u00adpu\u00adter) selbst abst\u00fcrzt und kein Back\u00adup der aktu\u00adel\u00adlen Edi\u00adtor\u00adsit\u00adzung vor\u00adliegt. In dem Fall emp\u00adfeh\u00adle ich einen ande\u00adren Text\u00adedi\u00adtor oder ein ver\u00adn\u00fcnf\u00adti\u00adges Ma\u00df an Fata\u00adlis\u00admus und\/oder Sar\u00adkas\u00admus. Da es sich mir nicht erschlie\u00dft, war\u00adum man f\u00fcr das Bear\u00adbei\u00adten von blo\u00ad\u00dfem Text unbe\u00addingt eine gra\u00adfi\u00adsche Ober\u00adfl\u00e4\u00adche haben muss, spricht wenig\u00adstens f\u00fcr die\u00adsen Anwen\u00addungs\u00adfall nichts gegen einen kon\u00adso\u00adlen\u00adba\u00adsier\u00adten Edi\u00adtor. Ein sol\u00adcher ist zumeist noch immer kom\u00adfor\u00adta\u00adbler zu benut\u00adzen als eine <tt>text\u00adarea<\/tt>, wenn man sich nicht gera\u00adde mit <a href=\"https:\/\/github.com\/akahuku\/wasavi\">wei\u00adte\u00adren Brow\u00adser\u00ader\u00adwei\u00adte\u00adrun\u00adgen<\/a> behel\u00adfen m\u00f6ch\u00adte, und belegt anders als \u201emoder\u00adne\u201c Alter\u00adna\u00adti\u00adven nur weni\u00adge System\u00adres\u00adsour\u00adcen. Davon kann man bekannt\u00adlich nie genug haben.<\/p>\n<p>Wenn man nicht gera\u00adde Win\u00addows nutzt (denn unter Win\u00addows ist sei\u00adne Unter\u00adst\u00fct\u00adzung f\u00fcr die Kom\u00adman\u00addo\u00adzei\u00adle noch eher mau), aber sich f\u00fcr unge\u00adwohn\u00adte Kon\u00adzep\u00adte begei\u00adstern kann, k\u00f6nn\u00adte <a href=\"https:\/\/github.com\/prodhe\/poe\"><em>poe<\/em><\/a> einen Blick wert sein, ein nicht \u00fcbler Nach\u00adbau des Text\u00adedi\u00adtors <a href=\"http:\/\/acme.cat-v.org\">Acme<\/a>, der sich eben\u00adso wie sein Vor\u00adbild kom\u00adplett mit der Maus bedie\u00adnen l\u00e4sst. Ich h\u00f6r\u00adte, das wer\u00adde von vie\u00adlen Men\u00adschen als Vor\u00adteil ver\u00adstan\u00adden. Anson\u00adsten habe ich den tasta\u00adtur\u00adfreund\u00adli\u00adchen Edi\u00adtor <a href=\"https:\/\/micro-editor.github.io\"><em>micro<\/em><\/a> als <em>gut genug<\/em> bedien\u00adbar wahr\u00adge\u00adnom\u00admen. Wer \u2013 wie ich \u2013 <tt>cmd<\/tt> nicht \u00fcber\u00adm\u00e4\u00ad\u00dfig gut lei\u00adden kann, der m\u00f6ge, da <a href=\"https:\/\/tuxproject.de\/blog\/2011\/03\/console2-und-pycmd-cmd-fur-fortgeschrittene\/\">Console2<\/a> anschei\u00adnend nicht mehr gepflegt wird, sich ein\u00admal <a href=\"https:\/\/conemu.github.io\">ConE\u00admu<\/a> anse\u00adhen, das sich auch <a href=\"https:\/\/conemu.github.io\/en\/DefaultTerminal.html\">als System\u00adstan\u00addard set\u00adzen<\/a> l\u00e4sst; <em>micro<\/em> wird dann auto\u00adma\u00adtisch in ConE\u00admu statt in <tt>cmd<\/tt> gestar\u00adtet.<\/p>\n<p><b>Instal\u00adla\u00adti\u00adon<\/b><\/p>\n<p>An not\u00adwen\u00addi\u00adger Soft\u00adware haben wir nun also die fol\u00adgen\u00adde zusam\u00admen\u00adge\u00adtra\u00adgen:<\/p>\n<ul>\n<li>Einen brauch\u00adba\u00adren Text\u00adedi\u00adtor.<\/li>\n<li>Eine brauch\u00adba\u00adre Kon\u00adso\u00adle (optio\u00adnal, je nach System und Text\u00adedi\u00adtor).<\/li>\n<li>Ghost\u00adText (die jewei\u00adli\u00adge Brow\u00adser\u00ader\u00adwei\u00adte\u00adrung).<\/li>\n<li><em>It\u2019s All Ghosts<\/em>.<\/li>\n<li>Python 3 (f\u00fcr <em>It\u2019s All Ghosts<\/em>).<\/li>\n<\/ul>\n<p>Ich gehe im Fol\u00adgen\u00adden davon aus, dass mei\u00adne obi\u00adgen Emp\u00adfeh\u00adlun\u00adgen wenig\u00adstens teil\u00adwei\u00adse ber\u00fcck\u00adsich\u00adtigt wer\u00adden. Unter Win\u00addows bie\u00adtet es sich an, bei die\u00adser Gele\u00adgen\u00adheit, sofern noch nicht gesche\u00adhen, das her\u00advor\u00adra\u00adgen\u00adde <a href=\"https:\/\/chocolatey.org\">Cho\u00adco\u00adla\u00adtey<\/a> zu instal\u00adlie\u00adren, denn das macht die Instal\u00adla\u00adti\u00adon der \u00fcbri\u00adgen Soft\u00adware etwas weni\u00adger auf\u00adwen\u00addig \u2013 der Admi\u00adni\u00adstra\u00adtor muss anschlie\u00ad\u00dfend zur Instal\u00adla\u00adti\u00adon von <em>micro<\/em>, ConE\u00admu und Python nur noch fol\u00adgen\u00adden Befehl ein\u00adtip\u00adpen oder \u2011kopie\u00adren:<\/p>\n<pre>$ cinst micro conemu python3<\/pre>\n<p>Ande\u00adre Kon\u00adso\u00adlen und Text\u00adedi\u00adto\u00adren sind nach Belie\u00adben auf \u00e4hn\u00adli\u00adche Wei\u00adse zu instal\u00adlie\u00adren. Anson\u00adsten spricht au\u00dfer etwas mehr Auf\u00adwand auch nichts gegen eine h\u00e4n\u00addi\u00adsche Instal\u00adla\u00adti\u00adon der gew\u00fcnsch\u00adten Kom\u00adpo\u00adnen\u00adten.<\/p>\n<p><b>Ein\u00adrich\u00adtung<\/b><\/p>\n<p><em>It\u2019s All Ghosts<\/em> ist ein nicht beson\u00adders unge\u00adw\u00f6hn\u00adli\u00adches Python-3-Paket und l\u00e4sst sich auch als ein sol\u00adches instal\u00adlie\u00adren:<\/p>\n<pre>$ pip install ItsAllGhosts<\/pre>\n<p>Wenn das nur einen Feh\u00adler aus\u00adgibt, k\u00f6nn\u00adte <tt>pip3<\/tt> ein bes\u00adser funk\u00adtio\u00adnie\u00adren\u00adder Befehl sein:<\/p>\n<pre>$ pip3 install ItsAllGhosts<\/pre>\n<p>Sofern Cho\u00adco\u00adla\u00adtey instal\u00adliert ist, gen\u00fcgt jetzt <tt>refres\u00adhenv<\/tt>, anson\u00adsten soll\u00adte (unter Win\u00addows) die Kon\u00adso\u00adle ein\u00admal neu gestar\u00adtet wer\u00adden, um die neu\u00aden Pfa\u00adde zu fin\u00adden. Anschlie\u00ad\u00dfend soll\u00adte der Befehl <tt>its\u00adallg\u00adhosts<\/tt> zur Ver\u00adf\u00fc\u00adgung ste\u00adhen.<\/p>\n<p><em>It\u2019s All Ghosts<\/em> ver\u00adsucht <a href=\"https:\/\/edugit.org\/nik\/itsallghosts\/blob\/master\/itsallghosts\/__init__.py#L55\">stan\u00addard\u00adm\u00e4\u00ad\u00dfig<\/a> <em>Note\u00adpad++<\/em> (Win\u00addows) oder <tt>uxterm<\/tt> mit <em>nano<\/em> (Unix, Linux, BSD) zu benut\u00adzen. Die\u00adses Ver\u00adhal\u00adten l\u00e4sst sich \u00e4ndern, indem man eine eige\u00adne Kon\u00adfi\u00adgu\u00adra\u00adti\u00adons\u00adda\u00adtei schreibt.<\/p>\n<p><u>Win\u00addows<\/u><\/p>\n<p>Es ist unter <tt>C:\\Users\\&lt;Benutzer&gt;\\.config\\<\/tt> \u2013 gege\u00adbe\u00adnen\u00adfalls mit\u00adtels <tt>echo %XDG_CONFIG_HOME%<\/tt> vor\u00adher pr\u00fc\u00adfen, ob der Ord\u00adner expli\u00adzit woan\u00adders liegt, nor\u00adma\u00adler\u00adwei\u00adse soll\u00adte das aber nicht der Fall sein \u2013 eine neue Datei namens <tt>itsallghosts.cmd<\/tt> anzu\u00adle\u00adgen, die den gew\u00fcnsch\u00adten Edi\u00adtor auf\u00adruft. F\u00fcr <tt>micro<\/tt> sieht das zum Bei\u00adspiel so aus:<\/p>\n<p><code>micro \"%*\"<\/code><\/p>\n<p><em>It\u2019s All Ghosts<\/em> ersetzt <tt>%*<\/tt> durch den Pfad zu der tem\u00adpo\u00adr\u00e4\u00adren Datei, die ange\u00adlegt und bear\u00adbei\u00adtet wird \u2013 Anf\u00fch\u00adrungs\u00adzei\u00adchen sind (wegen m\u00f6g\u00adli\u00adcher Leer\u00adzei\u00adchen) hier also durch\u00adaus zu emp\u00adfeh\u00adlen.<\/p>\n<p><u>Unix, Linux, BSD<\/u><\/p>\n<p>Es ist unter <tt>~\/.config<\/tt> \u2013 gege\u00adbe\u00adnen\u00adfalls mit\u00adtels <tt>echo $XDG_CONFIG_HOME<\/tt> vor\u00adher pr\u00fc\u00adfen, ob der Ord\u00adner expli\u00adzit woan\u00adders liegt, nor\u00adma\u00adler\u00adwei\u00adse soll\u00adte das aber nicht der Fall sein \u2013 eine neue Datei namens <tt>itsallghosts_cmd<\/tt> anzu\u00adle\u00adgen, die den gew\u00fcnsch\u00adten Edi\u00adtor in der gew\u00fcnsch\u00adten Kon\u00adso\u00adle auf\u00adruft. F\u00fcr <tt>micro<\/tt> in einer KDE-<em>Kon\u00adso\u00adle<\/em> sieht das zum Bei\u00adspiel so aus:<\/p>\n<p><code>exec konsole --separate -e micro \"$*\"<\/code><\/p>\n<p>Ich habe das jetzt nicht gete\u00adstet, gehe aber davon aus, dass ich kei\u00adnen v\u00f6l\u00adli\u00adgen Unsinn geschrie\u00adben habe. <em>It\u2019s All Ghosts<\/em> ersetzt <tt>$*<\/tt> durch den Pfad zu der tem\u00adpo\u00adr\u00e4\u00adren Datei, die ange\u00adlegt und bear\u00adbei\u00adtet wird \u2013 Anf\u00fch\u00adrungs\u00adzei\u00adchen sind (wegen m\u00f6g\u00adli\u00adcher Leer\u00adzei\u00adchen) hier also durch\u00adaus zu emp\u00adfeh\u00adlen.<\/p>\n<p><b>Nut\u00adzung<\/b><\/p>\n<p><tt>its\u00adallg\u00adhosts<\/tt> stellt auf Port 4001 eine Schnitt\u00adstel\u00adle zu dem ein\u00adge\u00adstell\u00adten Edi\u00adtor bereit, die \u00fcbli\u00adche Ghost\u00adText-Erwei\u00adte\u00adrung soll\u00adte also in der Lage sein, mit ihm zu kom\u00admu\u00adni\u00adzie\u00adren. Hier\u00adf\u00fcr soll\u00adten, sofern nie\u00admand einen Feh\u00adler gemacht hat, nach dem Start der Anwen\u00addung ein Klick auf das Ghost\u00adText-Sym\u00adbol im Brow\u00adser und eine Aus\u00adwahl des gew\u00fcnsch\u00adten Text\u00adfel\u00addes, das dann einen hell\u00adblau \u201eschim\u00admern\u00adden\u201c Rand bekommt, gen\u00fc\u00adgen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-vorher.png\" alt=\"GhostText (vorher)\" width=\"676\" height=\"519\" class=\"alignnone size-full wp-image-14228\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-vorher.png 676w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-vorher-120x92.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-vorher-300x230.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-vorher-195x150.png 195w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\"><\/p>\n<p>Hat man das Text\u00adfeld aus\u00adrei\u00adchend gef\u00fcllt, kann die Datei gespei\u00adchert (<tt>Strg\u2011S<\/tt>) und der Text\u00adedi\u00adtor geschlos\u00adsen (<tt>Strg\u2011Q<\/tt>) wer\u00adden. Die Inhal\u00adte soll\u00adten anschlie\u00ad\u00dfend im Brow\u00adser zu sehen sein.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-nachher.png\" alt=\"GhostText (nachher)\" width=\"703\" height=\"570\" class=\"alignnone size-full wp-image-14227\" srcset=\"https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-nachher.png 703w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-nachher-120x97.png 120w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-nachher-300x243.png 300w, https:\/\/tuxproject.de\/blog\/wp-content\/uploads\/2018\/07\/GhostText-nachher-185x150.png 185w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\"><\/p>\n<p>Das war alles!<\/p>\n<p>Fra\u00adgen, Anmer\u00adkun\u00adgen, Kor\u00adrek\u00adtu\u00adren und\/oder Lob\u00adhu\u00adde\u00adlei sind auch dies\u00admal gern gese\u00adhen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn man den Feh\u00adler macht, den Heils\u00adver\u00adspre\u00adchun\u00adgen derer, die am lieb\u00adsten das kom\u00adplet\u00adte Betriebs\u00adsy\u00adstem in den Web\u00adbrow\u00adser schie\u00adben w\u00fcr\u00adden, zu glau\u00adben, wird man grund\u00ads\u00e4tz\u00adlich im unpas\u00adsend\u00adsten Moment dar\u00adan erin\u00adnert, war\u00adum das eine furcht\u00adba\u00adre Idee ist: Ver\u00adab\u00adschie\u00addet sich der Web\u00adbrow\u00adser, ver\u00adab\u00adschie\u00addet sich auch alles, was man gera\u00adde for\u00admu\u00adliert hat. Wenn sich die eige\u00adnen Bei\u00adtr\u00e4\u00adge im Web \u2026<\/p>\n<p><a href=\"https:\/\/tuxproject.de\/blog\/2018\/07\/kein-spuk-texte-im-web-sicherer-tippen-mit-ghosttext\/\" class=\"more-link\">\u2018Kein Spuk: Tex\u00adte im Web siche\u00adrer tip\u00adpen mit Ghost\u00adText.\u2019 wei\u00adter\u00adle\u00adsen \u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[19],"tags":[],"series":[],"class_list":["post-14220","post","type-post","status-publish","format-standard","hentry","category-nerdkrams"],"share_on_mastodon":{"url":"","error":""},"wp-worthy-pixel":{"ignored":false,"public":null,"server":null,"url":null},"wp-worthy-type":"normal","_links":{"self":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/14220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/comments?post=14220"}],"version-history":[{"count":0,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/posts\/14220\/revisions"}],"wp:attachment":[{"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/media?parent=14220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/categories?post=14220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/tags?post=14220"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/tuxproject.de\/blog\/wp-json\/wp\/v2\/series?post=14220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}