nix-config/flake.in.nix
2024-05-16 02:40:39 -04:00

101 lines
2.9 KiB
Nix

{
inputs = let
mkCustomUrl = url: {
inherit url;
};
mkInput = url: {
url = "github:${url}";
};
mkFollowingNixpkgs = url: {
url = "github:${url}";
inputs.nixpkgs.follows = "nixpkgs";
};
in {
agenix = mkInput "ryantm/agenix";
catppuccin = mkInput "catppuccin/nix";
chaotic = mkInput "chaotic-cx/nyx/nyxpkgs-unstable";
impermanence = mkInput "nix-community/impermanence";
nixpkgs = mkInput "arianvp/nixpkgs/soft-reboot";
nix-super = mkCustomUrl "git+https://git.privatevoid.net/max/nix-super";
nixvim = mkInput "pupbrained/nixvim";
schizofox = mkInput "schizofox/schizofox";
sops-nix = mkInput "Mic92/sops-nix";
treefmt-nix = mkInput "numtide/treefmt-nix";
xmonad-contrib = mkInput "xmonad/xmonad-contrib";
home-manager = mkFollowingNixpkgs "nix-community/home-manager";
nix-index-database = mkFollowingNixpkgs "nix-community/nix-index-database";
snowfall-flake = mkFollowingNixpkgs "snowfallorg/flake";
snowfall-lib = mkFollowingNixpkgs "snowfallorg/lib/dev";
};
outputs = {...} @ inputs:
with inputs; let
pkgs = import nixpkgs {inherit system;};
system = "x86_64-linux";
in
snowfall-lib.mkFlake {
inherit inputs;
src = ./.;
formatter.${system} = treefmt-nix.lib.mkWrapper pkgs {
projectRootFile = "flake.nix";
programs = {
alejandra.enable = true;
deadnix.enable = true;
};
};
overlays = [
snowfall-flake.overlays.default
(_: _: {
nixSuper = nix-super.packages.${system}.default;
})
];
channels-config = {
allowAliases = true;
allowUnfree = true;
allowUnsupportedSystem = true;
cudaSupport = true;
permittedInsecurePackages = ["freeimage-unstable-2021-11-01"];
home-manager.useGlobalPkgs = true;
};
homes.modules = [
chaotic.homeManagerModules.default
catppuccin.homeManagerModules.catppuccin
nix-index-database.hmModules.nix-index
schizofox.homeManagerModules.default
];
systems.modules.nixos =
[
agenix.nixosModules.default
catppuccin.nixosModules.catppuccin
chaotic.nixosModules.default
impermanence.nixosModules.impermanence
xmonad-contrib.modernise.${system}
]
++ xmonad-contrib.nixosModules;
devShells.${system}.default = with pkgs;
mkShellNoCC {
packages = [
alejandra
git
nvfetcher
statix
(writeScriptBin "build" ''
nix fmt
nh os switch . -- --impure
nh home switch
'')
(writeScriptBin "up" "nix flake update")
];
};
};
}