snowflake/flake.nix

93 lines
2.5 KiB
Nix
Executable file

{
description = "snowflake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
hyprland.url = "github:hyprwm/Hyprland";
ags.url = "github:Aylur/ags";
nix-gaming.url = "github:fufexan/nix-gaming";
attic.url = "github:zhaofengli/attic";
nur.url = "github:nix-community/NUR";
yazi.url = "github:sxyazi/yazi";
helix.url = "github:helix-editor/helix";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
wezterm.url = "github:notohh/wezterm?dir=nix&ref=nix-add-overlay";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
deploy-rs = {
url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-database = {
url = "github:Mic92/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
nh = {
url = "github:viperML/nh";
inputs.nixpkgs.follows = "nixpkgs";
};
anyrun = {
url = "github:Kirottu/anyrun";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
pre-commit-hooks,
...
}@inputs:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
in
{
checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
stylua.enable = true;
eslint.enable = true;
statix.enable = true;
alejandra.enable = false;
deadnix = {
enable = true;
excludes = [ "overlays.nix" ];
};
prettier = {
enable = true;
files = "\\.(js|ts|md|json)$";
};
};
};
};
devShells.${system}.default = pkgs.mkShell {
name = "snowflake";
inherit (self.checks.pre-commit-check) shellHook;
packages = with pkgs; [
git
sops
# alejandra
nixfmt-rfc-style
statix
deadnix
yaml-language-server
lua-language-server
];
};
# formatter.${system} = pkgs.alejandra;
deploy = import ./hosts/deploy.nix inputs;
nixosConfigurations = import ./hosts inputs;
};
}