From 02116e64f57e8d995280f67fb89aca92420d5984 Mon Sep 17 00:00:00 2001 From: "Reid \"reidlab" Date: Tue, 2 Apr 2024 20:52:55 -0700 Subject: [PATCH] ACTUALLY fix fonts --- modules/desktop/fonts.nix | 90 +++++++++++++++++++----------------- modules/desktop/hyprlock.nix | 84 ++++++++++++++++----------------- 2 files changed, 89 insertions(+), 85 deletions(-) diff --git a/modules/desktop/fonts.nix b/modules/desktop/fonts.nix index 174ab7f..6fa6fd9 100644 --- a/modules/desktop/fonts.nix +++ b/modules/desktop/fonts.nix @@ -25,8 +25,8 @@ let cfg = config.modules.desktop.fonts; in { options.modules.desktop.fonts = { - enable = mkEnableOption "Enable the font configuration module, containing system fonts"; - baseFonts = mkEnableOption "Add an set of extra base fonts"; + enable = mkEnableOption "Enable the font configuration module, configuring your chosen fonts"; + baseFonts = mkEnableOption "Add an extra set of base fonts"; fonts = { sansSerif = mkFontOption "sansSerif" { @@ -62,32 +62,50 @@ in { }; }; - config = mkIf cfg.enable { - fonts = { - fontDir.enable = true; - fontconfig.enable = true; - fontconfig.defaultFonts = { - sansSerif = [ cfg.fonts.sansSerif.family ]; - serif = [ cfg.fonts.serif.family ]; - monospace = [ cfg.fonts.monospace.family ]; - emoji = [ cfg.fonts.emoji.family ]; + config = mkIf cfg.enable (mkMerge [ + { + fonts = { + fontDir.enable = true; + fontconfig.enable = true; + fontconfig.defaultFonts = { + sansSerif = [ cfg.fonts.sansSerif.family ]; + serif = [ cfg.fonts.serif.family ]; + monospace = [ cfg.fonts.monospace.family ]; + emoji = [ cfg.fonts.emoji.family ]; + }; + enableGhostscriptFonts = true; + packages = with pkgs; [ + corefonts + noto-fonts + noto-fonts-cjk-sans + liberation_ttf + ] ++ [ + cfg.fonts.sansSerif.package + cfg.fonts.serif.package + cfg.fonts.monospace.package + cfg.fonts.monospaceBitmap.package + cfg.fonts.emoji.package + ]; }; - enableGhostscriptFonts = true; - packages = with pkgs; [ - corefonts - noto-fonts - noto-fonts-cjk-sans - liberation_ttf - ] ++ [ - cfg.fonts.sansSerif.package - cfg.fonts.serif.package - cfg.fonts.monospace.package - cfg.fonts.monospaceBitmap.package - cfg.fonts.emoji.package - ]; - } // (mkIf cfg.baseFonts { - enableDefaultPackages = true; - packages = with pkgs; [ + + hm.gtk.enable = true; + # not the best way of writing this (imagine if `name` was named `family`...) + hm.gtk.font = with cfg.fonts.sansSerif; { + package = package; + name = family; + + size = size; + }; + + hm.dconf.settings = { + "org/gnome/desktop/interface".font-name = with cfg.fonts.sansSerif; "${family} ${toString size}"; + "org/gnome/desktop/interface".document-font-name = with cfg.fonts.serif; "${family} ${toString size}"; + "org/gnome/desktop/interface".monospace-font-name = with cfg.fonts.monospace; "${family} ${toString size}"; + }; + } + (mkIf cfg.baseFonts { + fonts.enableDefaultPackages = true; + fonts.packages = with pkgs; [ fira-code fira-code-symbols mplus-outline-fonts.githubRelease @@ -100,20 +118,6 @@ in { noto-fonts-monochrome-emoji font-awesome ]; - }); - - hm.gtk.enable = true; - hm.gtk.font = with cfg.fonts.sansSerif; { # im great at writing nix, right? - package = package; - name = family; - - size = size; - }; - - hm.dconf.settings = { - "org/gnome/desktop/interface".font-name = with cfg.fonts.sansSerif; "${family} ${toString size}"; - "org/gnome/desktop/interface".document-font-name = with cfg.fonts.serif; "${family} ${toString size}"; - "org/gnome/desktop/interface".monospace-font-name = with cfg.fonts.monospace; "${family} ${toString size}"; - }; - }; + }) + ]); } diff --git a/modules/desktop/hyprlock.nix b/modules/desktop/hyprlock.nix index b5b1e54..7762e17 100644 --- a/modules/desktop/hyprlock.nix +++ b/modules/desktop/hyprlock.nix @@ -5,12 +5,12 @@ let cfg = config.modules.desktop.hyprlock; in { options.modules.desktop.hyprlock = { - enable = mkEnableOption "Enable hyprlock, a simple, fast, multithreaded screen lock for hyprland"; - package = mkOption { - type = types.package; - default = inputs.hyprlock.packages.${system}.hyprlock; - example = "pkgs.hyprlock"; - }; + enable = mkEnableOption "Enable hyprlock, a simple, fast, multithreaded screen lock for hyprland"; + package = mkOption { + type = types.package; + default = inputs.hyprlock.packages.${system}.hyprlock; + example = "pkgs.hyprlock"; + }; }; config = mkIf cfg.enable { @@ -22,50 +22,50 @@ in { enable = true; package = cfg.package; general = { - hide_cursor = false; - no_fade_in = true; - no_fade_out = true; + hide_cursor = false; + no_fade_in = true; + no_fade_out = true; }; backgrounds = [ - { - path = toString ../../assets/lockscreen.png; - blur_passes = 3; - blur_size = 6; - } + { + path = toString ../../assets/lockscreen.png; + blur_passes = 3; + blur_size = 6; + } ]; labels = [ - { - text = "cmd[update:1000] echo \"$(date +'%H:%M')\""; - font_size = 58; - color = "rgb(${base05})"; - font_family = config.modules.desktop.fonts.fonts.sansSerif.family; - position = { x = 0; y = 30; }; - } - { - text = "cmd[update:1000] echo \"$(date + '%A %B %e')\""; - font_size = 14; - color = "rgb(${base05})"; - font_family = config.modules.desktop.fonts.fonts.sansSerif.family; - position = { x = 0; y = 10; }; - } + { + text = "cmd[update:1000] echo \"$(date +'%H:%M')\""; + font_size = 58; + color = "rgb(${base05})"; + font_family = config.modules.desktop.fonts.fonts.sansSerif.family; + position = { x = 0; y = 30; }; + } + { + text = "cmd[update:1000] echo \"$(date + '%A %B %e')\""; + font_size = 14; + color = "rgb(${base05})"; + font_family = config.modules.desktop.fonts.fonts.sansSerif.family; + position = { x = 0; y = 10; }; + } ]; input-fields = [ - { - size = { width = 300; height = 28; }; - outline_thickness = 2; - dots_size = 0.2; - fade_on_empty = false; - placeholder_text = ""; + { + size = { width = 300; height = 28; }; + outline_thickness = 2; + dots_size = 0.2; + fade_on_empty = false; + placeholder_text = ""; - outer_color = "rgb(${base0E})"; - inner_color = "rgb(${base00})"; - font_color = "rgb(${base05})"; - check_color = "rgb(${base02})"; - fail_color = "rgb(${base08})"; - capslock_color = "rgb(${base09})"; + outer_color = "rgb(${base0E})"; + inner_color = "rgb(${base00})"; + font_color = "rgb(${base05})"; + check_color = "rgb(${base02})"; + fail_color = "rgb(${base08})"; + capslock_color = "rgb(${base09})"; - position = { x = 0; y = -30; }; - } + position = { x = 0; y = -30; }; + } ]; }; };