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

  • Mosquitto MQTT Broker on Docker@Raspi

    25.07.2020

    Nachdem ich in letzter Zeit wieder verstärkt neue Dienste in meinen Docker-Zoo integriert habe, habe ich nach Fertigstellung der ersten Version meiner Interpretation des BlinkStick einen weiteren Dienst "containerisiert"

    Weiterlesen

Neueste Artikel

  • Arbeiten mit (Neo)Vim

    Und wieder ein Fortschrittsbericht über mein Arbeiten mit (Neo)Vim...

    Weiterlesen
  • AI - der Tod der Bookmarkmanager

    Da ich hier ja verschiedentlich den einen oder anderen Link in die Tiefen des Internet teile habe ich mir überlegt, ob es nicht inzwischen an der Zeit wäre, diese irgendwie einfacher zugreifbar zu machen und gleichzeitig besser zu organisieren...

    Weiterlesen
  • Data Oriented Programming (Prozedurales Paradigma)

    Ich bin also jetzt wirklich schon so alt, dass ich miterleben kann, wie Dinge, die ich in der Ausbildung als feststehendes Wissen gelernt habe von irgendwelchen Futzis als der neueste heiße Scheiß unter neuem Namen verkauft wird?

    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.