nix/flake.nix

220 lines
6.4 KiB
Nix
Raw Normal View History

{
description = "flake for nixos-pulse";
nixConfig = { };
inputs = {
nixpkgs-unstable = {
url = "github:NixOS/nixpkgs/nixpkgs-unstable";
};
nixos-unstable = {
url = "github:NixOS/nixpkgs/nixos-unstable";
};
nixpkgs = {
url = "github:NixOS/nixpkgs/nixos-23.11";
};
2023-12-11 20:47:22 +01:00
nixinate.url = "git+https://git.vlt81.de/tristan/nixinate.git";
chaotic = {
url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
};
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs";
};
emacs-overlay = {
url = "github:nix-community/emacs-overlay";
2023-10-20 12:40:57 +02:00
inputs.nixpkgs-stable.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-wallpaper = {
url = "github:lunik1/nix-wallpaper";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-database = {
url = "github:Mic92/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = "github:pjones/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
nix-alien.url = "github:thiagokokada/nix-alien";
2023-12-11 01:02:18 +01:00
nixtheplanet.url = "github:matthewcroughan/nixtheplanet";
envfs = {
url = "github:Mic92/envfs";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-ld-rs.url = "github:nix-community/nix-ld-rs";
};
outputs =
{ self
, nixpkgs
, nixpkgs-unstable
, nixos-unstable
2023-12-11 01:02:18 +01:00
, nixtheplanet
2023-12-11 20:47:22 +01:00
, nixinate
, home-manager
, plasma-manager
, emacs-overlay
, nur
, nix-index-database
, disko
, chaotic
, envfs
, ...
} @ inputs:
let
system = "x86_64-linux";
unstable-os = import nixos-unstable pkgs-args;
unstable-pkgs = import nixpkgs-unstable pkgs-args;
my-overlay = final: prev: {
my = self.packages."${system}";
unstable-pkgs = unstable-pkgs.pkgs;
unstable-os = unstable-os.pkgs;
};
overlays = [
my-overlay
emacs-overlay.overlay
inputs.nix-alien.overlays.default
inputs.nix-ld-rs.overlays.default
];
pkgs-args = {
inherit system;
inherit overlays;
config = {
allowUnfree = true;
packageOverrides = pkgs: { };
2023-10-21 03:33:27 +02:00
permittedInsecurePackages = [
"electron-22.3.27"
"electron-24.8.6"
2023-12-10 21:51:02 +01:00
"electron-25.9.0"
2023-10-21 03:33:27 +02:00
];
};
};
pkgs = import nixpkgs pkgs-args;
hmModules = [
nix-index-database.hmModules.nix-index
nur.hmModules.nur
plasma-manager.homeManagerModules.plasma-manager
];
osModules = [
disko.nixosModules.disko
home-manager.nixosModules.home-manager
nix-index-database.nixosModules.nix-index
nur.nixosModules.nur
chaotic.nixosModules.default
2023-12-11 01:02:18 +01:00
nixtheplanet.nixosModules.macos-ventura
envfs.nixosModules.envfs
];
args = {
inherit self;
inherit inputs;
inherit system;
};
in
{
2023-12-13 11:49:57 +01:00
apps.x86_64-linux = (nixinate.nixinate.x86_64-linux self).nixinate;
formatter = {
${system} = pkgs.nixpkgs-fmt;
2023-10-17 03:12:55 +02:00
};
packages."${system}" = {
spotube = pkgs.callPackage ./pkgs/spotube.nix { };
};
diskoConfigurations = {
nixos-desk = import ./systems/nixos-desk/disko.nix;
2024-01-11 07:25:57 +01:00
nixos-pulse = import ./systems/nixos-pulse/disko.nix;
nixos-he4 = import ./systems/nixos-he4/disko.nix;
};
nixosConfigurations = {
2024-01-11 07:25:57 +01:00
nixos-he4 = nixpkgs.lib.nixosSystem {
system = system;
specialArgs = args;
modules =
[
./systems/nixos-he4
{
nixpkgs.pkgs = pkgs;
nix.registry.nixpkgs.flake = nixpkgs;
home-manager.sharedModules = hmModules;
home-manager.extraSpecialArgs = args;
}
]
++ osModules;
};
nixos-pulse = nixpkgs.lib.nixosSystem {
2023-12-14 19:13:03 +01:00
system = system;
specialArgs = args;
modules =
[
./systems/nixos-pulse
{
nixpkgs.pkgs = pkgs;
nix.registry.nixpkgs.flake = nixpkgs;
home-manager.sharedModules = hmModules;
home-manager.extraSpecialArgs = args;
}
]
++ osModules;
};
nixos-desk = nixpkgs.lib.nixosSystem {
2023-12-14 19:13:03 +01:00
system = system;
2023-12-11 20:47:22 +01:00
specialArgs = args;
modules =
[
./systems/nixos-desk
{
nixpkgs.pkgs = pkgs;
nix.registry.nixpkgs.flake = nixpkgs;
home-manager.sharedModules = hmModules;
home-manager.extraSpecialArgs = args;
}
2023-12-11 20:47:22 +01:00
{
_module.args.nixinate = {
host = "100.64.0.3";
sshUser = "tristand";
buildOn = "remote"; # valid args are "local" or "remote"
substituteOnTarget = false; # if buildOn is "local" then it will substitute on the target, "-s"
hermetic = false;
};
}
]
++ osModules;
};
nixos-karl-kvm-guest = nixpkgs.lib.nixosSystem {
2023-12-14 19:13:03 +01:00
system = system;
2023-12-11 20:47:22 +01:00
specialArgs = args;
2023-12-07 12:02:50 +01:00
modules =
[
./systems/nixos-karl-kvm-guest
2023-12-07 12:02:50 +01:00
{
nixpkgs.pkgs = pkgs;
nix.registry.nixpkgs.flake = nixpkgs;
home-manager.sharedModules = hmModules;
home-manager.extraSpecialArgs = args;
}
2023-12-11 20:47:22 +01:00
{
_module.args.nixinate = {
host = "nixos-karl-kvm-guest.oekonzept.de";
sshUser = "reopen5194";
buildOn = "remote"; # valid args are "local" or "remote"
substituteOnTarget = false; # if buildOn is "local" then it will substitute on the target, "-s"
hermetic = false;
};
}
2023-12-07 12:02:50 +01:00
]
++ osModules;
};
};
};
}