Font ligatures don't work v3
- [x] I am on the latest Hyper.app version
- [x] I have searched the issues of this repo and believe that this is not a duplicate
- OS version and name: 10.14.4 macOS Mojave
- Hyper.app version: 3.0.0
- Link of a Gist with the contents of your .hyper.js:
- Relevant information from devtools (CMD+ALT+I on macOS, CTRL+SHIFT+I elsewhere):
- The issue is reproducible in vanilla Hyper.app:
Is Vanillaor with thehyper-font-ligaturesadd-on.
Issue
I'm using Fira Code font and the ligatures don't work. I found this issue https://github.com/zeit/hyper/issues/914 and tried installing the hyper-font-ligatures add-on or adding this css
termCSS: `
x-screen x-row {
font-variant-ligatures: initial;
}
`,
but none of these seem to work.
At least on Windows 10, setting webGLRenderer: false in your config file will bring them back (assuming you still have the hyper-font-ligatures plugin installed). This will also fix some of the other rendering anomalies of v3, although sadly not all.
Oh. Yes, working now. So, ligatures in exchange for performance :)
@orangecoloured So why did you close this bug?
@nurtext Because technically this bug was resolved. The ligatures work without WebGL renderer. I think another issue should be created addressing this.
@orangecoloured I understand, but for me it's still open because turning off the newly introduced renderer isn't a valid fix. Ever tried tailing or cating some logs with the old renderer? It made Hyper almost useless for me. Now Hyper is back in the game (at least for me), but ligatures are a must have in 2019 IMHO.
Yeah, I would recommend reopening this as well.
So, based on this comment, looks like there's a fix for this in xterm.js. Would be really awesome to get that pulled in so ligatures will work without a performance hit.
xTerm 4 supports this through the new Addon system: https://github.com/xtermjs/xterm-addon-ligatures
However, the xterm fork used by Hyper is severely out of date: 56 commits ahead, 1290 commits behind.
Edit: Switching the fork for latest xTerm works... except the WebGL renderer is quite broken - I believe it should be possible to fix it but I haven't researched that much. Also, the fork contains valuable work that needs to be rebased on xterm@4.
@GitSquared Looks like they're already on it: https://github.com/zeit/hyper/pull/3830
@GitSquared our effort in that PR is currently stuck on broken resizing
Now that #3830 has been merged, I'm sending a PR for enabling font ligatures.
Does not work for me, even with WebGL disabled.
@alexgalkin1994 You're testing on the canary version, right?
Reopening since I don't see them working as well here, something broke during the Electron update?
@Stanzilla They still work for me under Linux, could this be platform-specific? (Still using Fira Code.)

Could be yea, anything known about issues with that on Windows @Tyriar?
Working for me on mac (also using Fira Code)
@alexgalkin1994 You're testing on the canary version, right?
I installed it via Homebrew. (brew cask install hyper) Version 3.0.2 is installed
@alexgalkin1994 That's the latest release. This issue has been closed on the canary branch, which is the development version - ligatures will be enabled in the next release.
I upgraded to Hyper 3.0.1-canary.4 (canary) on macOS and I'm using the Nerd Fonts version of Fira Code, and I also tried Pragmata Pro Mono Liga and I don't see ligatures.
You need to use a build from CI or compile your own
Oh alright, thanks @Stanzilla!
Just built (yarn run dev) and ran (yarn run app) the latest on canary (f40496f). I can see ligatures with fontFamily set to "Fira Code", but not with any of the variants of either Iosevka or PragmataPro that I've tried. I assume either should work (they properly work in VS Code/IDEA), what might I be doing incorrectly?
any idea when this will become live for everyone?
Sadly not
Will the fix in canary make it into 3.0.1? Can a build be put out for this fix? I couldn't find any build artifacts on CI.
No, not soon, for which OS are you looking for?
MAC OS
Can you try this then? https://github.com/zeit/hyper/releases/tag/v3.1.0-canary.3
Should that be v3.1.0-canary.5? since v3.1.0-canary.4 is already published