From dd71501fb7005264feb4de78444a2e1518cd4f66 Mon Sep 17 00:00:00 2001 From: Benedikt Rips Date: Sat, 16 May 2026 23:50:25 +0200 Subject: [PATCH] treewide: move NixOS-inherited defaults to their option definitions --- modules/config/i18n.nix | 15 +++++++-------- modules/misc/fontconfig.nix | 13 ++++++++++++- nixos/default.nix | 24 +----------------------- 3 files changed, 20 insertions(+), 32 deletions(-) diff --git a/modules/config/i18n.nix b/modules/config/i18n.nix index e7872c637..d02a87b01 100644 --- a/modules/config/i18n.nix +++ b/modules/config/i18n.nix @@ -16,9 +16,10 @@ # https://github.com/NixOS/nixpkgs/blob/nixpkgs-unstable/pkgs/development/libraries/glibc/nix-locale-archive.patch { - lib, - pkgs, config, + lib, + nixosConfig, + pkgs, ... }: @@ -55,9 +56,8 @@ in This option only applies to the Linux platform. - When Home Manager is configured with NixOS, the default value - will be set to {var}`i18n.glibcLocales` from the - system configuration. + If Home Manager is installed as a NixOS submodule, this + option defaults to NixOS' {var}`i18n.glibcLocales`. ''; example = lib.literalExpression '' pkgs.glibcLocales.override { @@ -65,9 +65,8 @@ in locales = [ "en_US.UTF-8/UTF-8" ]; } ''; - # NB. See nixos/default.nix for NixOS default. - default = pkgs.glibcLocales; - defaultText = lib.literalExpression "pkgs.glibcLocales"; + default = nixosConfig.i18n.glibcLocales or pkgs.glibcLocales; + defaultText = lib.literalExpression "nixosConfig.i18n.glibcLocales or pkgs.glibcLocales"; }; }; diff --git a/modules/misc/fontconfig.nix b/modules/misc/fontconfig.nix index 0f4d38fb5..53478eced 100644 --- a/modules/misc/fontconfig.nix +++ b/modules/misc/fontconfig.nix @@ -5,6 +5,7 @@ { config, lib, + nixosConfig, pkgs, ... }: @@ -70,7 +71,6 @@ in fonts.fontconfig = { enable = lib.mkOption { type = lib.types.bool; - default = false; description = '' Whether to enable fontconfig configuration. This will, for example, allow fontconfig to discover fonts and configurations installed through @@ -80,6 +80,17 @@ in {var}`home-manager.useUserPackages` is enabled, this option defaults to the value of NixOS' {var}`fonts.fontconfig.enable`. ''; + # On NixOS, the per-user directory inside /etc/profiles is not known by + # fontconfig by default. + default = + nixosConfig != null + && nixosConfig.home-manager.useUserPackages + && nixosConfig.fonts.fontconfig.enable; + defaultText = lib.literalExpression '' + nixosConfig != null + && nixosConfig.home-manager.useUserPackages + && nixosConfig.fonts.fontconfig.enable; + ''; }; defaultFonts = { diff --git a/nixos/default.nix b/nixos/default.nix index 51ee84ce7..ddb9820a7 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -68,29 +68,7 @@ in }; config = lib.mkMerge [ - { - home-manager = { - extraSpecialArgs.nixosConfig = config; - - sharedModules = [ - { - key = "home-manager#nixos-shared-module"; - - config = { - # The per-user directory inside /etc/profiles is not known by - # fontconfig by default. - # - # When changing the following line, remember to reflect these - # changes in the description of 'fonts.fontconfig.enable'! - fonts.fontconfig.enable = lib.mkDefault (cfg.useUserPackages && config.fonts.fontconfig.enable); - - # Inherit glibcLocales setting from NixOS. - i18n.glibcLocales = lib.mkDefault config.i18n.glibcLocales; - }; - } - ]; - }; - } + { home-manager.extraSpecialArgs.nixosConfig = config; } (mkIf (!cfg.startAsUserService && cfg.users != { }) { systemd.services = lib.mapAttrs' (