Similar to PluralKit on Discord, the Personas feature allows a single account to use multiple names and avatars and switch quickly between them on-the-fly. First requested in the earlier thread Plural accessibility in voice and text #339. We have a prototype implementation published at chiaracoetzee/fluxer-subprofiles/tree/features/subprofiles and a demo server up at https://chat-dev.hypersystem.xyz/ (feel free to come visit and try it out). Unlike proxy bot solutions like PluralKit or fishingbucket this is intended to be a first-class native feature in the main Fluxer distribution with both server-side and client-side changes.
Features supported so far:
- Switch between personas using either PluralKit-style prefix/suffix tags or the persona selection panel, accessed via a small icon in the composer bar.
- Active Persona Mode (similar to autoproxy mode in PluralKit) allows you to send all untagged messages from a selected active persona, or to automatically change active persona whenever a tag is used.
- Imports personas from PluralKit json export dumps, including importing all avatars into the Fluxer server's media storage.
- Click on a persona's avatar to see detailed info on that persona, and info on the root account that owns them. Click root account for detailed info on the root account.
- To switch the persona on a message, either edit it and add the persona tag of the new persona, or click "..." to the right of a message then click "Change persona".
- Things like replies, reactions, edits, etc. all work as expected.
- In the current implementation all persona data is stored in the synced preferences blob which has a 256KB limit which is less than ideal. Planning to migrate this to a real DB table with REST API.
- Need to sort out how our equivalent of system tags will work. We're thinking of some combination of text and icon, both optional. There's also been discussions of a server option to force on showing the icon of the owner account, for security/safety reasons.
- Will likely add an Export button and generalize the "Import from PluralKit" button to an "Import" button that recognizes both PluralKit json dumps and its own export format, as well as any other formats we want to support. These are important for data portability of persona collections. I'd ideally like the exported format to include a bundle of avatar images so that it's fully self-contained.
- Way of doing name color (in DMs or with opt-in from server)
- Group/tag systems for organizing subsystems (sub-groups of personas)
- Consider timeout for Active Persona Mode (e.g. switch to off after x minutes as with the mute channel feature)