Nerd Fonts + Iosevka font glyphs not showing in unstable v25.05 for Wayland compositor apps

I’m running NixOS unstable channel and trying to set up Isoveska and Nerd Fonts. While the fonts seem to load and render OK, my challenge is getting glyphs / symbols to show. The glyphs and symbols all show up as expected in each of my multiple terminal emulators but not in apps like rofi-wayland, Waybar, or wofi for my Hyprland Wayland compositor.

One added quirk to consider is that my dotfiles are not stored using home-manager. Instead the Hyprland and other UI component configuration files are elegantly crafted as a part of Aditya’s popular “Archcraft” project and distibuted on ko-fi. While the project is native to Arch, the maintainer supports other distros as well. The package of Hyprland configuration files are all called and started using bash scripts. For some added context and to get a sense as to how the rest of the Wayland components are configured with scripts rather than dotfiles, you can view the relevant sub directory tree also on my GitHub there. So this adds a layer of complexity since there are some moving parts.

The rofi/shared/fonts.rasi file includes this declaration:

/* Text Font */

* {
    font: "Iosevka 10";
}

That’s it. That is the only declaration in that whole file. Easy enough. However when I call the rofi_powermenu script this is how the glyphs render:

I’d like to draw your attention to lines 16-29 of my current rofi_powermenu script on my GitHub repo frozen at the latest commit. Take notice of the glyphs menu icons as blank rectangles at those lines.

I can imagine that some of you may be thinking that this is an issue with rofi and not NixOS. Now consider that there are font and glyph issues with both Waybar and wofi-power-menu too:
wofi-powermenu icon squares

Further more, based on my inquiries on Aditya’s official Discord support server, other users of this project both natively on Arch and other distros aren’t experiencing this same font issues. This suggests the source of the issue is isolated to NixOS or my system in particular.

For the upcoming NIxOS release at the end of this month, the way fonts are configured in configuration.nix will be different from previous versions as noted in the official Wiki. This leads me to think that it could be a bug that still needs to be resolved ahead of release although before I log a bug report on the nixpkg GitHub repo I want to make sure I am not overlooking a process or tool or technique more experienced NixOS users might suggest I try first.

According to the NixOS Wiki, as a departure from 24.11 and earlier, the correct expression requires specifying individual fonts in this way:

fonts.packages = with pkgs; [
  nerd-fonts.fira-code
  nerd-fonts.droid-sans-mono
]; 

I have done so accordingly as you can see in my configuration.nix on GitHub at lines 234-244 tt this permalink here.

rofi as quoted earlier uses Iosevka 10 but Waybar uses “Nerd Fonts Symbols Only”. Here is Waybar’s style.css font declaration line:

* {
    font-family: "JetBrains Mono",  "Symbols Nerd Font", Iosevka, archcraft, sans-serif; /** "Symbols Nerd Font Mono", */
    font-size: 12px;
}

I even went so far as to visit Nerd Fonts official website and downloaded the specific “Symbols Only” font package, extracted the zip file locally, and moved the contents to ~/.local/share/fonts directory and then executed $ fc-cache -r after switching and moving the text files around as some NixOS user recommended on reddit.

As a result, take a look at the output of this command:

$ fc-list -v | grep -i symbols
	family: "Symbols Nerd Font Mono"(s)
	fullname: "Symbols Nerd Font Mono"(s)
	file: "/nix/store/zsqw8zwma40dbajnl3xajl73plkqxz51-nerd-fonts-symbols-only-3.4.0/share/fonts/truetype/NerdFonts/Symbols/SymbolsNerdFontMono-Regular.ttf"(s)
	postscriptname: "SymbolsNFM"(s)

	family: "Symbols Nerd Font"(s)
	fullname: "Symbols Nerd Font"(s)
	file: "/home/evangelist/.local/share/fonts/SymbolsNerdFont-Regular.ttf"(s)
	postscriptname: "SymbolsNF"(s)

	family: "Symbols Nerd Font"(s)
	fullname: "Symbols Nerd Font"(s)
	file: "/nix/store/zsqw8zwma40dbajnl3xajl73plkqxz51-nerd-fonts-symbols-only-3.4.0/share/fonts/truetype/NerdFonts/Symbols/SymbolsNerdFont-Regular.ttf"(s)
	postscriptname: "SymbolsNF"(s)

	family: "Symbols Nerd Font"(s)
	fullname: "Symbols Nerd Font"(s)
	file: "/run/current-system/sw/share/fonts/truetype/NerdFonts/Symbols/SymbolsNerdFont-Regular.ttf"(s)
	postscriptname: "SymbolsNF"(s)

	family: "Symbols Nerd Font Mono"(s)
	fullname: "Symbols Nerd Font Mono"(s)
	file: "/run/current-system/sw/share/fonts/truetype/NerdFonts/Symbols/SymbolsNerdFontMono-Regular.ttf"(s)
	postscriptname: "SymbolsNFM"(s)

	family: "Symbols Nerd Font Mono"(s)
	fullname: "Symbols Nerd Font Mono"(s)
	file: "/home/evangelist/.local/share/fonts/SymbolsNerdFontMono-Regular.ttf"(s)
	postscriptname: "SymbolsNFM"(s)

That is proof that Symbols Nerd Font is installed correctly. Symbols Nerd Fonts is installed redundantly using both nixpkgs and manually yet Waybar glyphs are still broken.

As far as I can tell, I have done everything right. What am I missing? Is this a bug? If not, what might more experienced NixOS users suggest I try to troubleshoot next?

When I check Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher I don’t see U+E98F returning any results, so that code point was never covered by nerd fonts. Maybe you just need some different fonts!

I fixed it. Aditya’s most recent release includes fonts in .ttf format in a specific folder with subfolders. I copied all of them to my ~/.local/share/fonts directory. I then executed fc-cache -vf. I rebooted, logged in to my Hyprland session, held my breath, and presto - - success!

I have been troubleshooting these eyesores of unicode hex squares for months and now FINALLY all my rofi/wofi/waybar components are elegant and beautiful. I am stoked! Couldn’t be more thrilled.