packages.nix 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. { inputs, ... }:
  2. let inherit (import ./lib.nix { inherit inputs; }) mkSystem;
  3. in {
  4. x86_64-linux = let
  5. mkIso = edition: conf: let
  6. edition' = if (edition == "minimal") then "minimal" else "base";
  7. in (mkSystem "x86_64-linux" ([
  8. "${inputs.nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-${edition'}.nix"
  9. ./hosts/nixos ({ lib, pkgs, ... }: {
  10. isoImage = {
  11. inherit edition;
  12. isoBaseName = "nixos-${edition}";
  13. squashfsCompression = "zstd -Xcompression-level 3";
  14. };
  15. environment.systemPackages = lib.mkIf
  16. (edition != "minimal") (with pkgs; [ gparted ]);
  17. })
  18. ] ++ conf)).config.system.build.isoImage;
  19. mkVm = conf: (mkSystem "x86_64-linux" ([
  20. "${inputs.nixpkgs}/nixos/modules/virtualisation/qemu-vm.nix"
  21. ./hosts/nixos {
  22. virtualisation = {
  23. cores = 2;
  24. memorySize = 4096;
  25. };
  26. }
  27. ] ++ conf)).config.system.build.vm;
  28. in {
  29. iso = mkIso "minimal" [];
  30. iso-gnome = mkIso "gnome" [{ roles.desktop = "gnome"; }];
  31. iso-kde = mkIso "plasma5" [{ roles.desktop = "kde"; }];
  32. vm = mkVm [{ virtualisation.qemu.options = [ "-nographic" ]; }];
  33. vm-gnome = mkVm [{
  34. virtualisation.qemu.options = [ "-vga virtio" ];
  35. roles.desktop = "gnome";
  36. }];
  37. vm-kde = mkVm [{
  38. virtualisation.qemu.options = [ "-vga virtio" ];
  39. roles.desktop = "kde";
  40. }];
  41. };
  42. }