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 Codeberg Repositories Mastodon Über mich home xmpp


Neueste Artikel

  • Compartmentalization and Privilege Drop

    Eine Präsentation zum besseren Verständnis einiger Konzepte sicherer Softwareentwicklung

    Weiterlesen
  • OpenSSH PKI

    Ich habe ja bereits eine kleine Präsentation zum Thema PKI und OpenSSH verfasst - hier folgt nun - mit einigen Links zu externen Ressourcen zu diesem Thema angereichert - eine strukturierte Zusammenfassung diverser Use Cases und deren Lösung mit einer OpenSSH PKI

    Weiterlesen
  • Der Gumowski-Mira Attractor

    Und wieder habe ich mich mit einem System beschäftigt, das sich in die Themen Chaos und Fraktale oder Strange Attractors einordnen lässt.

    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, muss 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 Codeberg-Repositories findet man hier.