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

emojis don't blink #15979

Open
ClaireCJS opened this issue Sep 18, 2023 · 4 comments
Open

emojis don't blink #15979

ClaireCJS opened this issue Sep 18, 2023 · 4 comments
Labels
Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Issue-Bug It either shouldn't be doing this or needs an investigation. Product-Terminal The new Windows Terminal.
Milestone

Comments

@ClaireCJS
Copy link

Windows Terminal version

No response

Windows build number

No response

Other Software

No response

Steps to reproduce

Use ansi codes to set blinking on

Print some ASCII characters around an emoji character

Expected Behavior

All characters will blink

Actual Behavior

The ASCII (unicode?) characters blink, but the emoji characters do not.

ADDITIONAL COMMENTS:

At the very least, the background around it could be blunk.

I did this: I simulated blinking emoji via a gentle blinking of the black background around the emoji.

I set a slightly-above-black custom RGB foreground character and then using both reverse and blink at once -- which caused the foreground to become the background and be the part that blunk. Perhaps that is a bug too, but I liked that it was still possible to simulate a blinking emoji.

But such trickery shoudln't really be needed, in my opinion?

@ClaireCJS ClaireCJS added Issue-Bug It either shouldn't be doing this or needs an investigation. Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting labels Sep 18, 2023
@lhecker
Copy link
Member

lhecker commented Sep 18, 2023

This is because blinking dims the foreground color:

const auto dimFg = attr.IsFaint() || (_blinkShouldBeFaint && attr.IsBlinking());

...and emojis are unaffected by the chosen foreground color. We could consider not using the dim attribute for blinking and instead start using the alpha component of the foreground color for this (or similar).

@carlos-zamora carlos-zamora added this to the Backlog milestone Sep 20, 2023
@carlos-zamora carlos-zamora added Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Product-Terminal The new Windows Terminal. and removed Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting labels Sep 20, 2023
@ClaireCJS
Copy link
Author

I simulate it by going into ansi reverse mode and blinking, which blinks the background (which was previously the foreground before ansi reverse), which, can be set to a custom rgb value to get the aesthetic blink one wants.

But yes — The fact that emojis can be italicized just makes me think other operators (underline, bold, blink) should work as well.

@DHowett
Copy link
Member

DHowett commented Mar 13, 2024

Well, they'll blink if you turn off full-color emoji after #16871 lands!

We should also make them blink when they are full color. 😁

@ClaireCJS
Copy link
Author

I agree!!!

DHowett added a commit that referenced this issue Mar 15, 2024
This pull request introduces support for disabling full-color emoji (and
technically other COLR-related font features!)

Full-color emoji don't respond to SGR colors, intensity, faint or blink.
Some users also just prefer the line art ones.

Related to #15979
Refs #1790
Closes #956
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Issue-Bug It either shouldn't be doing this or needs an investigation. Product-Terminal The new Windows Terminal.
Projects
None yet
Development

No branches or pull requests

4 participants