diff options
author | Ryan Lahfa <masterancpp@gmail.com> | 2023-03-19 20:13:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-19 20:13:25 +0100 |
commit | 618ba94934f72932b0a4067d25ccaf5a71a583a1 (patch) | |
tree | c1c5e8147679e142c0712d126bbd9dc30995b2be /nixos | |
parent | 704fe52ed28f934671dbc76c633658b36989121b (diff) | |
parent | 5bb65387bf4c33753c972371cf32e625ce450c47 (diff) |
Merge pull request #210205 from 9ary/kernel-fonts
Build the large Terminus font into the kernel
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/config/console.nix | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/nixos/modules/config/console.nix b/nixos/modules/config/console.nix index f5db5dc5dfc11..7c8a45bc5318f 100644 --- a/nixos/modules/config/console.nix +++ b/nixos/modules/config/console.nix @@ -21,7 +21,7 @@ let # Sadly, systemd-vconsole-setup doesn't support binary keymaps. vconsoleConf = pkgs.writeText "vconsole.conf" '' KEYMAP=${cfg.keyMap} - FONT=${cfg.font} + ${optionalString (cfg.font != null) "FONT=${cfg.font}"} ''; consoleEnv = kbd: pkgs.buildEnv { @@ -45,7 +45,7 @@ in }; font = mkOption { - type = with types; either str path; + type = with types; nullOr (either str path); default = "Lat2-Terminus16"; example = "LatArCyrHeb-16"; description = mdDoc '' @@ -53,6 +53,13 @@ in whatever the {command}`setfont` program considers the default font. Can be either a font name or a path to a PSF font file. + + Use `null` to let the kernel choose a built-in font. + The default is 8x16, and, as of Linux 5.3, Terminus 32 bold for display + resolutions of 2560x1080 and higher. + These fonts cover the [IBM437][] character set. + + [IBM437]: https://en.wikipedia.org/wiki/Code_page_437 ''; }; @@ -151,7 +158,7 @@ in printf "\033%%${if isUnicode then "G" else "@"}" >> /dev/console loadkmap < ${optimizedKeymap} - ${optionalString cfg.earlySetup '' + ${optionalString (cfg.earlySetup && cfg.font != null) '' setfont -C /dev/console $extraUtils/share/consolefonts/font.psf ''} ''); @@ -168,7 +175,7 @@ in "${config.boot.initrd.systemd.package.kbd}/bin/setfont" "${config.boot.initrd.systemd.package.kbd}/bin/loadkeys" "${config.boot.initrd.systemd.package.kbd.gzip}/bin/gzip" # Fonts and keyboard layouts are compressed - ] ++ optionals (hasPrefix builtins.storeDir cfg.font) [ + ] ++ optionals (cfg.font != null && hasPrefix builtins.storeDir cfg.font) [ "${cfg.font}" ] ++ optionals (hasPrefix builtins.storeDir cfg.keyMap) [ "${cfg.keyMap}" @@ -195,7 +202,7 @@ in ]; }) - (mkIf (cfg.earlySetup && !config.boot.initrd.systemd.enable) { + (mkIf (cfg.earlySetup && cfg.font != null && !config.boot.initrd.systemd.enable) { boot.initrd.extraUtilsCommands = '' mkdir -p $out/share/consolefonts ${if substring 0 1 cfg.font == "/" then '' |