1
Fork 0
shimmeringmoon/flake.nix

96 lines
2.9 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
fenix.url = "github:nix-community/fenix";
fenix.inputs.nixpkgs.follows = "nixpkgs";
shimmeringdarkness.url = "git+ssh://forgejo@ssh.git.moonythm.dev/prescientmoon/shimmeringdarkness.git";
shimmeringdarkness.flake = false;
};
outputs =
inputs:
inputs.flake-utils.lib.eachSystem (with inputs.flake-utils.lib.system; [ x86_64-linux ]) (
system:
let
pkgs = inputs.nixpkgs.legacyPackages.${system}.extend inputs.fenix.overlays.default;
rust-toolchain = pkgs.fenix.complete.toolchain;
spkgs = inputs.self.packages.${system};
inherit (pkgs) lib;
in
{
packages = {
inherit rust-toolchain;
# {{{ Private config
shimmeringdarkness = inputs.shimmeringdarkness.outPath;
glass-bundler = pkgs.callPackage ./nix/glass-bundler.nix { };
debundled-darkness = pkgs.callPackage ./nix/debundled-darkness.nix {
inherit (spkgs) shimmeringdarkness glass-bundler;
};
private-config = pkgs.callPackage ./nix/private-config.nix {
inherit (spkgs) shimmeringdarkness debundled-darkness;
};
# }}}
# {{{ Fonts
kazesawa = pkgs.callPackage ./nix/kazesawa.nix { };
exo = pkgs.callPackage ./nix/exo.nix { };
geosans-light = pkgs.callPackage ./nix/geosans-light.nix { };
shimmering-fonts = pkgs.callPackage ./nix/fonts.nix {
# Pass custom-packaged fonts
inherit (spkgs) exo kazesawa geosans-light;
};
# }}}
cc-data = pkgs.callPackage ./nix/cc-data.nix { };
default = spkgs.shimmeringmoon;
shimmeringmoon = pkgs.callPackage ./nix/shimmeringmoon.nix {
inherit (spkgs)
shimmering-fonts
rust-toolchain
cc-data
private-config
;
};
};
# {{{ Devshell
devShell = pkgs.mkShell rec {
nativeBuildInputs = with pkgs; [
spkgs.rust-toolchain
pkgs.ruff
pkgs.imagemagick
pkgs.pkg-config
];
buildInputs = with pkgs; [
python3
freetype
fontconfig
sqlite
openssl
];
LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs;
SHIMMERING_FONT_DIR = spkgs.shimmering-fonts;
SHIMMERING_CC_DIR = spkgs.cc-data;
SHIMMERING_PRIVATE_CONFIG_DIR = spkgs.private-config;
};
# }}}
}
);
# {{{ Caching and whatnot
nixConfig = {
extra-substituters = [ "https://nix-community.cachix.org" ];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
# }}}
}