Only one OpenDyslexic font variant available via fontconfig

I’m using home-manager’s home.packages to install a fonts package pkgs.nerd-fonts.open-dyslexic. It has quite a few fonts in it, which seems to be acknowledged by this line of output from fc-cache -fv:

/nix/store/fp7byywdn8xnxycjvhm0n658wv491qjr-nerd-fonts-open-dyslexic-3.4.0+2.001/share/fonts/opentype/NerdFonts/OpenDyslexic: caching, new cache contents: 19 fonts, 0 dirs

Some more interesting lines from that invocation:

/home/mightyiam/.cache/fontconfig: cleaning cache directory
/home/mightyiam/.cache/fontconfig: invalid cache file: dd6d7fb6d7657f358141ed2a7f5ebe10-x86_64.cache-9
/home/mightyiam/.cache/fontconfig: invalid cache file: a171ae381967a88231f388431c1c6754-x86_64.cache-9
/home/mightyiam/.cache/fontconfig: invalid cache file: 37488aead176055e42618143321ce87b-x86_64.cache-9

And here’s the problem. I only actually seem to get one of those fonts:

$ fc-list | grep -i dyslexic
/home/mightyiam/.nix-profile/share/fonts/opentype/NerdFonts/OpenDyslexic/OpenDyslexicMNerdFontMono-Regular.otf: OpenDyslexicM Nerd Font Mono:style=Regular
/nix/store/2g9z29wf76jznqnhf1kx7z0h52wq7q8h-home-manager-path/share/fonts/opentype/NerdFonts/OpenDyslexic/OpenDyslexicMNerdFontMono-Regular.otf: OpenDyslexicM Nerd Font Mono:style=Regular
/nix/store/fp7byywdn8xnxycjvhm0n658wv491qjr-nerd-fonts-open-dyslexic-3.4.0+2.001/share/fonts/opentype/NerdFonts/OpenDyslexic/OpenDyslexicMNerdFontMono-Regular.otf: OpenDyslexicM Nerd Font Mono:style=Regular

I can confirm that other font files in that package have different names and otherwise view metadata. Is there anything wrong in this metadata?

$ fc-query /nix/store/fp7byywdn8xnxycjvhm0n658wv491qjr-nerd-fonts-open-dyslexic-3.4.0+2.001/share/fonts/opentype/NerdFonts/OpenDyslexic/OpenDyslexicNerdFont-Regular.otf
Pattern has 28 elts (size 32)
	family: "OpenDyslexic Nerd Font"(s)
	familylang: "en"(s)
	style: "Regular"(s)
	stylelang: "en"(s)
	fullname: "OpenDyslexic Nerd Font"(s)
	fullnamelang: "en"(s)
	slant: 0(i)(s)
	weight: 80(f)(s)
	width: 100(f)(s)
	foundry: "UKWN"(s)
	file: "/nix/store/fp7byywdn8xnxycjvhm0n658wv491qjr-nerd-fonts-open-dyslexic-3.4.0+2.001/share/fonts/opentype/NerdFonts/OpenDyslexic/OpenDyslexicNerdFont-Regular.otf"(s)
	index: 0(i)(s)
	outline: True(s)
	scalable: True(s)
	charset:
	0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff
	0001: cfcffcff fecfcfcf cfff3dff 7fffcfff 00040000 00018003 dfffe000 c00000c0
	0002: 0f000000 00000f00 00000000 00000000 00000000 00000000 3f0000c0 00000000
	0003: 08000200 00022048 00000000 00000000 00000000 00000000 00000001 00000000
	0004: ffffdffe ffffffff dffeffff 003c000c ffff0000 ffffffff ffffffff 33ffffff
	0005: 300f0000 000000f0 00000000 00000000 00000000 00000000 00000000 00000000
	001e: 000cf030 f0c0c030 000f3cf0 0003f00c 000c003f ffffffff ffffffff 03ffffff
	0020: 77180000 06010047 00000010 00000000 00000000 00001000 00000000 00000000
	0021: 00000000 00000044 00000000 00000000 00000000 00000000 00000000 00000000
	0022: 46068044 00000800 00000100 00000031 00000000 00000000 00000000 00000000
	0023: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 78000000
	0025: 00000000 00000000 00000000 00000000 00000000 00000000 00000400 00000000
	0026: 00000000 00010000 00000000 00000020 00000000 00000002 00000000 00000000
	0027: 00000000 00000000 00000000 0003f000 00000000 00000000 00000000 00000000
	002b: 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00000000
	00e0: 000007ff 00000000 00000000 00000000 00000000 ffff000f 00d7f5ff 00000000
	00e2: ffffffff ffffffff ffffffff ffffffff ffffffff 000003ff 00000000 00000000
	00e3: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0000000f
	00e5: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 fc000000
	00e6: ffffffff ffffffff ffffffff ffffffff ffffffff 01ffffff 00000000 00000000
	00e7: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00e8: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0000ffff
	00ea: 00000000 00000000 00000000 ffffffff ffff9dff ffffffff fffff2ff ffffffff
	00eb: fffffbff ffffffff ffff7fff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ec: 7fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	00ed: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ee: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ef: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 00007fff 00000000
	00f0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00f1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00f2: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00f3: ffffffff ffffffff ffffffff ffffffff 00000003 00000000 00000000 00000000
	00f4: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00f5: ffffffff 000fffff 00000000 00000000 00000000 00000000 00000000 00000000
	00fb: 00000006 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	0f00: fffffffe ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f01: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f02: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f03: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f04: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f05: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f06: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f07: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f08: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f09: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f0a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f0b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f0c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f0d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f0e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f0f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f10: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f11: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f12: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f13: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f14: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f15: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f16: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f17: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f18: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f19: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0f1a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0001ffff
(s)
	lang: aa|ab|ast|av|ay|ba|be|bg|bi|br|bs|bua|ca|ce|ch|chm|co|cs|cv|cy|da|de|en|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gn|gv|ho|hr|hu|ia|ig|id|ie|ik|io|is|it|kaa|ki|kk|kum|kv|ky|lb|lez|lt|lv|mg|mh|mo|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|os|pl|pt|rm|ro|ru|sah|se|sel|sh|sk|sl|sma|smj|smn|so|sq|sr|ss|st|sv|sw|tg|tk|tl|tn|tr|ts|tt|tyv|uk|uz|ve|vo|vot|wa|wen|wo|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|ku-tr|kwm|lg|li|mn-mn|ms|na|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za|agr|ayc|bem|dsb|lij|mfe|mhr|miq|mjw|nhn|niu|tpi|unm|wae|yuw(s)
	fontversion: 131137(i)(s)
	capability: "otlayout:DFLT otlayout:grek otlayout:latn"(s)
	fontformat: "CFF"(s)
	decorative: False(s)
	postscriptname: "OpenDyslexicNF-Regular"(s)
	color: False(s)
	symbol: False(s)
	variable: False(s)
	fonthashint: False(s)
	order: 0(i)(s)
	namedinstance: False(s)
	fontwrapper: "SFNT"(s)

I don’t have a reason to believe that this is not an upstream issue.

Does anyone know how I can make progress on debugging this?

I tried it installing this font globally (in nixos config, instead of home manager) and for me nothing showed up at all, although I didn’t get any errors messages. Probably best to open a issue in nixpkgs Sign in to GitHub · GitHub .
I looked around in the nixstore and one weird thing I noticed was that all other working nerd fonts I had installed had a truetype directory (/nix/store/xxx-nerd-fonts-jetbrains-mono-3.4.0+2.304/share/fonts/truetype/*), meanwhile open-dyslexic only had openfont (/nix/store/xxx-nerd-fonts-open-dyslexic-3.4.0+2.001/share/fonts/opentype/NerdFonts/OpenDyslexic/*). Maybe this has somethign to do with it?

Hmm, I tried to reproduce your issue without home-manager but couldn’t, so I think this might be something home-manager-specific.

I added this line to my config: fonts.packages = with pkgs; [ nerd-fonts.open-dyslexic ]

And then I checked fc-list (didn’t need to manually call fc-cache?) and got what I think you were expecting:

$ fc-list | grep dys                                                                                      
/nix/store/fp7byywdn8xnxycjvhm0n658wv491qjr-nerd-fonts-open-dyslexic-3.4.0+2.001/share/fonts/opentype/NerdFonts/OpenDyslexic/OpenDyslexicNerdFont-BoldItalic.otf: OpenDyslexic Nerd Font:style=Bold Italic
<snip>
/nix/store/fp7byywdn8xnxycjvhm0n658wv491qjr-nerd-fonts-open-dyslexic-3.4.0+2.001/share/fonts/opentype/NerdFonts/OpenDyslexic/OpenDyslexicNerdFontPropo-Bold.otf: OpenDyslexic Nerd Font Propo:style=Bold
$ fc-list | grep dys | wc -l
19
1 Like

Maybe