matrix-org / matrix-spec

The Matrix protocol specification
Apache License 2.0
181 stars 94 forks source link

Ability to override the displayname for users & rooms that get served to you (SPEC-427) #188

Open matrixbot opened 8 years ago

matrixbot commented 8 years ago

Submitted by @​matthew:matrix.org This could be done by account_data, both per-room (for overriding m.room.name and membership names within rooms) and globally (for overriding user displaynames globally)

(Imported from https://matrix.org/jira/browse/SPEC-427)


Edit (richvdh 2020/08/11): I think this feature is asking for the ability to set local displaynames for rooms and other users, that are not shared with other users. For example, I might want to set a displayname of "Mum" for my mum, while her public displayname remains unchanged.

matrixbot commented 8 years ago

Links exported from Jira:

is duplicated by SPEC-456

realitygaps commented 7 years ago

Is this still planned? would be useful feature imo.

ara4n commented 7 years ago

You could patch this up clientside, but for a good implementation you'd need proper mention support at last, so i can say <a rel="@realitygaps:matrix.org">Mr Flibble</a> hi! and have the rest of the room have a hope in hell of understanding what i meant

madduck commented 6 years ago

/me is really longing for this…

Ekleog commented 6 years ago

I guess upping a a-few-months-old thread is not a big issue, so... longing for this too :)

ghost commented 6 years ago

likewise. this would be really helpful. hopefully someone will bump the priority.

ghost commented 6 years ago

What about this? 2 years since request and still nothing happened in this matter, IMHO it's probably one of most needed features.

rkfg commented 5 years ago

How about also overriding avatars? Would be useful for IRC bridges at the very least where the IRC clients obviously can't have avatars. Assigning them ones could prove useful.

I see there's already vector-im/riot-web/issues/363 but it's said to be a duplicate of vector-im/riot-web/issues/3130 which links to this issue. I think both avatars and names are alike in this regard so it's best to track it here.

MurzNN commented 5 years ago

Now users already can set per-room name and avatar, but only for himself, and this is publicly visible. Does room state have any private user storage, that visible only for user? If yes, we can store override info about all users in it.

EDmitry commented 4 years ago

This would be a terrific feature to rename rooms/contacts along with their aux data like avatars server-side.

MyriaCore commented 4 years ago

There's definitely still demand for this issue! Is this planned at all?

turt2live commented 4 years ago

Everything is planned given enough time. It currently would require an MSC from the community to get it anywhere near the list of things to worry about, however.

madduck commented 4 years ago

https://matrix.org/docs/spec/proposals lays out this process. I am definitely able to support anyone, but I cannot take on driving an MSC right now.

opusforlife2 commented 3 years ago

This is a common feature in other messaging apps, so I think this would be expected and felt 'missing' if people were to migrate to Matrix from another app.

ewtoombs commented 3 years ago

Why is this here? Why can't individual clients handle this locally without any server finding out about it? I thought matrix-doc was for protocol matters.

...unless, I suppose, you want to support synchronisation of these aliases across all of a certain user's connected clients. Is that the plan here?

t3chguy commented 3 years ago

@ewtoombs

Unless its specced each client will do it differently, e.g io.element.name_mappings vs custom.nheko.mapped_names etc, and thus you'd need to set it per-client. But better yet the server can inject your chosen name even for clients which don't support this optional feature.

kevincox commented 3 years ago

But better yet the server can inject your chosen name even for clients which don't support this optional feature.

Although it would still be useful for the client to have access to the original name. But the details can be worked out when we have a spec.

c7hm4r commented 2 years ago

I think it would be better to have that custom displayname only encrypted on the server. It might contain highly sensitive data, e.g.:

… without the person that information belongs to knowing about it or being able to have any influence on it.

Mebus commented 2 years ago

I think that is too much for the first shot.

Mebus

fionnb commented 2 years ago

Having come over from other messengers just recently and trying to consolidate my communication this is just about the single most disturbing problem (besides not being able to organize contacts into client-side groups). Many of my contacts use cryptic usernames which do not relate to their real names in any way and there is no way to identify them other than keeping a text file with aliases. Or negotiating over a commonly accepted room name with every single 1-1 chat room. Both options are not really practical.

3hhh commented 2 years ago

I think the room part was implemented or at least there's a bot for it?

For the user part I wonder why no one has written a bot for it so far? So does it really need a Spec change?

I guess a bot with some database backend - possibly encrypted as outlined above - to store aliases would do for most people.

Example commands:

Lykos153 commented 2 years ago

Bots are fine and all, especially for people familiar with Discord or IRC. But those trying to switch over from WA, Telegram etc. just want it to be baked into the UI. Also, talking to bots on the phone is annoying asl.

fionnb commented 2 years ago

I tend to agree with Lykos153. Moreover, client-side aliases work client-wide, across all groups and chats. Which makes sense; usually you don't want to have to spend extra time on making sure that \@cryptic-handle-xyz to appears as UserA on all chats you are both on, one chat at a time. That is a change you want globally. I do not see how that would be possible to achieve with a bot, unless I, as a newbie to matrix, failed to recognize some across-all-chats-super-bot capabilities yet. If so, feel free to correct me.

3hhh commented 2 years ago

No, a private chat command with the bot would just enable you to start a conversation with someone by using the alias and yes, the display name in whatever app you use would still be the one chosen by the user.

So definitely suboptimal, but still better than nothing.

I was just trying to find an alternate path to improve the situation on this one as it appears to be stalling.

3hhh commented 2 years ago

Workaround for today wrt user aliases, if the client doesn't support it: Assuming one's running one's own homeserver, reactbot can be used to implement a basic [alias] --> [matrix user] mapping.

Obviously one can also edit the room name of private 1:1 chats.

Also, for users with many mautrix bridges it may help to set all bridge bot command prefixes to e.g. !, invite all bridge bots into a common room and then use ! pm [name/phone number] to see which bridge bot can find that user. Some bridge bots also support commands such as ! set-displayname [name] [matrix-id] in admin mode.

Sesota commented 2 years ago

I can't figure out why can't we have custom room's displayname implemented the way we have m.tag event. Clients can see if there exists an event like m.displayname to override the room's already set displayname; else, default to room's displayname.

frederiiiic commented 1 year ago

Till my friends expands on elements i'm still waiting on this function to nickname some user only in a client side...

koalaeagle commented 1 year ago

This would be great for bridges like Whatsapp/Telegram/iMessage. @3hhh are you able to explain this workaround with reactbot? Is it running a command on your behalf?

3hhh commented 1 year ago

On 1/9/23 06:54, koalaeagle wrote:

This would be great for bridges like Whatsapp/Telegram/iMessage. @3hhh are you able to explain this workaround with reactbot? Is it running a command on your behalf?

IIRC you could use reactbot to write some bot that manages the custom user name <--> user ID mappings for you. However it wouldn't be integrated and thus I never bothered.

Afaik in practice the best you can get are bridge bots that support renaming users as you like. E.g the Signal bridge supports it, the Whatsapp one doesn't. Also, you can invite all your bridge bots into a single room, configure them to react to the same command prefix and with a bit of luck (same commands used by all bots) you can even forget which user is using what messaging client.

Another option is to rename the rooms created by the bridges. From my experience though a bridge bot restart will cause them to be renamed back.

In total some matrix Spec change to safely (i.e. encrypted) store client-side custom user name mappings together with the user profile on a matrix server would still very much help.

dwt commented 1 year ago

Not sure if this is the right issue for that, but there may be a fare easier solution that doesn't require encrypted shared storage in the matrix protocol. That is, binding the contact to an entry in the address book of the user, allows the user to set a system wide contact name for the user that is not specific to matrix. This can be achieved by allowing the user to add the matrix handle to the contact vcard and querying that to get the generic user name name.

At least to me that would greatly simplify getting system wide consistent contact naming, especially because it also means that I get the same name when communicating with that person via email, signal, threema, … - and all of that cross devices with no syncing necessary.

3hhh commented 1 year ago

On 1/10/23 15:31, rekcäH nitraM wrote:

Not sure if this is the right issue for that, but there may be a fare easier solution that doesn't require encrypted shared storage in the matrix protocol. That is, binding the contact to an entry in the address book of the user, allows the user to set a system wide contact name for the user that is not specific to matrix. This can be achieved by allowing the user to add the matrix handle to the contact vcard and querying that to get the generic user name name.

At least to me that would greatly simplify getting system wide consistent contact naming, especially because it also means that I get the same name when communicating with that person via email, signal, threema, … - and all of that cross devices with no syncing necessary.

True, but that would only work for mobile clients / clients with address books. It might already be implemented in some mobile matrix clients, I don't know.

opusforlife2 commented 1 year ago

That is, binding the contact to an entry in the address book of the user, allows the user to set a system wide contact name for the user that is not specific to matrix.

This solution leaves out users who do not wish to give Matrix apps access to their device contacts.

yennor commented 1 year ago

That is, binding the contact to an entry in the address book of the user, allows the user to set a system wide contact name for the user that is not specific to matrix.

This solution leaves out users who do not wish to give Matrix apps access to their device contacts.

also it doesn-t work for anybody using a desktop client or web client. I'd like that the same name is shown, in all the clients I use.

dwt commented 1 year ago

This would work at least for desktop Mac Clients, as they too have an address book. And true: this requires to give access to the address book to the Matrix Client. To me, that would be acceptable IF the client promises to never upload said address book to a server for peer discovery as so many other clients do to aid bootstrapping.

alphapapa commented 1 year ago

This feature would be especially important for direct chat rooms that are bridged to, e.g. XMPP. In my case, I'm talking with an XMPP user through the matrix.org bridge, but his XMPP name is not the name I know him by, so I have to remember the mapping between his real name and his XMPP name.

Ideally I would be able to simply rename the room for my own use by posting an event to the room's account data, as Sesota mentioned. Being a client developer, I could do that for my own client, but I also use Element on my phone and sometimes in a browser, so I'd like there to be a standard way to do this across clients.

For future reference, this idea seems to be covered by: https://github.com/matrix-org/matrix-spec-proposals/pull/3015

frederiiiic commented 1 year ago

I think a cross platform nickname mean that the server finally know the real names of his users...

Mart-Bogdan commented 5 months ago

Also please add ability to override user's avatar, like Telegram allows.

Any news about this issue? It was opened in 2016, and it's extremely needed fature. Must have, I would say.

alphapapa commented 5 months ago

@Mart-Bogdan See https://github.com/matrix-org/matrix-spec-proposals/pull/3015