# Build ISO image # doas nix run github:nix-community/nixos-generators -- --flake .#odo --format iso { description = "My system configuration"; inputs = { impermanence.url = "github:nix-community/impermanence"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-b93b4e9b5.url = "github:NixOS/nixpkgs/b93b4e9b527904aadf52dba6ca35efde2067cbd4"; home-manager.url = "github:nix-community/home-manager/release-24.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; emacs-overlay.url = "github:nix-community/emacs-overlay/da2f552d133497abd434006e0cae996c0a282394"; emacs-overlay.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-b93b4e9b5, impermanence, home-manager, emacs-overlay, ... }@inputs: let base-system = {}; odoqemu = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = { pkgs-b93b4e9b5 = import nixpkgs-b93b4e9b5 { inherit system; # config.allowUnfree = true; }; pkgs-unstable = import nixpkgs-unstable { inherit system; # config.allowUnfree = true; }; }; modules = [ impermanence.nixosModules.impermanence home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; } ./configuration.nix ({lib, ...}: { imports = [ ]; virtualisation.qemu.options = [ "-device virtio-vga" ]; virtualisation.vmVariant = { # following configuration is added only when building VM with build-vm virtualisation = { memorySize = 2048; # Use 2048MiB memory. cores = 3; graphics = false; }; }; networking.dhcpcd.enable = lib.mkForce true; networking.useDHCP = lib.mkForce true; boot.loader.efi.canTouchEfiVariables = lib.mkForce true; # doas nixos-rebuild build-vm --flake .#odoqemu #./result/bin/run-nixos-vm }) ]; }; odo = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = { pkgs-b93b4e9b5 = import nixpkgs-b93b4e9b5 { inherit system; # config.allowUnfree = true; }; pkgs-unstable = import nixpkgs-unstable { inherit system; # config.allowUnfree = true; }; }; modules = [ impermanence.nixosModules.impermanence home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; } ./configuration.nix ]; }; in { # doas nix build --extra-experimental-features nix-command --extra-experimental-features flakes .#vms.odo # ./result/bin/run-nixos-vim vms.odo = odoqemu.config.system.build.vm; odoiso = odo.config.system.build.isoImage; nixosConfigurations.odo = odo; nixosConfigurations.odovm = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = { pkgs-b93b4e9b5 = import nixpkgs-b93b4e9b5 { inherit system; # config.allowUnfree = true; }; pkgs-unstable = import nixpkgs-unstable { inherit system; # config.allowUnfree = true; }; }; modules = [ impermanence.nixosModules.impermanence home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; } ./configuration.nix ({lib, ...}: { networking.dhcpcd.enable = lib.mkForce true; networking.useDHCP = lib.mkForce true; boot.loader.efi.canTouchEfiVariables = lib.mkForce true; }) ]; }; }; }