Simple Unix Chat

vorhergehende Artikel in: Linux
26.08.2023

Ich wurde neulich von einem Artikel kalt erwischt, in dem eine Möglichkeit präsentiert wird, einen Slack Chatserver in 5 Zeilen Bash-Code zu realisieren. Das machte mich so neugierig, dass ich das Projekt sofort forkte und begann, eigene kleine Verbesserungen daran vorzunehmen.

Einige dieser Verbesserungen sind auch bereits in aus meinem in das initiale Repository zurückgeflossen.

Diese Lösung stellt wie beschrieben einen Chat dar, der viele der Features abbildet, die auch in größeren, teureren und mit mehr Vendor Lock-in verbundenen Lösungen ebenfalls zu finden sind. Die Anwendung zur Interaktion heißt usuc - daneben existiert ein Script zum Erstellen neuer Chat-Räume. Das ist aber schon alles. Die unterstützten Features sind unter anderem:

  • Rich-Text Chat
  • Dateiaustausch
  • abgestufte Zugangskontrolle
  • Automatisierung und Integration mit anderen Werkzeugen
  • verschlüsselte Datenübertragung
  • State-of-the-Art Nutzerauthentifizierung
  • *und neu - durch meine Erweiterung - Versenden von Bildern im Chat (Voraussetzung: sixel-kompatibles Terminal)
Der Chat erlaubt es, ganz normale Messages zu versenden oder auch Kommandos auszuf+hren, deren Ergebnisse dann zu Chat-Nachrichten werden.

Das Wiki beschreibt viele der Möglichkeiten genauer. Dort ist auch angegeben, wie man den Text-Chat graphikfähig macht: Dazu benötigt man ein Sixel-kompatibles Terminal - das ist zum Beispiel bei Nutzung xon xterm mit folgenden Startparametern gegeben:

xterm -xrm "XTermdecTerminalID: vt340" -xrm "XTermnumColorRegisters: 256"

Dann kann man neben Rich Text im Chat

cat </dev/stdin | pygmentize -l java -f 256

Screenshot Rich Text im Chat

auch Bilder

img2sixel Pictures/login.png

Screenshot Bilder im Chat

versenden, die noch gar nicht als Datei vorliegen, sondern dynamisch erzeugt werden:

export GNUTERM="sixelgd truecolor font arial 12"; echo plot '20*sin(x*x),x*x'|  gnuplot

Screenshot Gnuplot Graphik im Chat

Für Texte ist natürlich die Benutzung von Syntax highlighting vorgesehen:

cat ~/te.sh|pygmentize -l bash -f 256

Screenshot Source Code im Chat

Natürlich gibt es noch viele weitere Use Cases, wie etwa das Filtern nach einer bestimmten Zeitspanne - auch dafür sei nochmals auf das Wiki des Projekts verwiesen!

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Brian May, Kerry Ellis & Vittorio Grigolo: Bohemian Rhapsody

    19.05.2019

    Eine andere Sicht auf den schönen Queen-Klassiker

    Weiterlesen...

Neueste Artikel

  • sQLshell, SQLite und Redis - oh my!

    Ich habe in letzter Zeit hin und wieder mit der sQLshell und SQLite herumgespielt - Neulich wurde ich gefragt, ob die sQLshell eigentlich auch Redis kann...

    Weiterlesen...
  • bad-certificates Version 3.0.0

    Das bereits vorgestellte Projekt zur automatisierten Erzeugung von Zertifikaten mit allen möglichen Fehlern wurde um eine weitere Kategorie von Zertifikaten erweitert

    Weiterlesen...
  • Erste Vor-Version eines Gis-Plugin für die sQLshell

    Wie bereits in einem früheren Artikel erwähnt plane ich, demnächst ein Plugin für die sQLshell anzubieten, das eine Visualisierung von Daten mit räumlichem Bezug im Stil eines Geoinformationssystems erlaubt.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.