-
Notifications
You must be signed in to change notification settings - Fork 21
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
Support ligature #1
Comments
@kchibisov How are the odds this work could inspire upstream? |
If it won't regress any performance we're all ears, which will likely require a lot of effort from us as well, however upstream is focused on a bit different things right now. So the patch must be complete and don't regress any rendering and throughput performance. |
If possible, I want to know more details on how the core developers estimate the performance. |
https://github.com/alacritty/alacritty/blob/master/CONTRIBUTING.md#performance and also |
Ok, I've got some data in performance.md. |
Please, look at Unless you'll have performance in a margin of error on render_timer or let's say 50% difference, I won't even try to look into it. |
I see you already put some effort in some tweaks in your latest commit 9427d56 Just wanted to highlight that. Maybe with the guidance he gave, this can be pushed further to convince @kchibisov into looking at it? |
It seems like the performance hit from ligature is unavoidable. How do you think if performance is unchanged when ligature option is turned off? In branch ligature I've introduced a text_run hashset to cache the rendered output. This works for most cases, but not for the tests of random writes. In ligature_test branch I'm trying to replace all RenderableCells with TextRun. There is slight performance improvement but may introduce some issue on Colors in config. |
@blaggacao do you have a windows machine or mac os machine to build? I want to know if my changes break the other systems. The final goal is to support harfbuzz for shaping in different systems, but hard to do so by myself since i currently only have one linux machine... |
I'm afraid, I'm not even having one within reach, let alone using one. @kchibisov would you be able to suggest somebody or a some way? |
harfbuzz only works on linux/bsd. On other platforms core text and direct write should be used. |
Could country flag emoji issue also be solved? Are those also ligatures? |
@dashezup not sure, maybe you could give it a try on the latest commit in ligature branch. My libraries in centos are too old to support emojis, also I don't have a mac to test if my modifications really works. Update: i guess it's already resolved in my branch. |
Your fork has been working pretty well by my side but I noticed recently that ligatures do not work anymore. Which information could be relevant to share in order for this to be solved besides the fact I am using the package from aur/alacritty-ligatures-git 0.7.0.1745.ga15eb3b-1 ? |
Hey, I ran into the same problem after the last commit. System Here are examples: Thanks in advance, appreciate your work. |
I tried to confirm from remote but gl rendering is not supported in vnc. |
@SiamionRalionak @danielementary can u check again? Should be fine now |
Hey, I've tested the new build. unfortunately the issue isn't fixed yet. Would it be possible to use merging master instead of rebasing one squashed commit onto master. Later when a PR to the upstream is opened, it should be no issue to rebase and squash everything into one commit onto master, as the merge commits are resolved while squashing, so no manual changes should be necessary if the current master is merged into this branch. Thanks for the great work, keeping it up to date with master btw. |
@Philipp-M did you tested the latest ligature branch, or just the aur package? Aur package is still not updated, and I'm not the maintainer of it either, so it might take time to react. I'm currently using the same version in my branch and it works fine with Iosevka Term Extended. I've also tested the latest crossfont ligature branch that Fira Code works fine. I tried to merge the upstream before, but in the end gave up because there were too many redundant conflicts to resolve. Using single rebase commit on top helps me rect faster to the changes in upstream. To address the garbage collection issue you mentioned, probably i should create a branch for backup? |
Hey @zenixls2, thanks for your reaction. I just cloned the repo and built the ligature branch but the issue do no seem to be solved. Is there anything I can help you with ? |
What about explicitly set ligatures = true in config file? |
Okay, so this was apparently a config issue, it is working now. Thanks for your precious help and contribution, this is priceless. |
Can confirm, setting Some comments though after skimming the patch: Line 182 in 974e49f
ligature instead of ligatures , this should probably be ligatures .
And I don't see anywhere, where |
Yes, correct. Recently there was a commit in upstream that changes the serialize/deserialize method of configuration. In order to resolve the conflict and fix the compilation, I remove the use of struct DefaultTrueBool(or DefaultBoolTrue, whatever) and modify it to bool. Probably at that time I forgot to define the Default trait implementation of font config. Anyway will fix this soon. Also there was a big change in the upstream recently and introduce lots of conflicts. That's why there's no update in my branch since then. Anyone who is waiting please be patient. |
I just wanted to give my appreciation for your efforts and offer my Mac system if you need to do any testing on said platform. |
I just tried this fork on Arch Linux and it works perfectly for Arabic script. Thanks for the effort put into the fork. I just want to mention, for what it's worth it, HarfBuzz compiles to WASM, and there are WASM runtimes other than Browsers, just in case. |
will this ever be pushed to upstream Alacritty? |
Only if all platforms are tested and supported. |
I compiled the binary from source with cargo as the instructions describe, but when trying any of the formats of |
Did you checkout the ligature branch? |
I did not, and now I am not sure why I didn't think of that before this. |
update the fork please |
Please update the fork, this is like five versions behind |
also it doesn't seem to work, I'm using Fira Code and with |
Just wanted to jump in and say thanks for the work on this! I have compiled this branch and am running successfully on MacOS Big Sur. Would be amazing to see it contributed & accepted upstream so that it will be able to track with new releases. Have you attempted to rebase this patch on the current upstream master yet? If I have some time maybe I'll look into that sometime. To me, ligature support is more important than keeping up with the latest releases -- so even if this isn't updated or merged, I'll likely keep running this build for a long time. Thanks again for making this fork! |
No time for tracking the changes in the upstream. It will definitely take few days to rebase again and debug . Any pr is welcomed |
Fork the topic from mainstream.
Any issue related to my fork should go here.
Notice that this fork might take a long time to develop and possibly not (able to) merge back to the mainstream.
The text was updated successfully, but these errors were encountered: