Your own nickname per space and per room, with inheritance #69

Open
opened 2026-10-06 21:04:47 +00:00 by robocub · 0 comments
Member

Discord has per-server nicknames. Matrix already allows a different display name per room (displayname in your own m.room.member event), but has no idea of a space-wide name, and Vommet has no UI for either.

Not to be confused with upstream's petnaming (commetchat/commet#1036, merged 2026-09-05): that is a local nickname you give someone else. This issue is about your own name, as other people see it.

Behaviour

  • Set a nickname on a space: Vommet writes it as your displayname in the space room and in every room inside it (subspaces included).
  • Inheritance: rooms you join in that space later automatically get the space nickname.
  • Override per room: a nickname set on one room wins over the space's. "Reset" returns that room to the space nickname, or to your global name if the space has none.
  • Global name changes: Matrix servers by default rewrite every room's displayname when you change your global name. That can wipe space nicknames, so Vommet needs to re-apply them afterwards.

Where to store the rules

Store the intended rules (space → nickname, room overrides) in account data (e.g. im.nether.vommet.nicknames), so they follow you across devices and can be re-applied after a global name change or a new join. The member events stay the source of truth for what others see.

UI

  • Space settings and room settings: "Your nickname in this space/room", with a hint showing where the current name comes from (global / space / this room).
  • Member list and profile card: show the per-room name. That already happens; just check that hover cards show the global name too.

Notes

  • Writing to many rooms means many state events: rate-limit, show progress, and report rooms where it failed.
  • Avatars could work the same way later (Discord per-server avatars). Out of scope here.
  • Nothing on Commet's tracker covers this (checked 2026-10-06).
Discord has **per-server nicknames**. Matrix already allows a different display name per room (`displayname` in your own `m.room.member` event), but has no idea of a **space-wide** name, and Vommet has no UI for either. Not to be confused with upstream's **petnaming** (commetchat/commet#1036, merged 2026-09-05): that is a *local* nickname you give *someone else*. This issue is about *your own* name, as other people see it. ## Behaviour - **Set a nickname on a space:** Vommet writes it as your `displayname` in the space room and in every room inside it (subspaces included). - **Inheritance:** rooms you join in that space later automatically get the space nickname. - **Override per room:** a nickname set on one room wins over the space's. "Reset" returns that room to the space nickname, or to your global name if the space has none. - **Global name changes:** Matrix servers by default rewrite every room's displayname when you change your global name. That can wipe space nicknames, so Vommet needs to re-apply them afterwards. ## Where to store the rules Store the intended rules (space → nickname, room overrides) in **account data** (e.g. `im.nether.vommet.nicknames`), so they follow you across devices and can be re-applied after a global name change or a new join. The member events stay the source of truth for what *others* see. ## UI - Space settings and room settings: "Your nickname in this space/room", with a hint showing where the current name comes from (global / space / this room). - Member list and profile card: show the per-room name. That already happens; just check that hover cards show the global name too. ## Notes - Writing to many rooms means many state events: rate-limit, show progress, and report rooms where it failed. - Avatars could work the same way later (Discord per-server avatars). Out of scope here. - Nothing on Commet's tracker covers this (checked 2026-10-06).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nether/vommet#69
No description provided.