diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2020-10-06 10:25:58 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2020-10-06 10:25:58 +0200 |
commit | 692d219a9312fbe3f8b34858a7ca0e32fb72bd07 (patch) | |
tree | 4c0f5e46b2cf639e71acb43990697d769a969d2c /nixos/modules/config | |
parent | c1a0aa7eb73f86b0224a57671752673befe08953 (diff) | |
parent | 82390e264704e4e1bf1652c9bebdc30a48f7fd07 (diff) |
Merge staging-next into staging
Diffstat (limited to 'nixos/modules/config')
-rw-r--r-- | nixos/modules/config/fonts/fontdir.nix | 47 | ||||
-rw-r--r-- | nixos/modules/config/fonts/fonts.nix | 12 |
2 files changed, 40 insertions, 19 deletions
diff --git a/nixos/modules/config/fonts/fontdir.nix b/nixos/modules/config/fonts/fontdir.nix index a6aa84ae8224b..264d73ebafa53 100644 --- a/nixos/modules/config/fonts/fontdir.nix +++ b/nixos/modules/config/fonts/fontdir.nix @@ -4,15 +4,19 @@ with lib; let + cfg = config.fonts.fontDir; + x11Fonts = pkgs.runCommand "X11-fonts" { preferLocalBuild = true; } '' - mkdir -p "$out/share/X11-fonts" - find ${toString config.fonts.fonts} \ - \( -name fonts.dir -o -name '*.ttf' -o -name '*.otf' \) \ - -exec ln -sf -t "$out/share/X11-fonts" '{}' \; - cd "$out/share/X11-fonts" - rm -f fonts.dir fonts.scale fonts.alias - ${pkgs.xorg.mkfontdir}/bin/mkfontdir + mkdir -p "$out/share/X11/fonts" + font_regexp='.*\.\(ttf\|otf\|pcf\|pfa\|pfb\|bdf\)\(\.gz\)?' + find ${toString config.fonts.fonts} -regex "$font_regexp" \ + -exec ln -sf -t "$out/share/X11/fonts" '{}' \; + cd "$out/share/X11/fonts" + ${optionalString cfg.decompressFonts '' + ${pkgs.gzip}/bin/gunzip -f *.gz + ''} ${pkgs.xorg.mkfontscale}/bin/mkfontscale + ${pkgs.xorg.mkfontdir}/bin/mkfontdir cat $(find ${pkgs.xorg.fontalias}/ -name fonts.alias) >fonts.alias ''; @@ -21,28 +25,43 @@ in { options = { + fonts.fontDir = { - fonts = { - - enableFontDir = mkOption { + enable = mkOption { type = types.bool; default = false; description = '' Whether to create a directory with links to all fonts in - <filename>/run/current-system/sw/share/X11-fonts</filename>. + <filename>/run/current-system/sw/share/X11/fonts</filename>. ''; }; - }; + decompressFonts = mkOption { + type = types.bool; + default = config.programs.xwayland.enable; + description = '' + Whether to decompress fonts in + <filename>/run/current-system/sw/share/X11/fonts</filename>. + ''; + }; + }; }; - config = mkIf config.fonts.enableFontDir { + config = mkIf cfg.enable { + # This is enough to make a symlink because the xserver + # module already links all /share/X11 paths. environment.systemPackages = [ x11Fonts ]; - environment.pathsToLink = [ "/share/X11-fonts" ]; + services.xserver.filesSection = '' + FontPath "${x11Fonts}/share/X11/fonts" + ''; }; + imports = [ + (mkRenamedOptionModule [ "fonts" "enableFontDir" ] [ "fonts" "fontDir" "enable" ]) + ]; + } diff --git a/nixos/modules/config/fonts/fonts.nix b/nixos/modules/config/fonts/fonts.nix index b9bae44b2f9c1..3911196c10133 100644 --- a/nixos/modules/config/fonts/fonts.nix +++ b/nixos/modules/config/fonts/fonts.nix @@ -35,19 +35,21 @@ with lib; config = { fonts.fonts = mkIf config.fonts.enableDefaultFonts - [ - pkgs.xorg.fontbhlucidatypewriter100dpi - pkgs.xorg.fontbhlucidatypewriter75dpi + ([ pkgs.dejavu_fonts pkgs.freefont_ttf pkgs.gyre-fonts # TrueType substitutes for standard PostScript fonts pkgs.liberation_ttf - pkgs.xorg.fontbh100dpi pkgs.xorg.fontmiscmisc pkgs.xorg.fontcursormisc pkgs.unifont pkgs.noto-fonts-emoji - ]; + ] ++ lib.optionals (config.nixpkgs.config.allowUnfree or false) [ + # these are unfree, and will make usage with xserver fail + pkgs.xorg.fontbhlucidatypewriter100dpi + pkgs.xorg.fontbhlucidatypewriter75dpi + pkgs.xorg.fontbh100dpi + ]); }; |