{ config, inputs, lib, pkgs, this, ... }: with lib; { imports = [ inputs.stylix.nixosModules.stylix (mkAliasOptionModule [ "colors" ] [ "lib" "stylix" "colors" ]) ]; options.nixfiles.modules.common.stylix.fonts.extraPackages = mkOption { description = "Font packages."; default = with pkgs; [ font-awesome noto-fonts noto-fonts-emoji sarasa-gothic source-han-mono source-han-sans source-han-serif ]; readOnly = true; }; # Styling and color binding can be sourced from here[1]. # # [1]: https://github.com/tinted-theming/base24/blob/master/styling.md config = { stylix = { enable = this.isHeadful; autoEnable = this.isHeadful; image = pkgs.fetchurl { url = "https://upload.wikimedia.org/wikipedia/commons/a/a5/Bonaparte_ante_la_Esfinge%2C_por_Jean-Léon_Gérôme.jpg"; hash = "sha256-qWv52oT8cF9K4ZoeawmR3jgoGB2ARfjbKKc12IljUcM="; }; base16Scheme = "${pkgs.base16-schemes}/share/themes/tomorrow.yaml"; fonts = { monospace = { package = pkgs.iosevka; name = "Iosevka"; }; serif = { package = pkgs.iosevka-bin.override { variant = "Etoile"; }; name = "Iosevka Etoile"; }; sansSerif = { package = pkgs.iosevka-bin.override { variant = "Aile"; }; name = "Iosevka Aile"; }; emoji = { package = pkgs.twitter-color-emoji; name = "Twitter Color Emoji"; }; sizes = { desktop = 10; applications = 10; terminal = 12; }; }; cursor = { name = "phinger-cursors-light"; package = pkgs.phinger-cursors; size = 32; }; }; fonts = { packages = mkAfter config.nixfiles.modules.common.stylix.fonts.extraPackages; fontconfig = { enable = this.isHeadful; defaultFonts = with config.stylix.fonts; { serif = mkForce [ serif.name "Sarasa Gothic" "Source Han Serif" "Noto Serif" ]; sansSerif = mkForce [ sansSerif.name "Sarasa Gothic" "Source Han Sans" "Noto Sans" ]; monospace = mkForce [ monospace.name "Sarasa Mono" "Source Han Mono" "Noto Sans Mono" ]; emoji = mkForce [ emoji.name "Noto Color Emoji" ]; }; }; }; }; }