summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archetypes/profiles/desktop/default.nix12
-rw-r--r--archetypes/profiles/desktop/resources/fontconfig/90-commit-mono-options.conf (renamed from home-manager/resources/fontconfig/90-commit-mono-options.conf)0
-rw-r--r--archetypes/profiles/desktop/resources/fontconfig/90-tamzen-disable-anti-aliasing.conf (renamed from home-manager/resources/fontconfig/90-tamzen-disable-anti-aliasing.conf)0
-rw-r--r--archetypes/profiles/headless/default.nix2
-rw-r--r--home-manager/fontconfig.nix90
-rw-r--r--hosts/T495/configuration.nix4
6 files changed, 25 insertions, 83 deletions
diff --git a/archetypes/profiles/desktop/default.nix b/archetypes/profiles/desktop/default.nix
index 6d53f84..7555c56 100644
--- a/archetypes/profiles/desktop/default.nix
+++ b/archetypes/profiles/desktop/default.nix
@@ -1,4 +1,4 @@
-{ lib, config, pkgs, ... }: let
+{ lib, pkgs, ... }: let
mkDesktop = lib.mkOverride 920;
nixosConfig = {
@@ -67,6 +67,16 @@
sansSerif = mkDesktop [ "Inter" ];
monospace = mkDesktop [ "CommitMono" ];
};
+ configFile = {
+ tamzen-disable-anti-aliasing = {
+ enable = true;
+ source = ./resources/fontconfig/90-tamzen-disable-anti-aliasing.conf;
+ };
+ commit-mono-options = {
+ enable = true;
+ source = ./resources/fontconfig/90-commit-mono-options.conf;
+ };
+ };
};
programs = {
diff --git a/home-manager/resources/fontconfig/90-commit-mono-options.conf b/archetypes/profiles/desktop/resources/fontconfig/90-commit-mono-options.conf
index 9c7373a..9c7373a 100644
--- a/home-manager/resources/fontconfig/90-commit-mono-options.conf
+++ b/archetypes/profiles/desktop/resources/fontconfig/90-commit-mono-options.conf
diff --git a/home-manager/resources/fontconfig/90-tamzen-disable-anti-aliasing.conf b/archetypes/profiles/desktop/resources/fontconfig/90-tamzen-disable-anti-aliasing.conf
index 5bf94d7..5bf94d7 100644
--- a/home-manager/resources/fontconfig/90-tamzen-disable-anti-aliasing.conf
+++ b/archetypes/profiles/desktop/resources/fontconfig/90-tamzen-disable-anti-aliasing.conf
diff --git a/archetypes/profiles/headless/default.nix b/archetypes/profiles/headless/default.nix
index b391076..d40e9dd 100644
--- a/archetypes/profiles/headless/default.nix
+++ b/archetypes/profiles/headless/default.nix
@@ -1,4 +1,4 @@
-{ lib, config, ... }: let
+{ lib, ... }: let
mkHeadless = lib.mkOverride 910;
nixosConfig = {
diff --git a/home-manager/fontconfig.nix b/home-manager/fontconfig.nix
index 4473d1a..b3f041b 100644
--- a/home-manager/fontconfig.nix
+++ b/home-manager/fontconfig.nix
@@ -1,83 +1,11 @@
-{ config, lib, ... }: let
- cfg = config.fonts.fontconfig;
- fcConfd = "fontconfig/conf.d";
- fcResources = ./resources/fontconfig;
-
- extraConfigFile = lib.types.submodule ({ name, ... }: {
- options = {
- enable = lib.mkEnableOption "Whether this font config file should be generated.";
- text = lib.mkOption {
- type = lib.types.nullOr lib.types.lines;
- default = null;
- description = "Verbatim contents of the config file. If this option is null then the 'source' option must be set.";
- };
- source = lib.mkOption {
- type = lib.types.nullOr lib.types.path;
- default = null;
- description = "Config file to source. Alternatively, use the 'text' option instead.";
- };
- label = lib.mkOption {
- type = lib.types.str;
- default = "name";
- description = "Label to use for the name of the config file.";
- };
- priority = lib.mkOption {
- type = lib.types.addCheck lib.types.int (x: x >= 0 && x <= 99);
- default = 90;
- description = ''
- Determines the order in which configs are loaded.
- Must be a value within the range of 0-99, where priority 0 is the highest priority and 99 is the lowest.
- '';
- };
- };
- config = {
- label = lib.mkDefault name;
- };
- });
-in {
- options.fonts.fontconfig = {
- _extraConfigFiles = lib.mkOption {
- type = lib.types.attrsOf extraConfigFile;
- default = {};
- description = ''
- Extra font config files that will be added to `~/.config/fontconfig/conf.d/`.
- Files are added as `conf.d/{priority}-{label}.conf`.
- '';
- example = ''
- {
- tamzen = {
- enable = true;
- label = "tamzen-disable-antialiasing";
- text = tamzenFontConfig; # Pretend this is defined elsewhere
- priority = 90;
- }; # => conf.d/90-tamzen-disable-antialiasing.conf
- commit-mono-options = {
- enable = true;
- source = ./resources/fontconfig/commit-mono.conf;
- priority = 80;
- }; # => conf.d/80-commit-mono-options.conf
- };
- '';
- };
- };
-
- config = lib.mkIf cfg.enable {
- fonts.fontconfig._extraConfigFiles = {
- tamzen-disable-antialiasing = {
- enable = true;
- text = builtins.readFile ./resources/fontconfig/90-tamzen-disable-anti-aliasing.conf;
- priority = 90;
- };
- commit-mono-options = {
- enable = true;
- source = ./resources/fontconfig/90-commit-mono-options.conf;
- priority = 90;
- };
- };
-
- xdg.configFile = lib.mapAttrs' (name: config:
- lib.nameValuePair "${fcConfd}/${builtins.toString config.priority}-${config.label}.conf"
- { inherit (config) text; source = lib.mkIf (config.source != null) config.source; }
- ) cfg._extraConfigFiles;
+{ lib, config, ... }: {
+ config = {
+ # Warn whenever subpixelRendering is not enabled
+ warnings = [
+ (lib.mkIf (config.fonts.fontconfig.subpixelRendering == null)
+ "fonts.fontconfig.subpixelRendering is unset; this may result in suboptimal font rendering.")
+ (lib.mkIf (config.fonts.fontconfig.hinting == null)
+ "fonts.fontconfig.hinting is unset; this may result in suboptimal font clarity.")
+ ];
};
}
diff --git a/hosts/T495/configuration.nix b/hosts/T495/configuration.nix
index 6e7b0bd..eb24cba 100644
--- a/hosts/T495/configuration.nix
+++ b/hosts/T495/configuration.nix
@@ -77,6 +77,10 @@
};
};
programs._seasonalwallpaper.wallpapers.download = true;
+ fonts.fontconfig = {
+ subpixelRendering = "rgb";
+ hinting = "slight";
+ };
};
system.stateVersion = "24.05";