diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..f3b369d --- /dev/null +++ b/flake.lock @@ -0,0 +1,43 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1781577229, + "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs", + "systems": "systems" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..7e4031b --- /dev/null +++ b/flake.nix @@ -0,0 +1,39 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + systems.url = "github:nix-systems/default-linux"; + }; + outputs = + { + self, + nixpkgs, + systems, + ... + }: + let + eachSystem = nixpkgs.lib.genAttrs (import systems); + in + { + packages = eachSystem ( + system: + let + pkgs = import nixpkgs { system = "${system}"; overlays = [ (import ./overlay.nix) ]; }; + in + { + default = self.packages.${system}.iosevka-hashcube.nightly; + iosevka-hashcube = { + nightly = pkgs.iosevka-hashcube; + }; + } + ); + devShells = eachSystem ( + system: + let + pkgs = import nixpkgs { system = "${system}"; }; + in + { + default = pkgs.mkShellNoCC { packages = with pkgs; [ ]; }; + } + ); + }; +} diff --git a/overlay.nix b/overlay.nix new file mode 100644 index 0000000..f2dc1d2 --- /dev/null +++ b/overlay.nix @@ -0,0 +1,49 @@ +(self: super: { + iosevka-hashcube = ((super.iosevka.overrideAttrs (_:{ + nativeBuildInputs = [ super.nerd-font-patcher ] ++ super.iosevka.nativeBuildInputs; + postInstall = '' + mkdir -p $out/share/fonts/truetype/{iosevka,iosevka-nerd} + mv $out/share/fonts/truetype/*.ttf $out/share/fonts/truetype/iosevka/ + for f in $out/share/fonts/truetype/iosevka/*.ttf; do + nerd-font-patcher --complete -s --outputdir $out/share/fonts/truetype/iosevka-nerd/ "$f" + done + ''; + })).override { + privateBuildPlan = { + family = "Iosevka Hashcube"; + spacing = "term"; + serifs = "sans"; + noCvSs = true; + exportGlyphNames = true; + + variants.inherits = "ss14"; + ligations.inherits = "dlig"; + weights = { + Regular = { + shape = 400; + menu = 400; + css = 400; + }; + Bold = { + shape = 700; + menu = 700; + css = 700; + }; + }; + slopes = { + Upright = { + angle = 0; + shape = "upright"; + menu = "upright"; + css = "normal" ; + }; + Italic = { + angle = 9.4; + shape = "italic"; + menu = "italic"; + css = "italic"; + }; + }; + }; + }); +})