Matrix URI scheme support
Feature Description
Matrix features its own URI scheme, whose name has already been registered at IANA. FluffyChat could handle URIs following said scheme. The following types of entities should be handled:
- [ ] room aliases
- [ ] users
- [ ] room IDs (note the distinction from room aliases
- [ ] events within a room (specified by a room alias or a room ID)
Rationale
FluffyChat currently only manages matrix.to links. However, the Matrix specification states that Matrix URIs are also a valid way to refer to an entity.
Mockup
No response
Additional Context
No response
@foxyseta Possible duplication of:
Uhm no? Knocking never made it to Matrix URI schemes, from what I am aware, and even if it did, FluffyChat does not offer support for any subset of the Matrix URI schemes grammar.
What is not supported in FluffyChat? AFAIK FluffyChat has always supported Matrix URI scheme and even today when you open a matrix: link in Element with FluffyChat being installed, it opens FluffyChat to handle it.
Then perhaps I am doing something wrong myself? Right now, I am getting
GoException: no routes for location: matrix:u/xxx:yyy.zzz?action=chat
when trying to open matrix:u/xxx:yyy.zzz?action=chat. Haven't tried with other routes.
Not sure how much this is connected, but the im.fluffychat.Fluffychat.desktop file of the official desktop flatpak version on flathub seems to be lacking a line declaring support for opening matrix: URIs.
Using Fractal's .desktop file as an example, I get the impression there should be an additional line like:
MimeType=x-scheme-handler/matrix;
I tried setting matrix URIs to be opened in Fluffychat by calling this command:
xdg-mime default im.fluffychat.Fluffychat.desktop x-scheme-handler/matrix
When opening a matrix: URI, I did then get the option to open via Fluffychat, but at least with the matrix URI I tested, Fluffychat only opened normally and seemingly did not attempt to connect to the target.
Additionally, doing it again caused a second Fluffychat window to appear, instead of attempting to open in the already running instance of the application.