Compare commits
	
		
			4 Commits 
		
	
	
		
			97d3e9cf81
			...
			91a1c7f6ca
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
									
								
								 | 
						91a1c7f6ca | |
| 
							
							
								
									
								
								 | 
						fc7e346f1e | |
| 
							
							
								
									
								
								 | 
						0da72e9513 | |
| 
							
							
								
									
								
								 | 
						749bd75992 | 
| 
						 | 
				
			
			@ -3,3 +3,4 @@
 | 
			
		|||
result
 | 
			
		||||
result-*
 | 
			
		||||
 | 
			
		||||
nixos-efi-vars.fd
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										14
									
								
								README.md
								
								
								
								
							
							
						
						
									
										14
									
								
								README.md
								
								
								
								
							| 
						 | 
				
			
			@ -1,9 +1,15 @@
 | 
			
		|||
# nixos
 | 
			
		||||
 | 
			
		||||
My NixOS config
 | 
			
		||||
## Set up virtual machine ([`disko`](https://github.com/nix-community/disko/blob/master/docs/interactive-vm.md))
 | 
			
		||||
 | 
			
		||||
1. Build the virtual machine
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
git clone https://git.hektormisplon.xyz/hektor/nix.git
 | 
			
		||||
cd nix
 | 
			
		||||
sudo nix --experimental-features "nix-command flakes" run 'github:nix-community/disko/latest#disko-install' -- --flake .#vm --disk root /dev/vda
 | 
			
		||||
nix run -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
2. Run the virtual machine
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
QEMU_KERNEL_PARAMS=console=ttyS0 ./result/bin/run-nixos-vm -nographic; reset
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,11 +44,11 @@
 | 
			
		|||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1759439645,
 | 
			
		||||
        "narHash": "sha256-oiAyQaRilPk525Z5aTtTNWNzSrcdJ7IXM0/PL3CGlbI=",
 | 
			
		||||
        "lastModified": 1759580034,
 | 
			
		||||
        "narHash": "sha256-YWo57PL7mGZU7D4WeKFMiW4ex/O6ZolUS6UNBHTZfkI=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "879bd460b3d3e8571354ce172128fbcbac1ed633",
 | 
			
		||||
        "rev": "3bcc93c5f7a4b30335d31f21e2f1281cba68c318",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										36
									
								
								flake.nix
								
								
								
								
							
							
						
						
									
										36
									
								
								flake.nix
								
								
								
								
							| 
						 | 
				
			
			@ -13,18 +13,28 @@
 | 
			
		|||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { self, nixpkgs, disko, home-manager }: {
 | 
			
		||||
    nixosConfigurations.vm = nixpkgs.lib.nixosSystem {
 | 
			
		||||
      system = "x86_64-linux";
 | 
			
		||||
      modules = [
 | 
			
		||||
        ./hosts/vm/configuration.nix
 | 
			
		||||
        disko.nixosModules.disko
 | 
			
		||||
        home-manager.nixosModules.home-manager {
 | 
			
		||||
          home-manager.useGlobalPkgs = true;
 | 
			
		||||
          home-manager.useUserPackages = true;
 | 
			
		||||
          home-manager.users.h = ./hosts/vm/home.nix;
 | 
			
		||||
	      }
 | 
			
		||||
      ];
 | 
			
		||||
  outputs =
 | 
			
		||||
    {
 | 
			
		||||
      self,
 | 
			
		||||
      nixpkgs,
 | 
			
		||||
      disko,
 | 
			
		||||
      home-manager,
 | 
			
		||||
    }:
 | 
			
		||||
    {
 | 
			
		||||
      nixosConfigurations = {
 | 
			
		||||
        vm = nixpkgs.lib.nixosSystem {
 | 
			
		||||
          system = "x86_64-linux";
 | 
			
		||||
          modules = [
 | 
			
		||||
            disko.nixosModules.disko
 | 
			
		||||
            ./hosts/vm/configuration.nix
 | 
			
		||||
            home-manager.nixosModules.home-manager
 | 
			
		||||
            {
 | 
			
		||||
              home-manager.useGlobalPkgs = true;
 | 
			
		||||
              home-manager.useUserPackages = true;
 | 
			
		||||
              home-manager.users.h = ./hosts/vm/home.nix;
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,30 +3,25 @@
 | 
			
		|||
{
 | 
			
		||||
  system.stateVersion = "25.05";
 | 
			
		||||
 | 
			
		||||
  imports =
 | 
			
		||||
    [
 | 
			
		||||
      ./hard.nix
 | 
			
		||||
      ./disk.nix
 | 
			
		||||
      ../../modules/bootloader.nix
 | 
			
		||||
      ../../modules/networking.nix
 | 
			
		||||
      ../../modules/users.nix
 | 
			
		||||
      ../../modules/audio.nix
 | 
			
		||||
      ../../modules/printing.nix
 | 
			
		||||
      ../../modules/localization.nix
 | 
			
		||||
      ../../modules/x.nix
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./hard.nix
 | 
			
		||||
    ./disk.nix
 | 
			
		||||
    ../../modules/bootloader.nix
 | 
			
		||||
    ../../modules/networking.nix
 | 
			
		||||
    ../../modules/users.nix
 | 
			
		||||
    ../../modules/audio.nix
 | 
			
		||||
    ../../modules/printing.nix
 | 
			
		||||
    ../../modules/localization.nix
 | 
			
		||||
    ../../modules/x.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nix.settings.experimental-features = [ "nix-command" "flakes" ];
 | 
			
		||||
  nix.settings.experimental-features = [
 | 
			
		||||
    "nix-command"
 | 
			
		||||
    "flakes"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # These are needed for ZFS
 | 
			
		||||
 | 
			
		||||
  networking.hostId = "25698a58";
 | 
			
		||||
  # https://discourse.nixos.org/t/zfs-with-disko-faluire-to-import-zfs-pool/61988/3
 | 
			
		||||
  boot = {
 | 
			
		||||
    zfs = {
 | 
			
		||||
        devNodes = "/dev/disk/by-uuid";
 | 
			
		||||
      };
 | 
			
		||||
  };
 | 
			
		||||
  disko.devices.disk.main.device = "/dev/vda";
 | 
			
		||||
 | 
			
		||||
  programs.git.enable = true;
 | 
			
		||||
  programs.firefox.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1 +1,42 @@
 | 
			
		|||
import ../../modules/disko.zfs-encrypted-root.nix
 | 
			
		||||
# USAGE in your configuration.nix.
 | 
			
		||||
# Update devices to match your hardware.
 | 
			
		||||
# {
 | 
			
		||||
#  imports = [ ./disko-config.nix ];
 | 
			
		||||
#  disko.devices.disk.main.device = "/dev/sda";
 | 
			
		||||
# }
 | 
			
		||||
{
 | 
			
		||||
  disko.devices = {
 | 
			
		||||
    disk = {
 | 
			
		||||
      main = {
 | 
			
		||||
        type = "disk";
 | 
			
		||||
        content = {
 | 
			
		||||
          type = "gpt";
 | 
			
		||||
          partitions = {
 | 
			
		||||
            boot = {
 | 
			
		||||
              size = "1M";
 | 
			
		||||
              type = "EF02"; # for grub MBR
 | 
			
		||||
            };
 | 
			
		||||
            ESP = {
 | 
			
		||||
              size = "1G";
 | 
			
		||||
              type = "EF00";
 | 
			
		||||
              content = {
 | 
			
		||||
                type = "filesystem";
 | 
			
		||||
                format = "vfat";
 | 
			
		||||
                mountpoint = "/boot";
 | 
			
		||||
                mountOptions = [ "umask=0077" ];
 | 
			
		||||
              };
 | 
			
		||||
            };
 | 
			
		||||
            root = {
 | 
			
		||||
              size = "100%";
 | 
			
		||||
              content = {
 | 
			
		||||
                type = "filesystem";
 | 
			
		||||
                format = "ext4";
 | 
			
		||||
                mountpoint = "/";
 | 
			
		||||
              };
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,14 +1,26 @@
 | 
			
		|||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
			
		||||
# and may be overwritten by future invocations.  Please make changes
 | 
			
		||||
# to /etc/nixos/configuration.nix instead.
 | 
			
		||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  modulesPath,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ (modulesPath + "/profiles/qemu-guest.nix")
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    (modulesPath + "/profiles/qemu-guest.nix")
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
 | 
			
		||||
  boot.initrd.availableKernelModules = [
 | 
			
		||||
    "ahci"
 | 
			
		||||
    "xhci_pci"
 | 
			
		||||
    "virtio_pci"
 | 
			
		||||
    "sr_mod"
 | 
			
		||||
    "virtio_blk"
 | 
			
		||||
  ];
 | 
			
		||||
  boot.initrd.kernelModules = [ ];
 | 
			
		||||
  boot.kernelModules = [ "kvm-intel" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,11 @@
 | 
			
		|||
 | 
			
		||||
{
 | 
			
		||||
  networking.hostName = "nixos";
 | 
			
		||||
  networking.wireless = { iwd = { enable = true; }; };
 | 
			
		||||
  networking.wireless = {
 | 
			
		||||
    iwd = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  networking.firewall = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    allowedTCPPorts = [ 22 ];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
 | 
			
		||||
{ 
 | 
			
		||||
{
 | 
			
		||||
  services.printing.enable = true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,10 +2,10 @@
 | 
			
		|||
 | 
			
		||||
{
 | 
			
		||||
  services.xserver.windowManager.xmonad = {
 | 
			
		||||
   enable = true;
 | 
			
		||||
   enableContribAndExtras = true;
 | 
			
		||||
   config = builtins.readFile ../dots/.xmonad/xmonad.hs;
 | 
			
		||||
 };
 | 
			
		||||
    enable = true;
 | 
			
		||||
    enableContribAndExtras = true;
 | 
			
		||||
    config = builtins.readFile ../dots/.xmonad/xmonad.hs;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services.xserver = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue