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


Vor 5 Jahren hier im Blog

  • OAuth und OTP

    16.02.2020

    Wie bereits beschrieben will ich mich demnächst näher mit OAuth befassen...

    Weiterlesen...

Neueste Artikel

  • Split von Filesets in Apache ANT

    Ich musste neulich darüber nachdenken, eine Parallelisierung für einen meiner ANT-Tasks in meinem Static Site Generator einzubauen.

    Weiterlesen
  • Ein Doclet zur Erzeugung von DocBook aus Javadoc

    Ich habe mich mit der Idee zu diesem Projekt Monate abgequält - hätte ich gewusst, was die eigentliche Implementierung für Qualen verursachen würde, hätte ich sie wahrscheinlich eingestampft.

    Weiterlesen
  • Motion JPEG Erzeugung aus Java heraus

    Da ich mich in den letzten Wochen wieder einmal mit Javas Sicherheitsmechanismen und dem Erzeugen von Animationen beschäftigt habe, habe ich den Entschluss gefasst, die bisher mittels JMF AVIs in dWb+ zu erstetzen - nur wodurch?

    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.