diff --git a/system/default.nix b/system/default.nix index 4538ab34..dd9fbebc 100644 --- a/system/default.nix +++ b/system/default.nix @@ -75,6 +75,15 @@ }; fonts = { packages = with pkgs; [ + (nerdfonts.override { + fonts = [ + "FantasqueSansMono" # My new main font + "Iosevka" # Keeping as a backup for now + "VictorMono" # Just for fun + "HeavyData" # Just for fun + "NerdFontsSymbolsOnly" # For other tools + ]; + }) emacs-all-the-icons-fonts weather-icons ]; diff --git a/system/stylix.nix b/system/stylix.nix index f19f71fc..e4abbd1e 100644 --- a/system/stylix.nix +++ b/system/stylix.nix @@ -25,26 +25,94 @@ package = pkgs.catppuccin-cursors.${variant}; name = "Catppuccin-${catppuccinVariant}-Dark-Cursors"; }; - fonts = rec { + fonts = let + iosevkaCustomBuildPlan = { + noCvSs = false; + exportGlyphNames = false; + ligations.inherits = "dlig"; + # variants.inherits = "ss05"; + weights = { + Regular = { + shape = 400; + menu = 400; + css = 400; + }; + Bold = { + shape = 700; + menu = 700; + css = 700; + }; + }; + variants.design = { + capital-q = "crossing-curly-tailed"; + e = "rounded"; + f = "tailed"; + g = "double-storey-open"; + i = "tailed"; + k = "cursive-serifless"; + l = "tailed-serifed"; + t = "bent-hook-asymmetric"; + v = "curly-serifless"; + w = "curly-serifless"; + x = "curly-serifless"; + y = "straight-turn-serifless"; + lower-lambda = "tailed-turn"; + lower-xi = "flat-top"; + lower-chi = "semi-chancery-curly"; + zero = "tall-slashed"; + three = "flat-top"; + six = "straight-bar"; + seven = "straight-serifless-crossbar"; + eight = "crossing-asymmetric"; + nine = "straight-bar"; + ampersand = "upper-open"; + at = "fourfold"; + cent = "through"; + percent = "rings-segmented-slash"; + lig-ltgteq = "flat"; + }; + }; + in { sizes = { applications = 16; desktop = 20; popups = 20; terminal = 16; }; - serif = monospace; - sansSerif = monospace; - monospace = { - name = "FantasqueSansM Nerd Font"; - package = pkgs.nerdfonts.override { - fonts = [ - "FantasqueSansMono" # My new main font - "Iosevka" # Keeping as a backup for now - "GeistMono" # Still undecided about this one - "VictorMono" # Just for fun - "HeavyData" # Just for fun - "NerdFontsSymbolsOnly" # For other tools - ]; + serif = rec { + name = "Iosevka Custom Etoile"; + package = pkgs.iosevka.override { + set = "etoile"; + privateBuildPlan = { + inherit (iosevkaCustomBuildPlan) noCvSs exportGlyphNames variants weights; + family = name; + spacing = "quasi-proportional"; + serifs = "slab"; + }; + }; + }; + sansSerif = rec { + name = "Iosevka Custom Aile"; + package = pkgs.iosevka.override { + set = "aile"; + privateBuildPlan = { + inherit (iosevkaCustomBuildPlan) noCvSs exportGlyphNames variants weights; + family = name; + spacing = "quasi-proportional"; + serifs = "sans"; + }; + }; + }; + monospace = rec { + name = "Iosevka Custom"; + package = pkgs.iosevka.override { + set = "custom"; + privateBuildPlan = { + inherit (iosevkaCustomBuildPlan) noCvSs exportGlyphNames variants weights; + family = name; + spacing = "normal"; + serifs = "sans"; + }; }; }; emoji = {