Nerdfonts package seems broken

After getting a decent KDE system working (QEMU VM), I tried installing an Xfce system. Using the same main config, I removed the KDE-specific settings and replaced them with Xfce ones. The system seemed to install fine, but…

One package - nerdfonts - is only installing (1) font set: Fira Code. I’ve tried reinstalling the nerdfonts package, but I’m only seeing it grab the Fira Code fonts. When I upgrade my KDE system yesterday, there was no changes to the installed fonts.

configuration.nix

# Edit this configuration file to define what should be installed on
# your system.  Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  system.stateVersion = "23.11";

  # ----- GRUB bootloader ----- #
  boot.loader = {
    efi = {
      canTouchEfiVariables = true;
      efiSysMountPoint = "/boot/efi";
    };
    grub = {
      efiSupport = true;
      device = "nodev";
    };
  };

  # ----- Networking ----- #
  networking = {
    hostName = "nixos-xfce";
    networkmanager.enable = true;
    firewall = {
      enable = true;
      allowedTCPPorts = [ 22 ];
    };
  };

  # ----- NFS mounts ----- #
  fileSystems."/media/host" = {
    device = "dss-endeavouros:/";
    fsType = "nfs";
    options = [ "nfsvers=4.2" "x-systemd.automount" "noauto" ];
  };

  # ----- Locale settings ----- #
  time.timeZone = "America/Los_Angeles";
  i18n.defaultLocale = "en_US.UTF-8";
  i18n.extraLocaleSettings = {
    LC_ADDRESS = "en_US.UTF-8";
    LC_IDENTIFICATION = "en_US.UTF-8";
    LC_MEASUREMENT = "en_US.UTF-8";
    LC_MONETARY = "en_US.UTF-8";
    LC_NAME = "en_US.UTF-8";
    LC_NUMERIC = "en_US.UTF-8";
    LC_PAPER = "en_US.UTF-8";
    LC_TELEPHONE = "en_US.UTF-8";
    LC_TIME = "en_US.UTF-8";
  };

  # ----- Xfce Desktop Environment ----- #
  services.xserver = {
    enable = true;
    layout = "us";
    xkbVariant = "";
    displayManager = {
      autoLogin.enable = true;
      autoLogin.user = "vm-guest";
      lightdm.enable = true;
      defaultSession = "xfce";
    };    
    desktopManager = {
      xterm.enable = false;
      xfce.enable = true;
    };
  };

  # ----- VM Guest user ----- #
  users.users.vm-guest = {
    isNormalUser = true;
    description = "Virtual machine guest account";
    createHome = true;
    extraGroups = [ "networkmanager" "wheel" ];
    uid = 59999;
    initialPassword = "";
  };

  # ----- Printing ----- #
  services = {
    avahi = {
      enable = true;
      nssmdns = true;
      openFirewall = true;
    };
    printing = {
      enable = true;
      drivers = [ pkgs.hplip ];
    };
  };

  # ----- Sound ----- #
  sound.enable = true;
  hardware.pulseaudio.enable = false;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
  };

  # ----- Packages, program settings ----- #
  nixpkgs.config.allowUnfree = true;

  boot.kernelPackages = pkgs.linuxPackages_latest;
  environment.systemPackages = with pkgs; [
    # system
    # package does not install services or config, so on hold for now
    # firewalld
    conky
    lsb-release
    partition-manager
    qemu_kvm
    spice-vdagent
    xdg-user-dirs
     
    # development
    git
    man-pages
    man-pages-posix
    (python311Full.withPackages (ps: with ps; [ 
      distro
      psutil
      pyaml ]))

    # other programs
    bat
    duf
    fd
    inxi
    lsd
    lynis
    nano
    ncdu
    nerdfonts
    nmap
    unison

    # Xfce apps will go here; will add after initial install
  ];

  programs = {
    nano.syntaxHighlight = true;
    nano.nanorc = ''
      set atblanks
      set autoindent
      set boldtext
      set breaklonglines
      set casesensitive
      set constantshow
      set historylog
      set indicator
      set linenumbers
      set locking
      set matchbrackets "(<[{)>]}"
      set mouse
      set nonewlines
      set softwrap
      set tabsize 4
      set tabstospaces
      set trimblanks
      
      set titlecolor bold,white,magenta
      set promptcolor black,yellow
      set statuscolor bold,white,magenta
      set errorcolor bold,white,red
      set spotlightcolor black,orange
      set selectedcolor lightwhite,cyan
      set stripecolor ,yellow
      set scrollercolor magenta
      set numbercolor magenta
      set keycolor lightmagenta
      set functioncolor magenta

      extendsyntax python tabgives "    "
      extendsyntax makefile tabgives "	"

      bind ^X cut main
      bind ^C copy main
      bind ^V paste all
      bind ^Q exit all
      bind ^S savefile main
      bind ^F whereis all
      bind ^G findnext all
      bind ^R replace main
      unbind ^U all
      unbind ^N main
      unbind ^Y all
      unbind M-J main
      unbind M-T main
      bind ^Z undo main
      '';
    partition-manager.enable = true;
  };

  # ----- Services, security settings ----- #
  services = {
    fstrim.enable = true;
    openssh.enable = true;
    qemuGuest.enable = true;
    spice-vdagentd.enable = true;
  };

  security = {
    rtkit.enable = true;
    sudo.wheelNeedsPassword = false;
  };
}

Everything else is working fine, it’s just the nerdfonts package. Is there another set of packages I need to install on Xfce? I haven’t yet added any Xfce-specific package, so this is a very stripped-down system.

Have you tried installing them with fonts.packages, as outlined in this wiki?

https://nixos.wiki/wiki/Fonts

That link does not specify how to install the entire nerdfonts package, which is what I want and is working on KDE. What is KDE doing differently than Xfce? I really don’t want to go through the entire font list and add them all.

I was thinking less about the specific implementation of only installing one package, as that’s clearly not what you want.

Thinking more about the usage of fonts.packages (or fonts.fonts) to install the nerdfonts package.

For example, if you’re on NixOS 23.05:

fonts.fonts = [ pkgs.nerdfonts ];

Or, if you’re tracking unstable:

fonts.packages = [ pkgs.nerdfonts ];
1 Like