diff --git a/modules/misc/fontconfig.nix b/modules/misc/fontconfig.nix
index 53478eced..f1830bf59 100644
--- a/modules/misc/fontconfig.nix
+++ b/modules/misc/fontconfig.nix
@@ -16,11 +16,35 @@ let
inherit (config.home) profileDirectory;
+ globalConfig = config;
fontConfigFileType = lib.types.submodule (
{ name, ... }:
{
options = {
- enable = lib.mkEnableOption "Whether this font config file should be generated.";
+ enable = lib.mkOption {
+ description = ''
+ Whether this file should be generated. This option allows specific
+ files to be disabled.
+ '';
+ type = lib.types.bool;
+ inherit
+ (lib.hm.deprecations.mkStateVersionOptionDefault {
+ inherit (globalConfig.home) stateVersion;
+ since = "26.11";
+ optionPath = [
+ "fonts"
+ "fontconfig"
+ "configFile"
+ name
+ "enable"
+ ];
+ legacy.value = false;
+ current.value = true;
+ })
+ default
+ defaultText
+ ;
+ };
text = lib.mkOption {
type = lib.types.nullOr lib.types.lines;
default = null;
diff --git a/tests/modules/misc/fontconfig/default.nix b/tests/modules/misc/fontconfig/default.nix
index c28bbe359..468a70460 100644
--- a/tests/modules/misc/fontconfig/default.nix
+++ b/tests/modules/misc/fontconfig/default.nix
@@ -6,4 +6,6 @@
fontconfig-default-rendering = ./default-rendering.nix;
fontconfig-custom-rendering = ./custom-rendering.nix;
fontconfig-extra-config-files = ./extra-config-files.nix;
+
+ fontconfig-old-default-configFile-toggle = ./old-default-configFile-toggle.nix;
}
diff --git a/tests/modules/misc/fontconfig/extra-config-files.nix b/tests/modules/misc/fontconfig/extra-config-files.nix
index 647b99b98..fdd1f4581 100644
--- a/tests/modules/misc/fontconfig/extra-config-files.nix
+++ b/tests/modules/misc/fontconfig/extra-config-files.nix
@@ -1,33 +1,53 @@
+{ lib, ... }:
+
let
- sampleTextContent = "hello world";
fcConfD = "home-files/.config/fontconfig/conf.d";
+ sampleText = "hello world";
+ sampleSource = builtins.toFile "fontconfig-source" ''
+
+
+
+ ...
+
+ '';
in
{
+ home.stateVersion = lib.trivial.release;
+
fonts.fontconfig = {
enable = true;
configFile = {
- text-label-test = {
- enable = true;
- label = "sample-text-config";
- text = sampleTextContent;
- priority = 55;
+ disabled = {
+ enable = false;
+ text = "";
};
- source-nolabel-test = {
- enable = true;
- source = ./sample-extra-config.conf;
+ label = {
+ label = "custom_label";
+ text = "";
};
+ priority = {
+ priority = 37;
+ text = "";
+ };
+ text.text = sampleText;
+ source.source = sampleSource;
};
};
nmt.script = ''
assertDirectoryExists ${fcConfD}
- assertFileExists ${fcConfD}/55-hm-sample-text-config.conf
- assertFileContent ${fcConfD}/55-hm-sample-text-config.conf \
- ${builtins.toFile "sample-text-config" sampleTextContent}
+ assertPathNotExists ${fcConfD}/90-hm-disabled.conf
- assertFileExists ${fcConfD}/90-hm-source-nolabel-test.conf
- assertFileContent ${fcConfD}/90-hm-source-nolabel-test.conf \
- ${./sample-extra-config.conf}
+ assertFileExists ${fcConfD}/90-hm-custom_label.conf
+
+ assertFileExists ${fcConfD}/37-hm-priority.conf
+
+ assertFileExists ${fcConfD}/90-hm-text.conf
+ assertFileContent ${fcConfD}/90-hm-text.conf \
+ ${builtins.toFile "sample-text-config" sampleText}
+
+ assertFileExists ${fcConfD}/90-hm-source.conf
+ assertFileContent ${fcConfD}/90-hm-source.conf ${sampleSource}
'';
}
diff --git a/tests/modules/misc/fontconfig/old-default-configFile-toggle.nix b/tests/modules/misc/fontconfig/old-default-configFile-toggle.nix
new file mode 100644
index 000000000..841054427
--- /dev/null
+++ b/tests/modules/misc/fontconfig/old-default-configFile-toggle.nix
@@ -0,0 +1,18 @@
+let
+ fcConfD = "home-files/.config/fontconfig/conf.d";
+in
+{
+ home.stateVersion = "26.05"; # <= 26.11
+
+ fonts.fontconfig = {
+ enable = true;
+ configFile.implicitly-disabled.text = "foo";
+ };
+
+ nmt.script = ''
+ assertFileExists ${fcConfD}/10-hm-fonts.conf
+ assertFileExists ${fcConfD}/52-hm-default-fonts.conf
+
+ assertPathNotExists ${fcConfD}/90-hm-implicitly-disabled.conf
+ '';
+}
diff --git a/tests/modules/misc/fontconfig/sample-extra-config.conf b/tests/modules/misc/fontconfig/sample-extra-config.conf
deleted file mode 100644
index 5bf94d760..000000000
--- a/tests/modules/misc/fontconfig/sample-extra-config.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- Disable anti-aliasing for Tamzen since it is a bitmap font
-
-
- Tamzen
-
-
- false
-
-
-