Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for ASCII emojis #1389

Closed
1 task done
Limero opened this issue Aug 22, 2017 · 45 comments
Closed
1 task done

Add support for ASCII emojis #1389

Limero opened this issue Aug 22, 2017 · 45 comments

Comments

@Limero
Copy link

Limero commented Aug 22, 2017

  • I have searched open and closed issues for duplicates

Support for converting ASCII emojis like :) to real emojis should added. Signal currently only supports shortnames for emojis, like :thumbsup:.

Writing :) instead of :smiley: is much quicker and it's what many people are used to with other chat applications, like Hangouts and Skype.

Here are some lists of emoji conversions that might be useful:
https://demos.emojione.com/ascii-smileys.html
https://aprescott.com/posts/hangouts-emoji
https://support.skype.com/en/faq/FA12330/what-is-the-full-list-of-emoticons
https://en.wikipedia.org/wiki/List_of_emoticons

My most used ones:
:P - :stuck_out_tongue: - 😛
:D - :smiley: - 😃
D: - :anguished: - 😧
:O - :open_mouth: - 😮
:'( - :cry: - 😢
:/ - :confused: - 😕
;) - :wink: - 😉
(Y) - :+1: or :thumbsup: - 👍
(N) - :-1: or :thumbsdown: - 👎

@Trolldemorted
Copy link
Contributor

Note sure preventing the user from sending ascii smileys is a good idea, since some people dislike emojis. An emoji-picker would be more appropriate, as it is tracked in #194.

@Limero
Copy link
Author

Limero commented Aug 22, 2017

I think majority of users would appreciate it. A simple toggle could be added in the settings for those that don't.

@Dyras
Copy link

Dyras commented Sep 25, 2017

Cutegram has this feature for Telegram and I LOVE IT. Just make it a toggle and we can go back to sending cat emojis to our mothers like real men.

@ivan
Copy link

ivan commented Sep 26, 2017

I appreciate that Signal doesn't have any options yet that I need to disable, like one to avoid corrupting text that incidentally includes one of those strings.

@klangborste
Copy link

Would it not be the best to fit all the needs, if it would possible to have an option to activate/deactivate this feature?

@turnschuhadmin
Copy link

turnschuhadmin commented Dec 4, 2017

Since the mobile app is supporting emoticons, I'd also expect them in the desktop client. Makes the user experience only more consistent. Additionally, if they are already displayed, but you can't answer with an emoticon.
image

Of course it would be nice for those who dislike them to have the same configuration on the Desktop as they have in their mobile client.

@Dyras
Copy link

Dyras commented Dec 4, 2017

@turnschuhadmin The current Signal-Desktop beta has emojis so it's just a matter of time until everyone has them.

@turnschuhadmin
Copy link

Thanks for the fast reply, can't wait for them to get published :)

@ymau
Copy link

ymau commented Jun 8, 2018

Especially for the desktop clients this would be an enormous improvement for usability. I tend to type a lot and switch between windows using key shortcuts, so typing something like :) or :* or (Y) would be a lot faster and less error prone (at least for me: despite typing all day I suck at it and always switch at least two letters in phrases longer than 3 or 4 characters) than typing :grin: :kissing_heart: or :+1:.

@Nindaleth
Copy link

Nindaleth commented Sep 19, 2018

Some of the chat clients allow you to customize, what strings are changed to which emoji - e.g. QIP or Pidgin. That would allow setting up combinations that "avoid corrupting text that incidentally includes one of those strings" and also would allow to set no combinations at all, keeping it text-only - that should be the default.

For me, it sucks very much that the oldest smiley in the world :-) has to be typed out as :slightly_smiling_face: (you can tell I'm very serious, since mostly I just smile on the internet instead of laughing).

@EgbertW
Copy link

EgbertW commented Nov 28, 2018

I agree. It may well be a required initial set-up thing, maybe with a more general purpose. Add a automatic text replacement list that is initially empty. I'd be more then happy to set up a list myself to configure that

:) needs to be replaced with :slighty_smiling_face

And it could also be used to automatically replace

STFU with 'I'm currently busy right now, I'll get back to you as soon as I can'.

That way, it will not bother anyone not interested in automatically creating emoji's from ASCII emoticons, It will be more generally applicable and it will not destroy texts like @ivan suggested, unless you explicitly configured the app to do so yourself.

While at it maybe there could also be pre-configured lists of these replacements that users can enable or disable according to their own preferences.

@moonwolf-github
Copy link

Any news on this?

@jan-from-meiro
Copy link

jan-from-meiro commented May 20, 2019

Guys c'mon, lack of that simple feature is just super annoying and this request here is for almost two years...

@DaGaMs
Copy link

DaGaMs commented Jun 26, 2019

I have to agree. Every other app has this: whatsapp, Skype, Slack, Telegram... It's really clear that auto-converting :-) to 🙂 is the common UX expectation nowadays - or at least automagically showing the emoji as a suggestion in a hover, similar to what github does:
Screenshot 2019-06-26 at 09 48 06

@NateEag
Copy link

NateEag commented Dec 6, 2019

For the record, I am one of those users who does not like my ASCII emoticons being replaced by emoji.

If this feature request ever happens, I hope there is at least an opt-out.

@amac16
Copy link

amac16 commented Jun 29, 2020

Recent Sig desktop user long time mobile. Surprised to see this feature wasn't included and surprised this issue has been open so long. I'm finding that after using Skype all day at work, this is a sorely missing feature. A preferences toggle would be nice!

@emilm
Copy link

emilm commented Nov 8, 2020

I was thinking - how about making a setting window where you can map strings to another string? That way it's generic.
And you can turn it on and off with a hotkey or select it in a menu like Edit -> Use text mapping.

So you have a text file that has a default set of mappings like
":)" "🙂"
":D" "😀"
etc.

Anything in the quotes will be parsed an replaced in your text as you type it or as you paste it. If you do want to paste without translating using those mappings, you disable the option on beforehand. Or do CTRL+SHIFT+V in windows (formatless paste)
Later this could be made into a dictionary / lookup feature which can suggest the words including emojis.

With a few likes, I could actually attempt to make a PR with this feature if anyone's interested.

@sitnarf
Copy link

sitnarf commented Dec 25, 2020

I am currently writing a PR for this. 😉

@EvanHahn-Signal
Copy link
Contributor

@sitnarf Before you make the pull request, we'd like to make sure we know what you're planning to build so you don't waste your time. Could you give us an overview of what you're going to build and how you're going to build it? We'll run that by our Design team to see if it makes sense.

@sitnarf
Copy link

sitnarf commented Dec 26, 2020

@EvanHahn-Signal I added a new Quill module. The emojis are substitutes while typing. They should not be substituted when copying from the clipboard. There is also an option to disable it. There are still few minor things and UI tests to be done. Here is the code: sitnarf@33befe4.
Peek 2020-12-26 20-32
Of course, the original emoji suggestions are preserved.

@maximbaz
Copy link

I implemented this feature for Wire a few years ago, I would suggest to make the replacements not right away, but only on Space keypress and right before sending the message. The reason is, with instant replacement you will make it impossible to type messages where people want to preserve text e.g. :P, say RE:PUBLICA. You can read up on our discussion about this with Wire's design team in that PR, for example starting from here. I can attest that after using the implemented behavior in Wire for several years, it still feels very good, and never stood in the way of typing messages with any content.

I am happy to provide more feedback and help with testing, and looking forward to see this implemented in Signal!

@sitnarf
Copy link

sitnarf commented Dec 26, 2020

@maximbaz Thank you for your suggestions! It makes sense!

@dasois
Copy link
Contributor

dasois commented Jan 24, 2021

I finished @sitnarf's work in the PR linked above.

@maximbaz I read and thought about the issue you guys were having in Wire. Here it is kind of different because:

  • If you type 'RE:' and then 'P' it will replace as Wire did
  • If you type 'REP' and then go back one char and type ':' it will not replace. This was differently with Wire and made the issue much more annoying IMHO.

Therefore I would suggest to stick with the current implementation.

@maximbaz
Copy link

maximbaz commented Jan 24, 2021

I think the annoyance was not that emoji was sometimes not replaced, the annoyance is that algorithm is too eager to replace, if there is at least one case when it replaces when it shouldn't, it becomes crazy annoying to go back and do some tricks to make the app keep text representation.

So with your implementation, is it currently impossible to type RE:PUBLICA?

@sitnarf
Copy link

sitnarf commented Jan 24, 2021

@dasois Hey, great! Could you also post the code? @EvanHahn-Signal Anyway, how is it with the Design team? Has it been already looked on?

@dasois
Copy link
Contributor

dasois commented Jan 24, 2021

@sitnarf please see #4942

@dasois
Copy link
Contributor

dasois commented Jan 27, 2021

@maximbaz thanks for your input, I like the idea!
I would be willing to reprogram that and file another pull request, if I get the ok from @EvanHahn-Signal.

It would be currently possible to type RE:PUBLICA by doing REP -> RE:P -> RE:PUBLICA, so you would need to go back and insert the colon.

@LukasMojzis
Copy link

LukasMojzis commented Apr 12, 2021

I believe that we need to establish the most stress-free conditions to be met to avoid basically any false positives, to avoid implementing a singe-use feature, and to allow user to have fine control over how the replacement works. In the following example I will continue to assume the emoji to be entered is :-)

  • Don't do replacements unless user has enabled the feature (opt-in)
  • Do the replacement ONLY when the following conditions are met:
    • user just pressed SPACE or submitted the message
    • text before the cursor (or the whole message) matches (^|\s)\Q:-)\E\s?$ pattern

Moreover, to avoid single-purpose black box feature:

  • We should allow the user to specify, override or disable specific replacements.
  • We should provide sane emoji mapping by default (seed)
  • The feature itself should not be "Emoji Replacement" but rather "Text Replacement"

By allowing the above, we give the user more control, as well as allow them to define more replacements so that they can type

I went shopping and bought some bacon, lettuce, tomatoes, and avocados to make a BLTA sandwich. It's my favorite!

for it to become

I went 🛍️ and bought some 🥓, 🥬, 🍅, and 🥑 to make a BLTA 🥪. It's my ❤️!

If executed correctly, @signalapp can even tweet about this feature and bring in many more users as this may appeal to much wider demographic to have fun in Signal.

Sweary people can have many swear words replaced by 🤬 emojis!

I don't know how much of a performance impact this would have, but we can always find the longest replacement and only do the regex matching on the last n characters where n is the length we found earlier.

Any ideas or comments?

@Flexmaen
Copy link

I'm using ASCII-Smileys but they are blocked by another bug I described there:
#5018 (comment)

@stale
Copy link

stale bot commented Sep 23, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Sep 23, 2021
@Flexmaen
Copy link

The one bug blocking ASCII-Smileys will be fixed, but the suggestion for things like :-D still does not really work well.
So the suggestion here would be an option if it was optional.

@jordyno
Copy link

jordyno commented Apr 17, 2022

In what stage is this feature? As of today, My (updated) Signal doesn't recognize even the most basic emoticons like :) :D :-D, etc.

@Temppus
Copy link

Temppus commented May 22, 2023

It is unfortunate and frustrating that after 5 years from reporting this widely used feature does not work.

@jordyno
Copy link

jordyno commented May 22, 2023

This issue has nobody assigned and is being ignored by the devs. We have to re-post it as a feature request. It's so annoying - this is the only app where one has to pick emoticons by hand!

@dasois
Copy link
Contributor

dasois commented May 22, 2023

This was also a frustrating experience for me as a contributor. I spent some time I will never get back. I am willing to give this a second chance and adjust my PR, but first I want the commitment by the maintainers that this will get reviewed and merged right afterwards.

Also this should be reopened by sb who has the rights to do so.

@Temppus
Copy link

Temppus commented May 22, 2023

Thanks, that would be awesome. It would really be waste if not merged.
Tagging @indutny-signal for comment/commitment because of #4942 (comment)

@josh-signal
Copy link
Contributor

I'll review it, but yeah just the emoji substitution change.

@Temppus
Copy link

Temppus commented May 25, 2023

@dasois will you find some time to update your PR with latest changes then ?

@Temppus
Copy link

Temppus commented Jul 27, 2023

Pinging @dasois , what is your status pls ?

@dasois
Copy link
Contributor

dasois commented Jul 29, 2023

I will update my PR to the latest changes soon, thanks.

@dasois
Copy link
Contributor

dasois commented Aug 3, 2023

@josh-signal I had to make a new PR, because things deviated too much. Please review and let me know if you'd like any further changes.

@emilm
Copy link

emilm commented Aug 3, 2023

Haha it's going to go on like this forever 😁

@Temppus
Copy link

Temppus commented Sep 5, 2023

@josh-signal or @indutny-signal would you please take a look at it ?. It is already a month in waiting state. Thanks.

@dasois
Copy link
Contributor

dasois commented Dec 11, 2023

feature has to be reopened, nothing was done by the reviewers. Contribution to this project seems not possible.

@Temppus
Copy link

Temppus commented Dec 11, 2023

Tbh I have never seen such level of incompetency in any open source project for a such a "small" thing

  • Issue opened and ignored for years despite highly requested by community
    image
  • PRs was created and totally ignored (2 years of ignorance)
  • Second PR was created due to changes getting stale against latest codebase and promised to be reviewed
  • No review for months and counting, ghost mode activated again

7 years passed, this is joke and spit in a face to community

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests