Drei Dinge, die ich schon immer mal machen wollte
Es gibt so Dinge, die einen unterschwellig nerven oder stören, aber nicht so schlimm sind, dass man sich ernsthaft damit auseinandersetzen will. Und wenn man dann zufällig über eine total einfach umzusetzende Lösung stolpert, fragt man sich rückwirkend, warum man sich da nicht schon mal ein paar Jahre früher drum gekümmert hat.
Hier geht es um drei solche Dinge:
URL-Selektion im xterm
Ich benutze xterm als Terminalemulator, weil der etwas fluffiger reagiert als andere Programme, da er nicht durch fünf verschiedene GUI-Frameworks hindurch hantiert, sondern direkt das X11-Protokoll spricht.[1] Außerdem kann xterm alles, was ich brauche und ich habe mich dran gewöhnt.
Worauf ich ein wenig neidisch war, sind andere Terminalemulatoren, bei denen man URLs anklicken kann, so dass sie sich im Browser öffnen. In xterm muss ich eine URL mit der Maus markieren, so dass sie in der Zwischenablage landet, damit ich sie dann im Browser einfügen kann.[2]
Das hat mich soweit genervt, dass ich das schon zwei Mal etwas optimiert habe:
- Ich habe mir tatsächlich einen eigenen, nicht mehr so flotten Terminalemulator geschrieben, um dort die RegExp zur URL-Erkennung so anzupassen, dass ich die ganze URL einfach per Doppelklick markieren kann.
- Einige Zeit später habe ich dann herausgefunden, dass ich die RegExp auch für xterm anpassen kann.
So war das jetzt jahrelang.
Dann hat Onli bei sich im Blog diesen tollen Artikel über xterm-Konfiguration verlinkt, wo unter anderem eine Methode beschrieben wird, wie man einen URL-Selektor für xterm bauen kann: xterm kann den aktuellen Terminal-Inhalt „ausdrucken“, indem es ihn an ein Skript oder Binary verfüttert. Dort greppt man dann alle URLs raus, lässt den User eine auswählen und ruft damit den Browser auf. Cooler Hack!
Da es bei langen URLs sinnvoll ist, eine vertikale Auswahl bereitzustellen, habe ich dafür extra rofi installiert (das gibt’s auch in Debian) – bisher habe ich das ähnliche dmenu als Programmstarter benutzt, aber das bietet nur eine horizontale Auswahl.
Die URL-Auswahl war einfach einzurichten und funktionierte auf Anhieb.
Vielleicht baue ich mir fürs IRC in irssi noch eine Sonderfunktion, die die Reihenfolge der URLs umdreht: Der URL-Selektor zeigt die URLs in der Reihenfolge an, wie sie im Terminal stehen. Im Chat steht aber die neueste (und interessanteste) URL ganz unten. Mein Plan ist, die Reihenfolge der URLs umzudrehen, wenn ich erkenne, dass der „Screenshot“ aus einem irssi kommt (z.B. anhand der Statusleiste). Andererseits verwirrt es mich vielleicht, wenn die Reihenfolge der URLs mal sorum und mal andersherum ist, das müsste ich ausprobieren und beobachten.
weitere Dinge im xterm
Der Artikel enthält weitere Konfigurationen für:
- Styling
- Fonts und ähnliches, das habe ich aber schon für mich passend konfiguriert. Ich bin inzwischen tatsächlich von Bitmap-Fonts weg und nutze TrueType. (Vermutlich erzeugt das auch wieder ein klein wenig zusätzliche Latenz.)
- Alternate Screen
- xterm unterstützt mehrere Screens: während z.B. less oder vi laufen, belegen sie den kompletten Bildschirm. Wenn man sie beendet, erscheint wieder der Shellprompt von vorher. Mit einer Tastenkombination kann man den Screen umschalten und aus dem laufenden Programm mal kurz auf die Kommandozeile zurückgucken. Klingt nett, aber habe ich noch nie vermisst.
- Copy/Paste ins Clipboard statt die Selection
- Manchmal verheddere ich mich in den verschiedenen Selections/Clipboards im X11, wobei das gefühlt seltener geworden ist in letzter Zeit. Wenn das nochmal passiert, erinnere ich mich hoffentlich an die neuen Tastenkombinationen, die ich jetzt für expliziten Zugriff auf das Clipboard habe.
- Tastenkombinationen mit Alt
- Wenn emacs im Textmodus lief,
musste ich immer
Esc
alsMeta
benutzen,Alt
ging nicht. Das klappt jetzt endlich dankmetaSendsEscape: true
. Es kann so einfach sein!
lange URLs in (neo)mutt
mutt bzw. neomutt umbrechen lange Zeilen und fügen ein +
am
Start der Folgezeile(n) an. Das passiert bei mir regelmäßig mit
überlangen URLs, z.B. wenn ich E-Mails mit individualisierten Links
(Passwort-Zurücksetz-Tokens oder sowas) erhalte. Bisher musste ich
solche URLs beim Aufruf über den Umweg der Zwischenablage immer von
Hand befummeln, um die +
dort wieder herauszuoperieren.
Ich habe das URL-Selektor-Skript für xterm ein wenig erweitert, so dass es die von (neo)mutt gesplitteten langen URLs wieder zusammenknotet und man sie dann einfach auswählen kann. Das funktioniert ganz hervorragend.
Kaum dass ich den xterm-Artikel im IRC verteilt hatte, kamen wir
dort auch drauf, wie man die +
in (neo)mutt abschaltet: Einfach
set marker off
in die dortige Konfiguration schreiben. Das ist auch
etwas, was ich schon früher gerne gewusst hätte. Jetzt behalte ich
aber das +
, damit das URL-Selektor-Script die gesplitteten Links
erkennen und automatisch zusammenfügen kann.
Schnellnavigation im Midnight Commander
In großen Verzeichnissen komme ich manchmal ins Straucheln, wenn ich nur so ungefähr weiß, was ich suche. Beispiel: „es war irgendwas mit «pr» vorne im Namen“. Dann muss ich oben bei den Ordnern einmal unter „P“ und einmal „p“ suchen und dann weiter unten bei den Dateien auch nochmal jeweils bei „P“ und „p“.
Beim Total Commander unter Windows weiß ich, dass ich einfach
Alt-p
tippen kann, um eine interaktive, inkrementelle Suche zu
starten. Beim mc hat mir das bisher gefehlt.
Ich bin nun auf die grandiose Idee gekommen, das einfach mal zu
googeln und siehe da: mc kann das natürlich auch. Die
Tastenkombination dafür ist Alt-s
gefolgt von den Suchbegriffen.
Wenn man etwas mitten im Dateinamen sucht, muss man den Suchbegriff
übrigens mit einem *
beginnen.
Es kann sein, dass ich das schon vor Ewigkeiten mal versucht hatte und
es damals nicht funktionierte, weil ich das metaSendsEscape
im
xterm noch nicht konfiguriert hatte…
Fazit
Zusammen mit metaSendsEscape
sind es wohl sogar vier Dinge geworden,
die ich immer schon mal machen wollte. Manchmal weiß man halt gar
nicht, was einem so fehlt.
Auf jeden Fall fehlt noch, dass ich all die neu konfigurierten Möglichkeiten auch regelmäßig nutze. Aktuell sind sie auch nach mehreren Wochen noch nicht im Muscle Memory.
Am besten klappt das schon mit langen URLs in (neo)mutt: Das URL-Zusammenknoten ist so nervig, dass ich jetzt tatsächlich den URL-Selektor verwende, um z.B. die URLs aus dem GOG-Newsletter zu öffnen.
In anderen Situationen werde ich URLs aus dem xterm wohl weiterhin per Zwischenablage in den Firefox kippen. Das hat sich bei mir eingeprägt und das mache ich, ohne nachzudenken. Kleiner Vorteil dieser manuellen Methode: ich kann einfacher bestimmen, in welchem meiner 10 Firefox-Fenster die URL aufgeht. Bei Benutzung des URL-Selektors wird immer das zuletzt aktive Fenster als Ziel benutzt.
Was habe ich sonst gelernt? Ich sollte öfter und schneller Dinge hinterfragen und nach Lösungen für kleine Probleme suchen, bevor ich 10 Jahre lang blöde Workarounds benutze.