nix-configs/flake.nix

71 lines
1.8 KiB
Nix

{
description = "xyno doin nixos";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11";
nixpkgs-master.url = "github:nixos/nixpkgs?ref=master";
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
# software
lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser.url = "github:0xc000022070/zen-browser-flake";
kmonad = {
url = "git+https://github.com/jokesper/kmonad?dir=nix&ref=feat-tap-overlap";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
inputs@{
self,
nixpkgs,
nixpkgs-master,
...
}:
let
lib = nixpkgs.lib.extend (
s: super: {
xyno = import ./lib {
inherit inputs nixpkgs self;
lib = s;
};
}
);
overlays = [ self.overlays.default ];
genPkgs =
system:
import nixpkgs {
inherit system overlays;
config.allowUnfree = true;
};
in
{
overlays.default = final: prev: {
unstable = import nixpkgs-master {
system = prev.system;
config.allowUnfree = true;
};
};
nixosConfigurations = lib.xyno.loadInstances ./instances [
inputs.lix-module.nixosModules.default
inputs.kmonad.nixosModules.default
inputs.home-manager.nixosModules.default
];
devShell."x86_64-linux" =
let
pkgs = genPkgs "x86_64-linux";
in
pkgs.mkShell {
packages = [
pkgs.nixfmt-rfc-style
pkgs.nil
];
};
};
}