Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC3015: Room state personal overrides #3015

Open
wants to merge 61 commits into
base: old_master
Choose a base branch
from
Open
Changes from 48 commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
e0e7133
Added proposial "Message Attachments"
MurzNN Nov 27, 2020
96fef8b
Assign 2881 number to MSC and some typos
MurzNN Nov 27, 2020
8065221
Added mentions of similar MSC
MurzNN Nov 27, 2020
0de8e47
Direct mxc links and improved alternative
MurzNN Nov 27, 2020
45c91fd
Improved description of 1'st alternative
MurzNN Nov 27, 2020
a226142
Added second implementation
MurzNN Nov 27, 2020
616dcba
Added unstable prefixes, fixed typo
MurzNN Nov 27, 2020
6b5ccbe
Added unstable to class to
MurzNN Nov 27, 2020
e343893
Moved fallback dispay to implementation 1
MurzNN Nov 27, 2020
d448559
Added example of media event to implentation 2
MurzNN Nov 27, 2020
c33ef1a
Move second implementation to main place
MurzNN Nov 27, 2020
ad7f2fa
Paraphrasing
MurzNN Nov 27, 2020
dd423aa
Described edits and improved description
MurzNN Nov 30, 2020
76e0522
Added fallback description
MurzNN Nov 30, 2020
9a7f694
Added edits composer description
MurzNN Nov 30, 2020
910be82
Added link to extensible events suggestion
MurzNN Nov 30, 2020
abc7edf
Added alternative with attachments after message
MurzNN Nov 30, 2020
108ffa7
Added redact action on remove media
MurzNN Nov 30, 2020
2be176c
Fixed typo
MurzNN Nov 30, 2020
eea1ba0
Fix typo again
MurzNN Nov 30, 2020
87bfff2
Added delete (redact action)
MurzNN Nov 30, 2020
ba19693
Added potential issue and hiding recommendation
MurzNN Nov 30, 2020
6147bd6
Added link to MSC2278
MurzNN Nov 30, 2020
6da8d3a
Fix typos and added link to MSC2675
MurzNN Nov 30, 2020
fa6f59b
Fix typo
MurzNN Nov 30, 2020
2e8536e
Added proposal for replacement to #2530 / #2529
MurzNN Nov 30, 2020
0eb7773
Added links to implementation examples
MurzNN Nov 30, 2020
00ade35
Improved description
MurzNN Nov 30, 2020
5df15b6
Description for implementation together with #2530
MurzNN Nov 30, 2020
a470fba
improve grammar
MurzNN Dec 16, 2020
39c08c4
Move back first alternative as option two
MurzNN Dec 16, 2020
12c0a3f
Fix typo
MurzNN Dec 16, 2020
21f14c2
Described replacing fallback to rich representation
MurzNN Dec 16, 2020
cfb8f55
Name options as primary-secondary
MurzNN Dec 17, 2020
ffad669
Create MSC for Personal room names
MurzNN Feb 19, 2021
6ff1393
Delete MSC from other branch
MurzNN Feb 19, 2021
f0e6037
Assign 3015 number to MSC and rename
MurzNN Feb 19, 2021
25a6d58
Better description of examples.
MurzNN Feb 19, 2021
381103a
Paraphrasing
MurzNN Feb 19, 2021
979eb47
Type as m.room_name_personal and modify deletion
MurzNN Feb 19, 2021
016d3f8
Update unstable prefix
MurzNN Feb 19, 2021
41733af
Remove > Clear
MurzNN Feb 19, 2021
359b003
Fix key and type of room account data
MurzNN Feb 19, 2021
985f30e
Extended alternatives
MurzNN Feb 19, 2021
50cfe4f
Links to Contacts feature
MurzNN Feb 19, 2021
74a25c6
Supplemented examples
MurzNN Feb 19, 2021
1bd1132
Paraphrasing
MurzNN Feb 19, 2021
e9d925b
Wrap long lines
MurzNN Feb 19, 2021
cc88c7e
grammar fix
MurzNN Feb 23, 2021
f859140
grammar fix
MurzNN Feb 23, 2021
415a7f4
grammar fix
MurzNN Feb 23, 2021
8c1fbce
grammar fix
MurzNN Feb 23, 2021
34acaed
grammar fix
MurzNN Feb 23, 2021
54795fc
grammar fix
MurzNN Feb 23, 2021
649b5b4
grammar fix
MurzNN Feb 23, 2021
42e5c7f
grammar fix
MurzNN Feb 23, 2021
3cc130e
grammar fix
MurzNN Feb 23, 2021
a56f5aa
Rewording
MurzNN Feb 23, 2021
9c94f4c
Rework to allow override also avatar and topic
MurzNN Apr 3, 2021
5ba4368
Added idea for override profiles as rooms
MurzNN Apr 3, 2021
74fa075
Added suggestion of room members overrides
MurzNN Apr 3, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions proposals/3015-room-personal-name.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# MSC3015: Room personal name

Very often users want to personally rename rooms to see it in list like they wants, especially for DM rooms. But room
name is shared thing, so if they rename it for yourself, all other members will see this rename too.

Examples of problem:

1. Very often other people want to rename DM rooms with me and can do this, because we both are admins. So he set the
MurzNN marked this conversation as resolved.
Show resolved Hide resolved
alternative name of that DM room (eg `Korepov Alexey` instead of `Alexey Murz Korepov`) - this works well on his
MurzNN marked this conversation as resolved.
Show resolved Hide resolved
side. But, as result on my side, I see that room in my rooms list with my name, instead of remote user name.

2. The user have two DM rooms with different Matrix users, but both have name "Alice" without avatar. As result he see
MurzNN marked this conversation as resolved.
Show resolved Hide resolved
two identical rooms in list with same name and can understand which Alice is where only via reading recent messages.
MurzNN marked this conversation as resolved.
Show resolved Hide resolved
And he can solve this problem via renaming rooms, that give the result from item 1, descibed above.
MurzNN marked this conversation as resolved.
Show resolved Hide resolved

3. This problem often happens for rooms from bridged networks, when we talk with same person via different networks, and
want to mark each room personally. This can be solved via adding suffixes with remote network name to room name on
Bridge side, but people want to change other parts of room name too. For example, one person can have different names
in each network (eg "Alexey Korepov" on VK, "Korepov Alexey" on Skype, "Alex" on WhatsApp, "Murz" on Telegram), and I
want to see all rooms with him as similar names.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
want to see all rooms with him as similar names.
want to see all the rooms with similar names.


Most of other modern messengers (Telegram, Skype, Viber, WhatsApp) already have this feature, but only for DM rooms via
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Most of other modern messengers (Telegram, Skype, Viber, WhatsApp) already have this feature, but only for DM rooms via
Most other modern messengers (Telegram, Skype, Viber, WhatsApp) already have this feature, but only for DM rooms via

reusing smartphone's addressbook to store personal names of contacts. And moving from that messengers to Matrix confuses
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
reusing smartphone's addressbook to store personal names of contacts. And moving from that messengers to Matrix confuses
reusing smartphone's addressbook to store personal names of contacts. Moving from these messengers to Matrix is confusing

the people, because they can't rename personal chats in his own list like before.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
the people, because they can't rename personal chats in his own list like before.
because they can't add personal names to chats like before.


# Proposal

For solve this problem I propose to use [room's
account_data](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-user-userid-rooms-roomid-account-data-type)
item with key `m.room_name_personal` to store custom name of any room for each user individually, with filling personal
name in content with `room_name_personal` type:

```json
{
"room_name_personal": "Alice Liddell"
}
```

By default this item is absent. It is added only when user make the personal renaming of room, and cleared if user
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
By default this item is absent. It is added only when user make the personal renaming of room, and cleared if user
By default this item is absent. It is added only when user sets a personal name for the room, and cleared if user

remove the personal name for room (or make it empty).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
remove the personal name for room (or make it empty).
removes the personal name for the room (or make it empty).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should support "making it empty" as a feature. This can be a client UX decision that an empty room name is either not allowed or translates to clearing the personal name on the matrix side.


Regarding to spec, the account data's key can't be deleted, so if user wants to clean the personal name or "Reset to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Regarding to spec, the account data's key can't be deleted, so if user wants to clean the personal name or "Reset to
According to the spec, account data keys can't be deleted, so if user wants to clean the personal name or "Reset to

default", the value of the `m.room_name_personal` key should become empty (`{}`).

# Client support

## Displaying:

When client displays the room in list, it should lookup the `m.room_name_personal` key, if it exists and have not empty
MurzNN marked this conversation as resolved.
Show resolved Hide resolved
value - use it's value for display name in room list instead of global room name. In room page header (over timeline)
MurzNN marked this conversation as resolved.
Show resolved Hide resolved
clients may show both names (global and personal) with explaining that this room have alternative personal name, that is
MurzNN marked this conversation as resolved.
Show resolved Hide resolved
seen only for current user.

## Adding, removing, renaming:

Clients should provide the way to privately rename room and clearly explain the difference between global room name and
MurzNN marked this conversation as resolved.
Show resolved Hide resolved
personal name.

In room list this can be implemented via "Rename room personally" or "Set personal name for room" menu item in
right-click menu.

In room settings page personal name can be implemented via button "Set personal name for this room", which will be
available even if user have no permission to change the room name. If room personal name is filled, it should be shown
near the global room name, with ability to remove it.

# Server support

This MSC does not need any changes on server side.

# Potential issues

1. Users can set personal name for room identical as global name of room - this will give little negative effect: all
further global room name changes will not change room name in client list. This can be solved via clearly describe
the difference between global room name and personal name, and some warning that those names are identical with
ability to remove personal name.
MurzNN marked this conversation as resolved.
Show resolved Hide resolved

# Alternatives

1. Instead of setting personal name for rooms via [room's
account_data](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-user-userid-rooms-roomid-account-data-type)
we can set personal names directly for Matrix users (mxid), like other messengers (Telegram, WhatsApp, etc) doing.
This will give similar behavior for DM rooms, but will make impossible to set personal names of rooms with several
users (or DM rooms with bots), and intersects with per-room display names feature. And this way will be better to
implement together with "[Contacts](https://github.com/vector-im/roadmap/issues/10)" feature, which is planned in
Element, also her is issue about this: [Contact List & Renaming
Contacts](https://github.com/matrix-org/matrix-doc/issues/2936).

2. This feature can be extended via storing personal avatar for room to, but, as I think, for multi-user rooms this is
unnecessary, and for DM rooms will be better to implement personal avatars together with "Contacts" feature,
mentioned above, instead of use the room's account data for this.

# Unstable prefix

Clients should use `org.matrix.msc3015.room_name_personal` for room account data key instead of proposed, while this MSC
has not been included in a spec release.