nixos: rework font options

This commit is contained in:
ooks-io 2024-12-10 19:11:52 +11:00
parent c9f7e6b53c
commit 1fa7ae2a66
6 changed files with 107 additions and 41 deletions

View file

@ -1,12 +1,32 @@
{lib, ...}: let
inherit (lib) mkOption;
inherit (lib.types) str package path int bool;
inherit (lib.types) str package path int bool submodule nullOr;
mkFontOption = {
mkVariantOption = {
regular = mkOption {
type = str;
default = "";
};
bold = mkOption {
type = str;
default = "";
};
italic = mkOption {
type = str;
default = "";
};
boldItalic = mkOption {
type = str;
default = "";
};
};
mkBaseFontOption = {
family = mkOption {
type = str;
default = "";
};
variants = mkVariantOption;
package = mkOption {
type = package;
default = null;
@ -19,21 +39,15 @@
type = bool;
default = false;
};
fallback = {
family = mkOption {
type = str;
default = "";
};
package = mkOption {
type = package;
default = null;
};
size = mkOption {
type = int;
};
mkFontOption =
mkBaseFontOption
// {
fallback = mkOption {
type = nullOr (submodule {options = mkBaseFontOption;});
default = null;
};
};
};
in {
# imports = [./palettes];
options.ooknet.appearance = {

View file

@ -13,17 +13,36 @@ in {
ooknet.appearance = {
fonts = {
monospace = {
family = "CozetteHiDpi";
package = pkgs.cozette;
size = 22;
bitmap = true;
package = pkgs.monocraft;
size = 18;
family = "Monocraft";
variants = {
regular = "Monocraft:style=Medium";
bold = "Monocraft:style=Medium";
italic = "Monocraft:style=Medium";
boldItalic = "Monocraft:style=Medium";
};
fallback = {
family = "JetBrainsMono Nerd Font";
package = pkgs.nerfonts.override {fonts = ["JetBrainsMono"];};
family = "JetBrainsMono NFM";
variants = {
regular = "JetBrainsMono NFM:style=Regular";
bold = "JetBrainsMono NFM:style=Bold";
italic = "JetBrainsMono NFM:style=Italic";
boldItalic = "JetBrainsMono NFM:style=Bold Italic";
};
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
size = 18;
};
};
regular = {
family = "Fira Sans";
variants = {
regular = "Fira Sans:style=Regular";
bold = "Fira Sans:style=Bold";
italic = "Fira Sans:style=Italic";
boldItalic = "Fira Sans:style=Bold Italic";
};
package = pkgs.fira;
};
};

View file

@ -13,12 +13,25 @@ in {
ooknet.appearance = {
fonts = {
monospace = {
family = "JetBrainsMono Nerd Font";
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
size = 18;
family = "JetBrainsMono NF";
variants = {
regular = "JetBrainsMono NF:style=Regular";
bold = "JetBrainsMono NF:style=Bold";
italic = "JetBrainsMono NF:style=Italic";
boldItalic = "JetBrainsMono NF:style=Bold Italic";
};
};
regular = {
family = "Fira Sans";
package = pkgs.fira;
family = "Fira Sans";
variants = {
regular = "Fira Sans:style=Regular";
bold = "Fira Sans:style=Bold";
italic = "Fira Sans:style=Italic";
boldItalic = "Fira Sans:style=Bold Italic";
};
};
};