{ config, lib, pkgs, ... }: with lib; let cfg = config.fonts.fontconfig; in { meta.maintainers = [ maintainers.rycee ]; options = { fonts.fontconfig = { enableProfileFonts = mkOption { type = types.bool; default = false; example = true; description = '' Configure fontconfig to discover fonts installed through home.packages and nix-env. Note, this is only necessary on non-NixOS systems. ''; }; }; }; config = mkMerge [ (mkIf cfg.enableProfileFonts { xdg.configFile."fontconfig/conf.d/10-nix-profile-fonts.conf".text = '' ~/.nix-profile/lib/X11/fonts ~/.nix-profile/share/fonts ''; }) # If we are inside a NixOS system configuration then packages are # installed through the NixOS `users.users..packages` # option. Unfortunately fontconfig does not know about the # per-user installation directory so we have to add that directory # in a extra configuration file. (mkIf config.nixosSubmodule { xdg.configFile."fontconfig/conf.d/10-nix-per-user-fonts.conf".text = '' /etc/per-user-pkgs/${config.home.username}/lib/X11/fonts /etc/per-user-pkgs/${config.home.username}/share/fonts ''; }) ]; }