element-meta icon indicating copy to clipboard operation
element-meta copied to clipboard

Possibility to define our own emoji

Open floviolleau opened this issue 8 years ago • 142 comments

I would like to have the possibility to add my own emojis.

Could you please add this feature?

Kind regards

floviolleau avatar Nov 25 '16 14:11 floviolleau

this is also related to being able to send custom stickers

ara4n avatar Nov 25 '16 23:11 ara4n

see also vector-im/element-web#1692

ara4n avatar Nov 25 '16 23:11 ara4n

I could work on this, store stickers only locally for now?

Gregoor avatar Nov 28 '16 23:11 Gregoor

That would be great! Could send stickers as data URLs, or upload them to your homeserver and refer to them via mxc:// URLs.

ara4n avatar Nov 28 '16 23:11 ara4n

Since there is no method of listing uploaded media (and thereby retrieving stickers on the server), I'd just go with data URLs for now, as it's simpler.

Gregoor avatar Nov 29 '16 14:11 Gregoor

For those interested: I've started a proposal on this area (including stickers). Feel free to leave comments and suggest alternative ways to do this. The MSC (matrix spec change) can be found here: https://github.com/matrix-org/matrix-doc/issues/1256

turt2live avatar May 24 '18 03:05 turt2live

One of the challenges I see with custom emoji is that not all phones/mobile devices/etc will necessarily be able to display them inherently, as that would go outside of unicode. So, this would be uniquely tied to Riot.

Mind you, I don't want to shoot this idea down, I just want to point out that emoji are primarily made possible due to unicode standardisation of them.

BloodyIron avatar Sep 30 '18 20:09 BloodyIron

2 years have gone...

CPCer avatar Jun 02 '19 06:06 CPCer

Work is being done per MSC1951 -- I'm not involved, just passing along the info.

apiontek avatar Jun 12 '19 15:06 apiontek

This doesn't need an old-composer label

aaronraimist avatar Jan 10 '20 02:01 aaronraimist

Nothing to add other than this is the main feature my users are requesting. I think stickers are not so valuable, but custom emojis dominate discord. They are used for polls, calendars, sign ups, and more. A very important feature.

beardedlinuxgeek avatar Jun 27 '20 04:06 beardedlinuxgeek

There are many custom emotes that have become part of my daily vernacular on Discord, and it's often jarring when I can't use them in Matrix. For instance, there are often moments in conversation where it is appropriate to dab. On Discord, I select one out of a dozen or so custom dab emotes and react to a message with it. In Matrix, all I can do is send a message with the text dab. This works, but it has a very different feel and effect on the flow of conversation.

In my circles, at least, custom emotes have become an integral part of the way online communication happens. Language is constantly evolving, and I think it's important for any chat app to stay on top of that evolution; to enable, not hinder, the way its users communicate.

JimmyCushnie avatar Aug 23 '20 08:08 JimmyCushnie

fwiw I kind of circumvented this limitation by posting a tiny PNG (~100x100) on a test room, get the JSON source of that message, grab the media URL and script a bot with a "bang shortcut" (example !hey) to post that media item again. Invite the bot and tell it to post that PNG for you.

pros: done in 2 hours. fine for a very limited set of custom emoji. cons: ugly. a lot of messages from a bot. separate messages to express the emoji, renders bad on mobile element.io android client

apiraino avatar Aug 23 '20 09:08 apiraino

This is the number 1 thing keeping Element feeling like a second-class chat client for me. Custom emoji are a big part of community culture on places like Discord, Slack, and Mastodon, and missing them makes it feel less like a place where friends hang out and more like a last-ditch communication channel.

It's especially disheartening to not see this anywhere on the roadmap considering how long it's been open. I realize FTUE is a huge deal, and stuff like that and the community redesign are probably taking priority, but it would be nice to see this somewhere on the roadmap. Attracting users and communities will only go so far if you can't retain them, and I feel like this would go a long way towards improving the element community experience that will keep people using the platform.

chr-1x avatar Sep 02 '20 03:09 chr-1x

I don't want to sound whiny but honestly I am pretty disappointed the dev team have dragged their feet on this request. It is something that is a staple in online communication platforms right now that are widely used. Discord, Mastodon, Slack, Telegrams much better sticker implementation.

I am unable to run Riot and Matrix as a protocol as a daily driver because actually being able to express myself on other platforms to my friends is much more free-ing. Of course I hate using non-FOSS applications for this (excl Masto). I would be able to convince so many friends to use Riot with this simple feature added. If you want to actually gain users from places like Discord you have to offer feature parity as well, not just better security.

I've seen chatter about other clients but if someone is running a more IRC like client for Matrix, this feature is not for them. Same with the stickers inclusion though, it is a mostly graphical implementation that has to load a remote-ish image. This could also be circumvented by the emojis themselves being hosted on HS's. If stickers are included in the default experience, I see no reason not to add this feature. They are almost one in the same in terms of backend and how they are presented to the user.

Roxxers avatar Dec 14 '20 14:12 Roxxers

@Roxxers, one does not simply implement custom emoji. It has to be defined in the spec and then implemented. The spec is still being discussed in MSC 1951.

andrewshadura avatar Dec 14 '20 14:12 andrewshadura

@Roxxers, one does not simply implement custom emoji. It has to be defined in the spec and then implemented. The spec is still being discussed in MSC 1951.

I was going to add this to my comment, since I know it does need to be in the spec. But most of my comment still applies to that. It's not been discussed in many months, its been open for 1 and a half years. Its still dragging its feet. It has issues both for the spec and the web client implementation, yet is not on any roadmaps? No one seems to want to comment on these issues in months? Everyone I've talked to in my communities wants this feature yet no work seems to actually be going into including it into the spec. Yes its anecdotal but it's not like people are doing empirical polls on how much people want this feature for me to cite.

Roxxers avatar Dec 14 '20 14:12 Roxxers

@Roxxers, one does not simply implement custom emoji. It has to be defined in the spec and then implemented. The spec is still being discussed in MSC 1951.

I was going to add this to my comment, since I know it does need to be in the spec. But most of my comment still applies to that. It's not been discussed in many months, its been open for 1 and a half years. Its still dragging its feet. It has issues both for the spec and the web client implementation, yet is not on any roadmaps? No one seems to want to comment on these issues in months? Everyone I've talked to in my communities wants this feature yet no work seems to actually be going into including it into the spec. Yes its anecdotal but it's not like people are doing empirical polls on how much people want this feature for me to cite.

if you're impatient, fluffychat and perhaps other clients already support this, you can just direct those people who don't want to wait to use them.

williamkray avatar Dec 22 '20 19:12 williamkray

Any further updates on this? Would love to be able to make private rooms and communities feel more like personalised spaces.

nourkagha avatar Apr 02 '21 23:04 nourkagha

bump

victort avatar Jul 27 '21 20:07 victort

This is blocked on https://github.com/matrix-org/matrix-doc/pull/1951 or similar MSC coming out given you wouldn't want such emoji only to work on Element Web

t3chguy avatar Jul 27 '21 21:07 t3chguy

There was recent official confirmation of this feature, with the funding round news :D

From the Matrix blog:

[...] lots of little long-overdue fun bits and pieces (yes, custom emoji, we're looking at you).

From the Element blog

[...] adding the remaining core missing features: spaces, threading, pinned messages, starred messages, custom emoji and more.

Seems like we're finally getting them!

JimmyCushnie avatar Jul 28 '21 01:07 JimmyCushnie

It's also on the public roadmap: https://github.com/vector-im/roadmap/projects/1#column-11563336

nourkagha avatar Jul 28 '21 01:07 nourkagha

It's in Later (rn), which means it's quite a bit off.

ShadowJonathan avatar Aug 01 '21 19:08 ShadowJonathan

I'm excited to see this is on the public roadmap. I'm sure developers have bigger fish to fry in terms of the roadmap, but this thread was created over 5 years ago. Hoping to hear updates soon!

00011100 avatar Jun 09 '22 17:06 00011100

As a workaround until this gets implemented, I have developed a browser extension for me and my friends. It replaces the original emoji suggestions while typing with custom emote suggestions.

From a technical point of view, it behaves similar to Twitch emote extensions like BetterTTV or FrankerFaceZ, inserting emotes by replacing message text with images and requiring an additional application to serve the emotes.

Previously, we had patched in custom emote support directly in matrix-react-sdk (which worked similarly, albeit using React's APIs, and also used the same emote server), but keeping it up to date with upstream proved to be too time-intensive (and we often ran into build issues), so we were looking for a simpler solution that would require little maintenance and this one seems to work just fine for our needs.

mserajnik avatar Jun 26 '22 22:06 mserajnik

It was mentioned that this goal is on the public roadmap, but I'm not clear on where that is or what status it's in... I see a project associated with this repo that seems to indicate product feature status etc but no mention of this issue. Am I looking in the wrong place? EDIT: nevermind, i see it linked in a previous comment.

This continues to be the top request/complaint from my userbase after using Element/Matrix for going on two years now. I'm particularly interested in whether the planned implementation will include the ability to use the custom emoji as reactions and room topics, as most implementations in other clients do not and only support the custom emoji in message body text. I assume that it's just a matter of making these fields intelligent enough to render <data-mx-emote> objects as properly sized images, but I notice that the topic is absent in most of these conversations and issues, and even some github issues that have been opened specifically for this purpose have been closed as duplicates of this one without acknowledging that it isn't included in this description at all.

My users go so far as to complain that other features and announcements which do not interest them and they do not use (like element-call, widgets, etc) seem to get higher development priority and this long-requested feature languishes. I recognize this is likely due to the demands of top-paying customers that Element likely has contracts with, but the general sentiment is that custom emojis are a major usability feature that every other "chat" platform has had for several years now, and Element seems uninterested in those kinds of usability enhancements for regular users.

williamkray avatar Jul 15 '22 16:07 williamkray

Even GitHub has custom emojis! It's time for Element to get 'em too! :godmode:

ThatOneCalculator avatar Jul 22 '22 02:07 ThatOneCalculator

Feature

Added basic custom emote functionality including gif emote support to rooms. Currently, custom emotes can only be added by typing the shortcode surrounded by colons in the message composer. All changes are to the matrix-react-sdk in my fork below. https://github.com/nmscode/matrix-react-sdk

Release: https://github.com/nmscode/matrix-react-sdk/releases/tag/v1.0.0 also hosted on https://emotes.operation.chat

TODOs:

  • [x] Autocomplete custom emote shortcodes
  • [x] Emojipicker
  • [ ] Support for custom emotes in message reactions
  • [x] The emotes are stored in the room settings unencrypted, but encryption could be added.

Screenshots

image image image

nmscode avatar Aug 12 '22 21:08 nmscode

Quick update: I added very basic custom emote rendering on the android element client. It could use a lot of work but will show the custom emotes that are uploaded using the web client. https://github.com/nmscode/element-android

Release/APK: https://github.com/nmscode/element-android/releases

nmscode avatar Aug 16 '22 01:08 nmscode