nixos-config/flake.nix

170 lines
4.6 KiB
Nix

{
description = "My system config";
inputs = {
nixpkgs.url = "nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/release-25.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
vpsadminos.url = "github:vpsfreecz/vpsadminos";
nix-index-database = {
url = "github:Mic92/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
ranger-icons.url = "github:alexanderjeurissen/ranger_devicons";
ranger-icons.flake = false;
plymouth-themes.url = "github:adi1090x/plymouth-themes";
plymouth-themes.flake = false;
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
dzgui-nix.url = "github:lelgenio/dzgui-nix";
tlauncher = {
url = "git+https://git.lelgenio.com/lelgenio/tlauncher-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
lsfg-vk-flake = {
url = "github:pabloaul/lsfg-vk-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
treefmt-nix.url = "github:numtide/treefmt-nix";
# my stuff
dhist.url = "github:lelgenio/dhist";
demoji.url = "github:lelgenio/demoji";
wl-crosshair.url = "github:lelgenio/wl-crosshair";
warthunder-leak-counter.url = "git+https://git.lelgenio.com/lelgenio/warthunder-leak-counter";
made-you-look.url = "git+https://git.lelgenio.com/lelgenio/made-you-look";
contador-da-viagem = {
url = "git+https://git.lelgenio.com/lelgenio/contador-da-viagem";
flake = false;
};
catboy-spinner = {
url = "git+https://git.lelgenio.com/lelgenio/catboy-spinner";
flake = false;
};
tomater = {
url = "git+https://git.lelgenio.com/lelgenio/tomater";
flake = false;
};
youre-wrong = {
url = "git+https://git.lelgenio.com/lelgenio/youre-wrong";
flake = false;
};
hello-fonts = {
url = "git+https://git.lelgenio.com/lelgenio/hello-fonts";
flake = false;
};
};
outputs =
inputs:
let
nixpkgsConfig = {
inherit system;
config = {
allowUnfree = true;
};
overlays = old_overlays.all;
};
inherit (import ./user/variables.nix) desktop;
system = "x86_64-linux";
pkgs = import inputs.nixpkgs nixpkgsConfig;
lib = inputs.nixpkgs.lib;
packages = import ./pkgs { inherit pkgs inputs; };
old_overlays = (import ./overlays { inherit packages inputs; });
specialArgs = {
inherit inputs;
self = inputs.self;
};
common_modules = [
{ nixpkgs.pkgs = pkgs; }
./system/configuration.nix
{
login-manager.greetd.enable = desktop == "sway";
my.gnome.enable = desktop == "gnome";
my.kde.enable = desktop == "kde";
}
{ home-manager.extraSpecialArgs = specialArgs; }
];
in
{
checks."${system}" = {
disko-format-i15 = pkgs.callPackage ./hosts/i15/partitions-test.nix { };
};
nixosConfigurations = {
i15 = lib.nixosSystem {
inherit specialArgs;
modules = common_modules ++ [ ./hosts/i15 ];
};
monolith = lib.nixosSystem {
inherit specialArgs;
modules = common_modules ++ [
./hosts/monolith
./system/monolith-gitlab-runner.nix
./system/monolith-forgejo-runner.nix
./system/nix-serve.nix
];
};
double-rainbow = lib.nixosSystem {
inherit specialArgs;
modules = common_modules ++ [
./hosts/double-rainbow
];
};
pixie = lib.nixosSystem {
inherit specialArgs;
modules = common_modules ++ [
./hosts/pixie.nix
];
};
phantom = lib.nixosSystem {
inherit specialArgs;
modules = [
{ nixpkgs.pkgs = pkgs; }
./hosts/phantom
];
};
};
homeConfigurations.lelgenio = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs;
osConfig = { };
};
modules = [ ./user/home.nix ];
};
packages.${system} = pkgs // packages;
# formatter.${system} = pkgs.nixfmt-rfc-style;
formatter.${system} = (inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix).config.build.wrapper;
};
}