Eigentlich dienen die "Zum Wochenende"-Artikel dazu, über ein mehr oder weniger geistreiches Thema zu schreiben, damit sich die werte Leserschaft über das Wochenende Gedanken dazu machen kann. Dabei ist es auch möglich, auf die Torte zu hauen und über den Tellerrand von "Freie Software - Freie Gesellschaft" hinauszudenken.
Da wir mitten im Sommerloch stecken und die Artikel rar sind, habe ich mich entschieden, über ein Thema zu schreiben, welches dem Anspruch der Wochenend-Kolumne nicht gerecht wird. Im Grunde ist es gar kein richtiger Artikel, sondern eher eine Verlegenheit, weil ich gerade keine Lust habe, Hemden zu bügeln. Ausserdem möchte ich euch für das Wochenende etwas zum Lesen geben.
Den Titel habe ich bewusst kurz und nicht aussagekräftig gestaltet, damit überhaupt jemand auf den Artikel klickt. Als "clickbaiting" würde ich das nicht bezeichnen; dafür fehlt nämlich das Fragezeichen hinter dem Titel. Wer unseren HELP-Raum auf Matrix liest, kann sich schon denken, was jetzt kommt. Es geht um ein Problem, zu dem die Teilnehmenden im HELP-Raum keine Antwort wussten. Vielleicht kennst Du die Antwort.
Es geht um die Raumnamen beim Matrix-Messenger (Element, usw.). Als Einleitung zitiere ich aus der offiziellen Dokumentation (übersetzt):
Die gesamte Kommunikation über Matrix findet in Räumen statt. Räume können öffentlich zugänglich gemacht oder privat gehalten werden, und sie können je nach Ihren Anforderungen verschlüsselt werden. In den Element Matrix-Clients, finden Sie die Räume unter dem Abschnitt Räume. Wenn Sie jedoch direkt mit einer bestimmten Person sprechen, wird ein Raum als direkter Chat markiert und kann stattdessen unter dem Abschnitt Personen gefunden werden.
Die Namensgebung für Gruppenräume ist unkritisch, weil der Name den Zweck des Raumes beschreibt, z. B.: "Familientreff", "Basteltreff" oder "Projekt Invictus". Die Raumteilnehmer:innen können meistens mit dem Raumnamen etwas anfangen. Falls dem nicht so ist, kann man den Gruppenraum in einen Space schieben, wodurch die Zuordnung erleichtert wird. Beispiel: man verschiebt den Raum "Ausflug" entweder in den Space "Privat" oder "Büro".
Nun gibt es aber auch direkte Chats, in denen zwei Personen miteinander reden. Beim Anlegen eines Raumes kann man wählen, ob es sich um eine Gruppe oder einen privaten Chat mit einer weiteren Person handelt. Was die Verschlüsselung angeht, kennt das Matrix-Protokoll einen Unterschied: Gruppenräume werden standardmässig nicht verschlüsselt; 2-Personen-Chats werden verschlüsselt. Doch darum geht es nicht, sondern darum, dass sich die Raumnamen anders verhalten.
Angenommen, wir haben zwei Personen: Adam und Eva, die einen direkten Chat eröffnen. Bei Adam heisst der Raum "Eva" und bei Eva heisst der Raum "Adam". Das ist sinnvoll und wird in allen Messengern so gehandhabt. Ich halte fest: Wir haben einen Raum mit zwei Namen (Adam und Eva). Nun kommt das Problem. Manchmal haben Leute komische Namen bzw. Aliase. Nehmen wir an, Ralf möchte mit 7XPO chatten. Dann wäre es doch nett, wenn Ralf den Namen "7XPO" in "Martin Müller" ändern könnte, damit Ralf drei Wochen später noch weiss, wer 7XPO eigentlich ist. Also ändere ich den Raumnamen auf "Martin Müller". Und nun passiert es: Der Raum heisst bei 7XPO nun auch "Martin Müller". Damit kann 7XPO natürlich gar nichts anfangen, weil er nicht mehr weiss, dass es der Chat mit "Ralf" ist.
Es kann sein, dass ich etwas nicht verstanden habe oder Element falsch bediene. Eine Unterlassung im Matrix-Protokoll kann es nicht sein, weil (zu Beginn) der Raum zwei verschiedene Namen hat. An der Implementierung in den Clients kann es auch nicht liegen, weil sich alle (von mir getesteten Clients) gleich verhalten. Als Workaround kann man den Raum so umbenennen, dass beide Teilnehmenden wissen, um wen es sich auf der anderen Seite handelt: "Ralf/Martin". Hierbei ist zu beachten, dass nicht alle Clients die Änderung des Raumnamens erlauben.
Jetzt hoffe ich, dass das Problem bei mir liegt und nicht ein Entwurfsfehler des Matrix-Protokolls ist. Falls ihr es wisst, freue ich mich über sachdienliche Hinweise in den Kommentaren.
Ich wünsche euch ein entspanntes Wochenende.
Titelbild: KI-generiert und nachbearbeitet
Quellen: im Text
Es ist eine gute Frage, ob man hier von einem Entwurfsfehler o.ä. sprechen kann. Jedenfalls scheint das Verhalten mehr oder weniger so definiert worden zu sein und hat mit dem m.room.name-Ereignis zu tun, das im beschriebenen Szenario am Anfang nicht gesendet wird, weswegen sich dann die Clients der Empfehlung nach so verhalten, wie im Text beschrieben (https://spec.matrix.org/v1.15/client-server-api/#calculating-the-display-name-for-a-room). Und ab der Namensvergabe wird das genannte Ereignis gesendet und ändert den Raumnamen für alle Benutzer des Raums.
Sind die "Räume" sowas wie die "Gruppen" in Signal als P2P? Vorab: Von Matrix habe ich bislang leider keinerlei Ahnung, wohl primär weil ich niemanden kenne, von dem ich wüßte, dass er oder sie es verwendet. Gefunden habe ich jedoch das hier:
https://matrix.org/docs/matrix-concepts/rooms_and_events/
> "Users on a server can send events into rooms. An event is a particular json object, describing what a user is trying to do (join a room, send a message, update a specific value...) (...) if Alice creates the room #goodfriends on example.com, her account @alice:example.com will get the power level 100 in all the local copies of #goodfriends:example.com, whether the copy is on example.com, matrix.org or ergaster.org. When someone else joins the room, whether they are on the same homeserver as the creator or another homeserver, by default they are assigned the power level 0. If Bob on matrix.org joins #goodfriends:example.com, his server is going to ask Alice's example.com a local copy of the room, and stay in sync with it."
PS: Um alles von Meta habe ich stets einen Bogen gemacht, aber (fast) alle die ich kenne, haben mittlerweile Signal. Eine Bekannte in Barcelona hatte es nie und eine Brüssel nicht mehr, wie auch eine meiner drei Cousinen, die dürften aber alle bei Meta/WA sein. Für Matrix bin ich wahrscheinlich zu blöde. :D
Das ist seit Jahren das große Problem bei Matrix, und es gibt Bugreport um Bugreport dazu, aber keinen Fix. Stattdessen endlos lange Diskussionen, ob der lokale Anzeigename in die Rauminformationen gehört (aber der Datenschutz!) oder in die Clienteinstellungen (aber die Synchronisierung!).
Sie haben ein Problem angesprochen, das auch mir aufgefallen ist und über das ich seit langem nachdenke. Mein Bruder und ich sind die einzigen, die Matrix in Drittanbieter-Clients nutzen. Wir haben unseren Raum „Chat“ genannt. Aber wenn ich viele Kontakte hätte, wäre das ein Problem. Ich mag nämlich keine Namen im Stil von „Ralf/Martin“.
Ich benutz bisher Element an sich nur fürs Mitlesen der gnulinux.ch-Räume.
An sich könnte man Raumaliase das ja als Client-Feature realisieren. D.h. der jeweilige Client könne einen wahlweise einen Alternativnamen vergeben, hinter dem sich der echte Raumname dann transparent verbirgt. Vielleicht fühlen sich die Protokoll-designer deshalb nicht angesprochen. Vermutlich müsste dann aber der Client an der einen oder anderen Stelle Ereignisse, Logs etc umformatieren. Wär natürlich wünschenswert, wenn auch die Referenzclients es als Feature anbieten, zumindest solange es noch nicht so viele Alternativen gibt.
Ein praktikabler Workaround:
7XPO tippt in eurem Chat in Element oder Schildichat
Dann siehst Du was Du sehen willst.
Danke für den Tipp. Leider funktioniert er bei mir nicht. Falls das sonst noch jemand ausprobieren möchte, würden mich eure Erfahrungen interessieren. Hinweis: Es geht um Peer-to-Peer-Räume, bei denen ihr den Raumnamen geändert habt.