From f0973aa3cf9a36b5965540a7c5e14023a3359db3 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Sat, 1 Jun 2024 20:08:59 -0500 Subject: [PATCH] Updating custom Iosevka package --- flake.lock | 43 ++---- flake.nix | 17 +-- overlays/default.nix | 8 +- pkgs/default.nix | 17 +-- pkgs/iosevka-lyteterm-raw.nix | 268 ++++++++++++++++------------------ 5 files changed, 150 insertions(+), 203 deletions(-) diff --git a/flake.lock b/flake.lock index 8f93c48..7463be2 100644 --- a/flake.lock +++ b/flake.lock @@ -301,22 +301,6 @@ } }, "nixpkgs-stable": { - "locked": { - "lastModified": 1716361217, - "narHash": "sha256-mzZDr00WUiUXVm1ujBVv6A0qRd8okaITyUp4ezYRgc4=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "46397778ef1f73414b03ed553a3368f0e7e33c2f", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-23.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_2": { "locked": { "lastModified": 1710695816, "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", @@ -332,19 +316,19 @@ "type": "github" } }, - "nixpkgsForIosevka": { + "nixpkgs-unstable": { "locked": { - "lastModified": 1708118438, - "narHash": "sha256-kk9/0nuVgA220FcqH/D2xaN6uGyHp/zoxPNUmPCMmEE=", + "lastModified": 1717112898, + "narHash": "sha256-7R2ZvOnvd9h8fDd65p0JnB7wXfUvreox3xFdYWd1BnY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5863c27340ba4de8f83e7e3c023b9599c3cb3c80", + "rev": "6132b0f6e344ce2fe34fc051b72fb46e34f668e0", "type": "github" }, "original": { "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", - "rev": "5863c27340ba4de8f83e7e3c023b9599c3cb3c80", "type": "github" } }, @@ -366,16 +350,16 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1716330097, - "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", + "lastModified": 1717144377, + "narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", + "rev": "805a384895c696f802a9bf5bf4720f37385df547", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-unstable", + "ref": "nixos-24.05", "repo": "nixpkgs", "type": "github" } @@ -403,7 +387,7 @@ "nixpkgs": [ "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable_2" + "nixpkgs-stable": "nixpkgs-stable" }, "locked": { "lastModified": 1716213921, @@ -427,8 +411,7 @@ "home-manager": "home-manager", "hyprland": "hyprland", "nixpkgs": "nixpkgs_3", - "nixpkgs-stable": "nixpkgs-stable", - "nixpkgsForIosevka": "nixpkgsForIosevka", + "nixpkgs-unstable": "nixpkgs-unstable", "pre-commit-hooks": "pre-commit-hooks", "slippi": "slippi", "sops-nix": "sops-nix" @@ -480,10 +463,10 @@ "sops-nix": { "inputs": { "nixpkgs": [ - "nixpkgs" + "nixpkgs-unstable" ], "nixpkgs-stable": [ - "nixpkgs-stable" + "nixpkgs" ] }, "locked": { diff --git a/flake.nix b/flake.nix index 5562cb3..bd74b15 100644 --- a/flake.nix +++ b/flake.nix @@ -1,15 +1,11 @@ { inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; - nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11"; + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; # nixpkgs-next.url = "github:nixos/nixpkgs/staging-next"; - # I have this as a separate input so I don't rebuild the font every time I - # want to upgrade nixpkgs - nixpkgsForIosevka.url = "github:nixos/nixpkgs?rev=5863c27340ba4de8f83e7e3c023b9599c3cb3c80"; - pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs"; @@ -22,8 +18,8 @@ disko.inputs.nixpkgs.follows = "nixpkgs"; sops-nix.url = "github:Mic92/sops-nix"; - sops-nix.inputs.nixpkgs.follows = "nixpkgs"; - sops-nix.inputs.nixpkgs-stable.follows = "nixpkgs-stable"; + sops-nix.inputs.nixpkgs.follows = "nixpkgs-unstable"; + sops-nix.inputs.nixpkgs-stable.follows = "nixpkgs"; hardware.url = "github:nixos/nixos-hardware"; @@ -38,8 +34,6 @@ outputs = { self, nixpkgs, - # nixpkgs-next, - nixpkgsForIosevka, home-manager, hardware, pre-commit-hooks, @@ -70,7 +64,6 @@ packages = forAllSystems (system: import ./pkgs { pkgs = nixpkgs.legacyPackages.${system}; - pkgsForIosevka = nixpkgsForIosevka.legacyPackages.${system}; }); # Formatter for your nix files, available through 'nix fmt' @@ -98,7 +91,7 @@ }); # Your custom packages and modifications, exported as overlays - overlays = import ./overlays {inherit nixpkgs nixpkgsForIosevka;}; + overlays = import ./overlays {inherit nixpkgs;}; # Reusable nixos modules you might want to export # These are usually stuff you would upstream into nixpkgs diff --git a/overlays/default.nix b/overlays/default.nix index c55ed07..59e114d 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,12 +1,8 @@ -{ - nixpkgs, - nixpkgsForIosevka, - ... -}: { +{nixpkgs, ...}: { # This one brings our custom packages from the 'pkgs' directory additions = final: _prev: import ../pkgs { - pkgsForIosevka = nixpkgsForIosevka.legacyPackages.${final.system}; + pkgs = nixpkgs.legacyPackages.${final.system}; }; # This one contains whatever you want to overlay diff --git a/pkgs/default.nix b/pkgs/default.nix index e8e24df..942837e 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,17 +1,12 @@ # Custom packages, that can be defined similarly to ones from nixpkgs # You can build them using 'nix build .#example' -{ - # pkgs, - pkgsForIosevka, - ... -}: rec { +{pkgs, ...}: rec { # example = pkgs.callPackage ./example { }; - iosevka-lyteterm-raw = pkgsForIosevka.callPackage ./iosevka-lyteterm-raw.nix {inherit (pkgsForIosevka) iosevka;}; - iosevka-lyteterm = pkgsForIosevka.callPackage ./iosevka-lyteterm.nix {inherit iosevka-lyteterm-raw;}; - iosevka-lyteterm-webmin = pkgsForIosevka.callPackage ./iosevka-lyteterm-webmin.nix { - pkgs = pkgsForIosevka; - inherit (pkgsForIosevka) python311Packages parallel; - inherit iosevka-lyteterm-raw; + iosevkaLyteTerm = pkgs.callPackage ./iosevka-lyteterm-raw.nix {inherit (pkgs) iosevka;}; + iosevkaLyteTermWebMin = pkgs.callPackage ./iosevka-lyteterm-webmin.nix { + pkgs = pkgs; + inherit (pkgs) python311Packages parallel; + inherit iosevkaLyteTerm; }; } diff --git a/pkgs/iosevka-lyteterm-raw.nix b/pkgs/iosevka-lyteterm-raw.nix index d6a0eaf..2a1f8f5 100644 --- a/pkgs/iosevka-lyteterm-raw.nix +++ b/pkgs/iosevka-lyteterm-raw.nix @@ -1,146 +1,126 @@ -{iosevka, ...}: -(iosevka.overrideAttrs - (final: prev: rec { - BUILD_DIR = "iosevka-lyteterm"; - pname = "${BUILD_DIR}-raw"; +{iosevka, ...}: let + set = "LyteTerm"; +in + iosevka.override { + inherit set; - buildPhase = '' - export HOME=$TMPDIR - runHook preBuild - npm run build --no-update-notifier -- --jCmd=$NIX_BUILD_CORES --verbose=9 ttf::iosevka-lyteterm - npm run build --no-update-notifier -- --jCmd=$NIX_BUILD_CORES --verbose=9 woff2::iosevka-lyteterm - runHook postBuild + privateBuildPlan = '' + [buildPlans.Iosevka${set}] + family = "Iosevka${set}" + spacing = "fontconfig-mono" + serifs = "sans" + exportGlyphNames = true + + [buildPlans.Iosevka${set}.ligations] + inherits = "dlig" + disables = [ "exeqeqeq", "exeqeq", "exeqeq-dl", "exeq", "ineq", "connected-underscore", "connected-tilde-as-wave" ] + + [buildPlans.Iosevka${set}.weights.regular] + shape = 400 + menu = 400 + css = 400 + + [buildPlans.Iosevka${set}.weights.book] + shape = 450 + menu = 450 + css = 450 + + [buildPlans.Iosevka${set}.weights.bold] + shape = 700 + menu = 700 + css = 700 + + [buildPlans.Iosevka${set}.weights.black] + shape = 900 + menu = 900 + css = 900 + + # [[buildPlans.Iosevka${set}.compatibility-ligatures]] + # unicode = 57600 # 0xE100 + # featureTag = 'calt' + # kequence = '<*>' + + [buildPlans.Iosevka${set}.variants] + inherits = "ss01" + + [buildPlans.Iosevka${set}.variants.design] + capital-a = 'curly-serifless' + capital-b = 'standard-interrupted-serifless' + capital-c = 'unilateral-inward-serifed' + capital-d = 'standard-serifless' + capital-g = 'toothless-rounded-inward-serifed-hooked' + capital-i = 'serifed' + capital-j = 'serifed' + capital-k = 'curly-serifless' + capital-l = 'motion-serifed' + capital-m = 'hanging-serifless' + capital-n = 'asymmetric-serifless' + capital-p = 'open-serifless' + capital-q = 'crossing' + capital-r = 'standing-open-serifless' + capital-s = 'unilateral-inward-serifed' + capital-t = 'motion-serifed' + capital-u = 'toothless-corner-serifless' + capital-v = 'curly-serifless' + capital-w = 'curly-serifless' + capital-x = 'curly-serifless' + capital-y = 'curly-base-serifed' + capital-z = 'curly-top-serifed-with-crossbar' + a = 'double-storey-toothless-corner' + b = 'toothless-corner-serifless' + c = 'unilateral-inward-serifed' + d = 'toothless-corner-serifless' + e = 'flat-crossbar' + f = 'tailed' + g = 'double-storey-open' + # g = 'single-storey-earless-corner-flat-hook' + h = 'straight-serifless' + i = 'tailed-serifed' + j = 'serifed' + k = 'curly-serifless' + l = 'tailed-serifed' + m = 'earless-corner-double-arch-serifless' + n = 'earless-corner-straight-serifless' + p = 'earless-corner-serifless' + q = 'earless-corner-diagonal-tailed-serifless' + r = 'earless-corner-serifless' + s = 'unilateral-inward-serifed' + t = 'bent-hook-asymmetric' + u = 'toothless-corner-serifless' + v = 'curly-serifless' + w = 'curly-serifless' + x = 'curly-serifless' + y = 'curly-turn-serifless' + z = 'curly-top-serifed-with-crossbar' + # cyrl-capital-ze = 'unilateral-inward-serifed' + zero = 'reverse-slashed-split' + one = 'base' + two = 'curly-neck-serifless' + three = 'two-arcs' + four = 'semi-open-non-crossing-serifless' + # five = 'vertical-upper-left-bar' + five = 'upright-flat-serifless' + six = 'straight-bar' + seven = 'curly-serifed-crossbar' + eight = 'two-circles' + nine = 'straight-bar' + tilde = 'low' + asterisk = 'penta-low' + underscore = 'above-baseline' + pilcrow = 'low' + caret = 'low' + paren = 'flat-arc' + brace = 'curly-flat-boundary' + number-sign = 'upright-open' + ampersand = 'upper-open' + at = 'compact' + dollar = 'interrupted' + cent = 'open' + percent = 'rings-segmented-slash' + bar = 'force-upright' + ascii-single-quote = 'raised-comma' + ascii-grave = 'straight' + question = 'smooth' + punctuation-dot = 'round' ''; - - installPhase = '' - runHook preInstall - install -d "$out" - ls -la . - ls -la dist - cp -r dist/* "$out" - runHook postInstall - ''; - })) -.override { - set = "lyteterm"; - - privateBuildPlan = '' - [buildPlans.iosevka-lyteterm] - family = "IosevkaLyteTerm" - spacing = "fontconfig-mono" - serifs = "sans" - export-glyph-names = true - - [buildPlans.iosevka-lyteterm.ligations] - inherits = "dlig" - disables = [ "exeqeqeq", "exeqeq", "exeqeq-dl", "exeq", "ineq", "connected-underscore", "connected-tilde-as-wave" ] - - [buildPlans.iosevka-lyteterm.weights.regular] - shape = 400 - menu = 400 - css = 400 - - [buildPlans.iosevka-lyteterm.weights.book] - shape = 450 - menu = 450 - css = 450 - - [buildPlans.iosevka-lyteterm.weights.bold] - shape = 700 - menu = 700 - css = 700 - - [buildPlans.iosevka-lyteterm.weights.black] - shape = 900 - menu = 900 - css = 900 - - # [[buildPlans.iosevka-lyteterm.compatibility-ligatures]] - # unicode = 57600 # 0xE100 - # featureTag = 'calt' - # kequence = '<*>' - - [buildPlans.iosevka-lyteterm.variants] - inherits = "ss01" - - [buildPlans.iosevka-lyteterm.variants.design] - capital-a = 'curly-serifless' - capital-b = 'standard-interrupted-serifless' - capital-c = 'unilateral-inward-serifed' - capital-d = 'standard-serifless' - capital-g = 'toothless-rounded-inward-serifed-hooked' - capital-i = 'serifed' - capital-j = 'serifed' - capital-k = 'curly-serifless' - capital-l = 'motion-serifed' - capital-m = 'hanging-serifless' - capital-n = 'asymmetric-serifless' - capital-p = 'open-serifless' - capital-q = 'crossing' - capital-r = 'standing-open-serifless' - capital-s = 'unilateral-inward-serifed' - capital-t = 'motion-serifed' - capital-u = 'toothless-corner-serifless' - capital-v = 'curly-serifless' - capital-w = 'curly-serifless' - capital-x = 'curly-serifless' - capital-y = 'curly-base-serifed' - capital-z = 'curly-top-serifed-with-crossbar' - a = 'double-storey-toothless-corner' - b = 'toothless-corner-serifless' - c = 'unilateral-inward-serifed' - d = 'toothless-corner-serifless' - e = 'flat-crossbar' - f = 'tailed' - g = 'double-storey-open' - # g = 'single-storey-earless-corner-flat-hook' - h = 'straight-serifless' - i = 'tailed-serifed' - j = 'serifed' - k = 'curly-serifless' - l = 'tailed-serifed' - m = 'earless-corner-double-arch-serifless' - n = 'earless-corner-straight-serifless' - p = 'earless-corner-serifless' - q = 'earless-corner-diagonal-tailed-serifless' - r = 'earless-corner-serifless' - s = 'unilateral-inward-serifed' - t = 'bent-hook-asymmetric' - u = 'toothless-corner-serifless' - v = 'curly-serifless' - w = 'curly-serifless' - x = 'curly-serifless' - y = 'curly-turn-serifless' - z = 'curly-top-serifed-with-crossbar' - # cyrl-capital-ze = 'unilateral-inward-serifed' - zero = 'reverse-slashed-split' - one = 'base' - two = 'curly-neck' - three = 'two-arcs' - four = 'semi-open-non-crossing' - # five = 'vertical-upper-left-bar' - five = 'upright-flat' - six = 'straight-bar' - seven = 'curly-serifed-crossbar' - eight = 'two-circles' - nine = 'straight-bar' - tilde = 'low' - asterisk = 'penta-low' - underscore = 'above-baseline' - pilcrow = 'low' - caret = 'low' - paren = 'flat-arc' - brace = 'curly-flat-boundary' - number-sign = 'upright-open' - ampersand = 'upper-open' - at = 'compact' - dollar = 'interrupted' - cent = 'open' - percent = 'rings-segmented-slash' - bar = 'force-upright' - ascii-single-quote = 'raised-comma' - ascii-grave = 'straight' - question = 'smooth' - punctuation-dot = 'round' - ''; -} + }