Emoji set suggestion #149
Labels
Sans labels
1app
2 apps
accessibility
android
before-beta
bug
duplicate
enhancement
first-contact
fixed
help wanted
infrastructure
invalid
low-priority
must-fix
needs testing
nice-to-have
question
tor
user-feedback
wontfix
Sans jalon
Sans assignation
2 participants
Échéance
Aucune échéance n'a été définie.
Dépendances
Aucune dépendance définie.
Référence : cwtch.im/ui#149
Chargement…
Référencer dans un nouveau ticket
Sans contenu.
Supprimer la branche "%!s(<nil>)"
La suppression d’une branche est permanente. Bien qu’une branche supprimée puisse temporairement subsister, elle NE PEUT PAS être facilement restaurée. Continuer ?
I'm not sure what the exact state of emoji support in Cwtch is (fwiw clicking the emoji button on the relatively-recent version running on my Linux desktop, I get the message that "emoji is not yet supported, sorry"), but earlier today I stumbled on a project that I thought might align with some of the goals of Cwtch and Open Privacy in general.
Mutant Standard is "a new kind of emoji set - more flexible, inclusive and fun." The project's principles revolve around decentralization and generally stand opposed to Unicode's control over this new form of expression.
I am no expert on inclusivity, but I'll note that they feature gender-neutral emoji and tons of customizable skin tones, which I think jives with Open Privacy's general stance.
Lastly, it's licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License, which seems good!
I'm not sure how cross-platform emoji support works, or whether shipping a custom emoji set will be a hassle or possible a security risk, but if Cwtch is in need of an emoji set that reflects its core values, Mutant Standard might be a good place to start.
We actually already have cross-platform emoji support via Twemoji (and a bit of Qt code that was very tedious to write, to enable copy/paste with other proper Unicode implementations). The not-yet-implemented message only applies to the emoji picker; you should be able to copy/paste emoji to and from cwtch already. We don't have shortcode support yet, but I plan to add it on a rainy day.
That said, I absolutely love Mutant Standard!!! Unfortunately, their deliberate deviation from Unicode in some places makes it tricky. Their replacements for most standard emoji seem to work fine (I have this working in development and it looks fantastic btw) but they do some odd things like using FE0F as a non-terminating codepoint, which doesn't play well with our parser. They also have morphology and extra skintone modifiers that will require extra support be added to our parser. The website also mentions that some of the emoji haven't been assigned codepoints yet, which makes them incompatible with our protocol. There may also be other incompatibilities that I haven't spotted yet, and checking compatibility for every single emoji is going to be a very tedious process. The set is also incomplete.
I really really want to switch to Mutant Standard, though, so you will probably see a variant of it supported in cwtch very soon. :) We'll probably start with Twemoji as a base, overwrite it with Mutant Standard, and permit some emoji to be inaccessible at first. This deals with the incompleteness problem (although it has the unfortunate side effect of restoring the deliberately exclusions in MS, like the cop). When I'm comfortable putting an updated parser into production, we'll add support for the paw/claw variations and the new colours.
(If anyone reading this happens to have an MS-compatible version of Twemoji's
parse
function, I'd love a link! I have their regex generator working to include Pride100 and the rainbow pawprint, but adding 1016XX as skintone modifiers doesn't cut it due to the FE0F issue.)Cool! Glad it's on the radar.
Feel free to close this issue till it's within reach, or keep it open if others want to take up the tasks you outline.
Update on this: we have switched to Mutant Standard exclusively as of
1eb391ecc1
Sadly the switch was motivated in part by the need to mark our unicode emoji support as experimental. Accomplishing universal cross-platform support for it in Qt meant doing complex things with richtext/HTML replacement, and as a security minded project we want to put that through some more hoops before making it default. The message input box is a boring textfield now :) and unicode emoji support is host-specific :(