usr/share/fonts/OTF/LigaOperatorMonoSSm-BookItalic.otf: Liga Operator Mono SSm:style=Book Italic,Italic usr/share/fonts/OTF/LigaOperatorMonoSSm-Bold.otf: Liga Operator Mono SSm:style=Bold,Regular usr/share/fonts/OTF/LigaOperatorMonoSSm-Book.otf: Liga Operator Mono SSm:style=Book,Regular usr/share/fonts/OTF/LigaOperatorMonoSSm-BoldItalic.otf: Liga Operator Mono SSm:style=Bold Italic,Italic usr/share/fonts/OTF/LigaOperatorMonoSSm-Medium.otf: Liga Operator Mono SSm:style=Medium,Regular
In order to update the other fonts, all the ligatures need to be redone.
As noted above, v2 does not include all weights for Operator Mono. usr/share/fonts/OTF/LigaOperatorMonoSSm-MediumItalic.otf: Liga Operator Mono SSm:style=Medium Italic,Italic GitHub - kiliman/operator-mono-lig: Add ligatures to Operator Mono SSm Bold/Bold Italic Operator Mono Light/Light Italic Operator Mono Book/Book Italic Help Wanted. These are the available styles: /usr/share/fonts/OTF/LigaOperatorMonoSSm-LightItalic.otf: Liga Operator Mono SSm:style=Light Italic,Italic LigaOperatorMonoSSm-Bold.otf: "Liga Operator Mono SSm" "Bold"Īs you can see, I've tried to set the default width to Medium but it unfortunately does not work. I literally had to buy a book on OpenType fonts in order to understand it.I'm trying to set the default style of a font in nf because for whatever reason the bold version always gets matched: $ fc-match monospace This is how you get the caret positioning. the LIG would advance 625, then the ligature glyph (due to negative left bearing) would actually start rendering over top of the invisible LIG. When it is rendered, it actually renders an invisible character LIG followed by the ligature. The new way makes all the ligatures 625 wide, but the extra stuff is shifted to the left. So => would be 1250 wide vs 625 for a single glyph. The original way was to have a character that was 2-3 glyphs wide. You'll see that all the glyphs have to be shifted left with negative left bearing. In order to support these features, the ligatures have to be redone. I'm working on that currently only the Operator Mono SSm Book and Operator Mono Light (partial) work in the features/contextsubst branch. The actual contextual substitution lookups are really nasty and will have to programmatically generated. Pretty clever, but makes it a little trickier to design the glyphs because you have to calculate the proper LSB. The editor and terminal think there are two characters and the caret is displayed properly. So basically LIG advances one character width, then the ligature moves back to the left with the negative LSB.
The way Fira Code works is that instead of substituting equal + equal into a single double-wide glyph equal_equal.liga like I currently do, it actually uses 2 glyphs, one name LIG which is simply a single width glyph with no visual representation, plus the equal_equal.liga with negative LSB. Vehicle Survey (CVS) is a roadside intercept survey of truck operators. Notice the negative LSB (Left Side Bearing). The physical and gradation specifications for Granular A, B, M, O and SSM are. Here's an animation of how the spacing works. I'm working on an experimental font with a few ligatures for testing. I've been reading up on how contextual substitutions work in OpenType as well as how it's used in Fira Code.