Merge pull request #244332 from SuperSandro2000/fonts-fonts

nixos/fonts: rename fonts.fonts option to fonts.packages, other cleanups
This commit is contained in:
asymmetric 2023-07-25 09:49:25 +02:00 committed by GitHub
commit 46df012d2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
32 changed files with 90 additions and 100 deletions

View file

@ -34,5 +34,7 @@ The `ibus-engines.typing-booster` package contains a program named `emoji-picker
On NixOS, it can be installed using the following expression: On NixOS, it can be installed using the following expression:
```nix ```nix
{ pkgs, ... }: { fonts.fonts = with pkgs; [ noto-fonts-emoji ]; } { pkgs, ... }: {
fonts.packages = with pkgs; [ noto-fonts-emoji ];
}
``` ```

View file

@ -123,6 +123,8 @@
- `buildGoModule` `go-modules` attrs have been renamed to `goModules`. - `buildGoModule` `go-modules` attrs have been renamed to `goModules`.
- The `fonts.fonts` and `fonts.enableDefaultFonts` options have been renamed to `fonts.packages` and `fonts.enableDefaultPackages` respectively.
- `services.fail2ban.jails` can now be configured with attribute sets defining settings and filters instead of lines. The stringed options `daemonConfig` and `extraSettings` have respectively been replaced by `daemonSettings` and `jails.DEFAULT.settings` which use attribute sets. - `services.fail2ban.jails` can now be configured with attribute sets defining settings and filters instead of lines. The stringed options `daemonConfig` and `extraSettings` have respectively been replaced by `daemonSettings` and `jails.DEFAULT.settings` which use attribute sets.
- The module [services.ankisyncd](#opt-services.ankisyncd.package) has been switched to [anki-sync-server-rs](https://github.com/ankicommunity/anki-sync-server-rs) from the old python version, which was difficult to update, had not been updated in a while, and did not support recent versions of anki. - The module [services.ankisyncd](#opt-services.ankisyncd.package) has been switched to [anki-sync-server-rs](https://github.com/ankicommunity/anki-sync-server-rs) from the old python version, which was difficult to update, had not been updated in a while, and did not support recent versions of anki.

View file

@ -42,7 +42,7 @@ let
# looking things up. # looking things up.
makeCacheConf = { }: makeCacheConf = { }:
let let
makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; }; makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.packages; };
cache = makeCache pkgs.fontconfig; cache = makeCache pkgs.fontconfig;
cache32 = makeCache pkgs.pkgsi686Linux.fontconfig; cache32 = makeCache pkgs.pkgsi686Linux.fontconfig;
in in
@ -51,7 +51,7 @@ let
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'> <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
<fontconfig> <fontconfig>
<!-- Font directories --> <!-- Font directories -->
${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)} ${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.packages)}
${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) '' ${optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
<!-- Pre-generated font caches --> <!-- Pre-generated font caches -->
<cachedir>${cache}</cachedir> <cachedir>${cache}</cachedir>

View file

@ -9,7 +9,7 @@ let
x11Fonts = pkgs.runCommand "X11-fonts" { preferLocalBuild = true; } '' x11Fonts = pkgs.runCommand "X11-fonts" { preferLocalBuild = true; } ''
mkdir -p "$out/share/X11/fonts" mkdir -p "$out/share/X11/fonts"
font_regexp='.*\.\(ttf\|ttc\|otb\|otf\|pcf\|pfa\|pfb\|bdf\)\(\.gz\)?' font_regexp='.*\.\(ttf\|ttc\|otb\|otf\|pcf\|pfa\|pfb\|bdf\)\(\.gz\)?'
find ${toString config.fonts.fonts} -regex "$font_regexp" \ find ${toString config.fonts.packages} -regex "$font_regexp" \
-exec ln -sf -t "$out/share/X11/fonts" '{}' \; -exec ln -sf -t "$out/share/X11/fonts" '{}' \;
cd "$out/share/X11/fonts" cd "$out/share/X11/fonts"
${optionalString cfg.decompressFonts '' ${optionalString cfg.decompressFonts ''

View file

@ -1,47 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.fonts;
defaultFonts =
[ pkgs.dejavu_fonts
pkgs.freefont_ttf
pkgs.gyre-fonts # TrueType substitutes for standard PostScript fonts
pkgs.liberation_ttf
pkgs.unifont
pkgs.noto-fonts-emoji
];
in
{
imports = [
(mkRemovedOptionModule [ "fonts" "enableCoreFonts" ] "Use fonts.fonts = [ pkgs.corefonts ]; instead.")
];
options = {
fonts = {
# TODO: find another name for it.
fonts = mkOption {
type = types.listOf types.path;
default = [];
example = literalExpression "[ pkgs.dejavu_fonts ]";
description = lib.mdDoc "List of primary font paths.";
};
enableDefaultFonts = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Enable a basic set of fonts providing several font styles
and families and reasonable coverage of Unicode.
'';
};
};
};
config = { fonts.fonts = mkIf cfg.enableDefaultFonts defaultFonts; };
}

View file

@ -3,31 +3,21 @@
with lib; with lib;
{ {
options = { options = {
fonts.enableGhostscriptFonts = mkOption {
fonts = { type = types.bool;
default = false;
enableGhostscriptFonts = mkOption { description = lib.mdDoc ''
type = types.bool; Whether to add the fonts provided by Ghostscript (such as
default = false; various URW fonts and the Base-14 Postscript fonts) to the
description = lib.mdDoc '' list of system fonts, making them available to X11
Whether to add the fonts provided by Ghostscript (such as applications.
various URW fonts and the Base-14 Postscript fonts) to the '';
list of system fonts, making them available to X11
applications.
'';
};
}; };
}; };
config = mkIf config.fonts.enableGhostscriptFonts { config = mkIf config.fonts.enableGhostscriptFonts {
fonts.packages = [ "${pkgs.ghostscript}/share/ghostscript/fonts" ];
fonts.fonts = [ "${pkgs.ghostscript}/share/ghostscript/fonts" ];
}; };
} }

View file

@ -0,0 +1,43 @@
{ config, lib, pkgs, ... }:
let
cfg = config.fonts;
in
{
imports = [
(lib.mkRemovedOptionModule [ "fonts" "enableCoreFonts" ] "Use fonts.packages = [ pkgs.corefonts ]; instead.")
(lib.mkRenamedOptionModule [ "fonts" "enableDefaultFonts " ] [ "fonts" "enableDefaultPackages" ])
(lib.mkRenamedOptionModule [ "fonts" "fonts" ] [ "fonts" "packages" ])
];
options = {
fonts = {
packages = lib.mkOption {
type = with lib.types; listOf path;
default = [];
example = lib.literalExpression "[ pkgs.dejavu_fonts ]";
description = lib.mdDoc "List of primary font packages.";
};
enableDefaultPackages = lib.mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc ''
Enable a basic set of fonts providing several styles
and families and reasonable coverage of Unicode.
'';
};
};
};
config = {
fonts.packages = lib.mkIf cfg.enableDefaultPackages (with pkgs; [
dejavu_fonts
freefont_ttf
gyre-fonts # TrueType substitutes for standard PostScript fonts
liberation_ttf
unifont
noto-fonts-emoji
]);
};
}

View file

@ -4,8 +4,8 @@
./config/debug-info.nix ./config/debug-info.nix
./config/fonts/fontconfig.nix ./config/fonts/fontconfig.nix
./config/fonts/fontdir.nix ./config/fonts/fontdir.nix
./config/fonts/fonts.nix
./config/fonts/ghostscript.nix ./config/fonts/ghostscript.nix
./config/fonts/packages.nix
./config/gnu.nix ./config/gnu.nix
./config/gtk/gtk-icon-cache.nix ./config/gtk/gtk-icon-cache.nix
./config/i18n.nix ./config/i18n.nix

View file

@ -60,7 +60,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = [ cfg.finalPackage ]; environment.systemPackages = [ cfg.finalPackage ];
fonts.enableDefaultFonts = mkDefault true; fonts.enableDefaultPackages = mkDefault true;
hardware.opengl.enable = mkDefault true; hardware.opengl.enable = mkDefault true;
programs = { programs = {

View file

@ -66,7 +66,7 @@ in {
}; };
hardware.opengl.enable = lib.mkDefault true; hardware.opengl.enable = lib.mkDefault true;
fonts.enableDefaultFonts = lib.mkDefault true; fonts.enableDefaultPackages = lib.mkDefault true;
programs.dconf.enable = lib.mkDefault true; programs.dconf.enable = lib.mkDefault true;
programs.xwayland.enable = lib.mkDefault true; programs.xwayland.enable = lib.mkDefault true;

View file

@ -5,7 +5,7 @@
}; };
hardware.opengl.enable = mkDefault true; hardware.opengl.enable = mkDefault true;
fonts.enableDefaultFonts = mkDefault true; fonts.enableDefaultPackages = mkDefault true;
programs = { programs = {
dconf.enable = mkDefault true; dconf.enable = mkDefault true;

View file

@ -375,7 +375,7 @@ in
# Munin is hardcoded to use DejaVu Mono and the graphs come out wrong if # Munin is hardcoded to use DejaVu Mono and the graphs come out wrong if
# it's not available. # it's not available.
fonts.fonts = [ pkgs.dejavu_fonts ]; fonts.packages = [ pkgs.dejavu_fonts ];
systemd.timers.munin-cron = { systemd.timers.munin-cron = {
description = "batch Munin master programs"; description = "batch Munin master programs";

View file

@ -121,7 +121,7 @@ in
icons.enable = true; icons.enable = true;
}; };
fonts.enableDefaultFonts = mkDefault true; fonts.enableDefaultPackages = mkDefault true;
systemd = { systemd = {
services.xrdp = { services.xrdp = {

View file

@ -111,7 +111,7 @@ in {
fonts = mkIf (cfg.fonts != null) { fonts = mkIf (cfg.fonts != null) {
fontconfig.enable = true; fontconfig.enable = true;
fonts = map (f: f.package) cfg.fonts; packages = map (f: f.package) cfg.fonts;
}; };
}; };
} }

View file

@ -156,7 +156,7 @@ in {
++ cfg.sessionPath; ++ cfg.sessionPath;
# Fonts. # Fonts.
fonts.fonts = mkDefault [ fonts.packages = mkDefault [
pkgs.noto-fonts pkgs.noto-fonts
pkgs.hack-font pkgs.hack-font
]; ];

View file

@ -218,7 +218,7 @@ in
qt.style = "adwaita"; qt.style = "adwaita";
# Default Fonts # Default Fonts
fonts.fonts = with pkgs; [ fonts.packages = with pkgs; [
source-code-pro # Default monospace font in 3.32 source-code-pro # Default monospace font in 3.32
ubuntu_font_family # required for default theme ubuntu_font_family # required for default theme
]; ];

View file

@ -67,7 +67,7 @@ in
networking.networkmanager.enable = mkDefault true; networking.networkmanager.enable = mkDefault true;
programs.dconf.enable = mkDefault true; programs.dconf.enable = mkDefault true;
fonts.fonts = with pkgs; [ noto-fonts ]; fonts.packages = with pkgs; [ noto-fonts ];
xdg.mime.enable = true; xdg.mime.enable = true;
xdg.menus.enable = true; xdg.menus.enable = true;
xdg.icons.enable = true; xdg.icons.enable = true;

View file

@ -92,7 +92,7 @@ in
environment.etc."X11/xkb".source = xcfg.xkbDir; environment.etc."X11/xkb".source = xcfg.xkbDir;
fonts.fonts = [ pkgs.dejavu_fonts pkgs.ubuntu_font_family ]; fonts.packages = [ pkgs.dejavu_fonts pkgs.ubuntu_font_family ];
services.udisks2.enable = true; services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;

View file

@ -432,7 +432,7 @@ in
isSystem = true; isSystem = true;
}; };
fonts.fonts = with pkgs; [ fonts.packages = with pkgs; [
cantarell-fonts cantarell-fonts
dejavu_fonts dejavu_fonts
source-code-pro # Default monospace font in 3.32 source-code-pro # Default monospace font in 3.32

View file

@ -265,7 +265,7 @@ in
qt.style = "adwaita"; qt.style = "adwaita";
# Default Fonts # Default Fonts
fonts.fonts = with pkgs; [ fonts.packages = with pkgs; [
inter inter
open-dyslexic open-dyslexic
open-sans open-sans
@ -306,7 +306,7 @@ in
])) config.environment.pantheon.excludePackages; ])) config.environment.pantheon.excludePackages;
# needed by screenshot # needed by screenshot
fonts.fonts = [ fonts.packages = [
pkgs.pantheon.elementary-redacted-script pkgs.pantheon.elementary-redacted-script
]; ];
}) })

View file

@ -332,7 +332,7 @@ in
# Enable GTK applications to load SVG icons # Enable GTK applications to load SVG icons
services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ]; services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
fonts.fonts = with pkgs; [ cfg.notoPackage hack-font ]; fonts.packages = with pkgs; [ cfg.notoPackage hack-font ];
fonts.fontconfig.defaultFonts = { fonts.fontconfig.defaultFonts = {
monospace = [ "Hack" "Noto Sans Mono" ]; monospace = [ "Hack" "Noto Sans Mono" ];
sansSerif = [ "Noto Sans" ]; sansSerif = [ "Noto Sans" ];

View file

@ -142,7 +142,7 @@ in
theme theme
]; ];
fonts.fonts = [ font ]; fonts.packages = [ font ];
environment.etc."lightdm/slick-greeter.conf".source = slickGreeterConf; environment.etc."lightdm/slick-greeter.conf".source = slickGreeterConf;
}; };

View file

@ -22,7 +22,7 @@ let
}; };
fontsForXServer = fontsForXServer =
config.fonts.fonts ++ config.fonts.packages ++
# We don't want these fonts in fonts.conf, because then modern, # We don't want these fonts in fonts.conf, because then modern,
# fontconfig-based applications will get horrible bitmapped # fontconfig-based applications will get horrible bitmapped
# Helvetica fonts. It's better to get a substitution (like Nimbus # Helvetica fonts. It's better to get a substitution (like Nimbus
@ -883,8 +883,8 @@ in
${cfg.extraConfig} ${cfg.extraConfig}
''; '';
fonts.enableDefaultFonts = mkDefault true; fonts.enableDefaultPackages = mkDefault true;
fonts.fonts = [ fonts.packages = [
(if cfg.upscaleDefaultCursor then fontcursormisc_hidpi else pkgs.xorg.fontcursormisc) (if cfg.upscaleDefaultCursor then fontcursormisc_hidpi else pkgs.xorg.fontcursormisc)
pkgs.xorg.fontmiscmisc pkgs.xorg.fontmiscmisc
]; ];

View file

@ -11,7 +11,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
{ {
imports = [ ./common/user-account.nix ]; imports = [ ./common/user-account.nix ];
fonts.fonts = with pkgs; [ dejavu_fonts ]; fonts.packages = with pkgs; [ dejavu_fonts ];
services.cage = { services.cage = {
enable = true; enable = true;

View file

@ -4,7 +4,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
nodes.machine = { pkgs, ... }: { nodes.machine = { pkgs, ... }: {
imports = [ ./common/user-account.nix ]; imports = [ ./common/user-account.nix ];
environment.systemPackages = [ pkgs.poppler_utils ]; environment.systemPackages = [ pkgs.poppler_utils ];
fonts.fonts = [ pkgs.dejavu_fonts ]; # yields more OCR-able pdf fonts.packages = [ pkgs.dejavu_fonts ]; # yields more OCR-able pdf
services.printing.cups-pdf.enable = true; services.printing.cups-pdf.enable = true;
services.printing.cups-pdf.instances = { services.printing.cups-pdf.instances = {
opt = {}; opt = {};

View file

@ -7,8 +7,8 @@ import ./make-test-python.nix ({ lib, ... }:
]; ];
nodes.machine = { config, pkgs, ... }: { nodes.machine = { config, pkgs, ... }: {
fonts.enableDefaultFonts = true; # Background fonts fonts.enableDefaultPackages = true; # Background fonts
fonts.fonts = with pkgs; [ fonts.packages = with pkgs; [
noto-fonts-emoji noto-fonts-emoji
cantarell-fonts cantarell-fonts
twitter-color-emoji twitter-color-emoji

View file

@ -83,7 +83,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
}; };
}; };
fonts.fonts = [ pkgs.inconsolata ]; fonts.packages = [ pkgs.inconsolata ];
}; };
enableOCR = true; enableOCR = true;

View file

@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
nodes.machine = { nodes.machine = {
imports = [ ./common/x11.nix ]; imports = [ ./common/x11.nix ];
fonts = { fonts = {
enableDefaultFonts = false; enableDefaultPackages = false;
fonts = [ pkgs.noto-fonts-cjk-sans ]; fonts = [ pkgs.noto-fonts-cjk-sans ];
}; };
}; };

View file

@ -6,7 +6,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
imports = [ ./common/x11.nix ]; imports = [ ./common/x11.nix ];
environment.systemPackages = [ pkgs.gedit ]; environment.systemPackages = [ pkgs.gedit ];
fonts = { fonts = {
enableDefaultFonts = false; enableDefaultPackages = false;
fonts = with pkgs;[ fonts = with pkgs;[
noto-fonts noto-fonts
noto-fonts-cjk-sans noto-fonts-cjk-sans

View file

@ -51,7 +51,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
''; '';
}; };
fonts.fonts = [ pkgs.inconsolata ]; fonts.packages = [ pkgs.inconsolata ];
# Automatically configure and start Sway when logging in on tty1: # Automatically configure and start Sway when logging in on tty1:
programs.bash.loginShellInit = '' programs.bash.loginShellInit = ''

View file

@ -8,7 +8,7 @@ let
environment.variables.NIXOS_OZONE_WL = "1"; environment.variables.NIXOS_OZONE_WL = "1";
environment.variables.DISPLAY = "do not use"; environment.variables.DISPLAY = "do not use";
fonts.fonts = with pkgs; [ dejavu_fonts ]; fonts.packages = with pkgs; [ dejavu_fonts ];
}; };
xorg = { pkgs, ... }: { xorg = { pkgs, ... }: {
imports = [ ./common/user-account.nix ./common/x11.nix ]; imports = [ ./common/user-account.nix ./common/x11.nix ];

View file

@ -103,7 +103,7 @@ in (buildEnv {
passthru = { passthru = {
# This is set primarily to help find-tarballs.nix to do its job # This is set primarily to help find-tarballs.nix to do its job
packages = pkgList.all; packages = pkgList.all;
# useful for inclusion in the `fonts.fonts` nixos option or for use in devshells # useful for inclusion in the `fonts.packages` nixos option or for use in devshells
fonts = "${texmfroot}/texmf-dist/fonts"; fonts = "${texmfroot}/texmf-dist/fonts";
}; };