element-hq / element-hq/element-meta
Choose display name when joining room
- Dominant language
- No language data
- Stars
- 112
- Forks
- 25
- Avg merge
- 6h 6m
- Merged PRs (30d)
- 4
Description
Display names in Matrix are a bit iffy in general. Remarkably updating them has been slow since the dawn of time (matrix-org/synapse#1297), it is possible to set your name on a per-room basis (via `/myroomnick` in element), there is a global nickname that serves as a default but changing that also requires the homeserver to override per-room names [per the spec (11.2.6)](https://matrix.org/docs/spec/client_server/r0.6.1#events-on-change-of-profile-information).
Matrix (with Element as the front line client) is shaping up to be an ecosystem that allows a user to communicate in multiple contexts (even more so with spaces slowly getting there). That implies a user might want to use several "identities" for their account, e.g. something related to their github account for public dev-rooms, private name in personal/friend rooms, gamertag in gaming rooms, professional name in work related rooms. This leads to trouble when you have your global display name set to something other than your mxid minus your server's domain or nothing at all, since you would be leaking your name from one context to another. Further, even if you keep your global display name "clean", you need to remember and set your per-room display name manually upon joining.
**Describe the solution you'd like**
My suggestion: ask the user for the nickname to use in the room joining dialog. This can be a simple input field that defaults to nothing or the global display name when left empty. This input field could also be pre-filled with said default and additionally offer a drop down menu with all other display names the user is currently using in any room, while still being editable to create a new one.
There would also be a toggle in the client's main menu (preferences tab? alternatively maybe privacy tab, but it would be buried there), that can revert this behavior to the current one (default).
Further, when spaces arrive and assuming you would group the different kinds of rooms under spaces, it would make sense being able to preset and manage a display name for the rooms in that space. Note: since spaces can "overlap", this needs to be optional in a way to accommodate the needed structure. That would also override the proposed toggle for the appropriate contexts.
This suggestion would still work well, or possibly even better in the case that the requirement of home servers to propagate global display name to all rooms is abolished (it should only be a default to either new rooms or existing rooms using the global default at that point in time). This could be further expanded with the management possibilities of my spaces-proposal, but exceeds this issue.
Last but not least, this same issue/proposal applies also for the other Element clients (feature parity!), but I can not access the meta bug tracker.
**Describe alternatives you've considered**
See above.
**Additional context**
- [spec: CS API 11.2.6](https://matrix.org/docs/spec/client_server/r0.6.1#events-on-change-of-profile-information)
Contributor guide
No contributing guide indexed for this repository
Research direction
No repository files, tests, or entry points are identified. Start by reading the linked Matrix Client-Server spec section and scoping the proposal across Element clients; done would require an agreed, bounded implementation scope for room-join nicknames and any space-related behavior.
Written by the indexing model from the issue text.
Assessment
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100