nixos/flake.nix

94 lines
2.4 KiB
Nix

{
inputs = {
#channels
master.url = "github:NixOS/nixpkgs";
unstable.url = "github:NixOS/nixpkgs?ref=nixos-unstable";
stable.url = "github:NixOS/nixpkgs?ref=nixos-23.05";
nix = {
url = "github:NixOS/nix?ref=c29b8ba142a0650d1182ca838ddc1b2d273dcd2a";
inputs.nixpkgs.follows = "stable";
};
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "unstable";
};
sops-nix = {
url = "github:mic92/sops-nix";
inputs.nixpkgs.follows = "unstable";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "unstable";
};
nixfmt = {
url = "github:piegamesde/nixfmt?ref=rfc101-style";
inputs.nixpkgs.follows = "unstable";
};
spicetify-nix = {
url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "unstable";
};
#my own packages
suckless = {
url = "github:Gerg-L/suckless";
inputs.nixpkgs.follows = "unstable";
};
nvim-flake = {
url = "github:Gerg-L/nvim-flake";
inputs.nixpkgs.follows = "unstable";
};
fetch-rs = {
url = "github:Gerg-L/fetch-rs";
inputs.nixpkgs.follows = "unstable";
};
};
outputs =
inputs:
let
lib = import ./lib inputs;
in
lib.gerg-utils { allowUnfree = true; } (
{ pkgs, system, ... }:
{
inherit lib;
nixosConfigurations = lib.mkHosts "x86_64-linux" [
"gerg-desktop"
"game-desktop"
"moms-laptop"
"iso"
];
nixosModules = lib.mkModules ./modules;
diskoConfigurations = lib.mkDisko [
"gerg-desktop"
"game-desktop"
"moms-laptop"
];
formatter.${system} = pkgs.writeShellApplication {
name = "lint";
runtimeInputs = [
(pkgs.nixfmt.overrideAttrs {
version = "0.6.0-${inputs.nixfmt.shortRev}";
src = inputs.nixfmt;
})
pkgs.deadnix
pkgs.statix
pkgs.fd
];
text = ''
fd '.*\.nix' . -x statix fix -- {} \;
fd '.*\.nix' . -X deadnix -e -- {} \; -X nixfmt {} \;
'';
};
devShells.${system}.default = pkgs.mkShell { packages = [ pkgs.sops ]; };
packages.${system} = lib.mkPackages ./packages pkgs;
}
);
}