# virt-nix # System configuration for a vm on my desktop { inputs, globals, ... }: with inputs; inputs.nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ globals lix-module.nixosModules.default home-manager.nixosModules.home-manager sops-nix.nixosModules.sops ../../modules/common ../../modules/nixos { # something with overlays, I don't get those yet. # Hardware physical = true; networking.hostName = "kim"; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ "amdgpu" ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; # boot.loader.grub.device = "/dev/vda"; services.xserver.videoDrivers = [ "amdgpu" ]; # TODO: I use wayland, do I need this? hardware.enableRedistributableFirmware = true; powerManagement.cpuFreqGovernor = "performance"; fileSystems."/" = { device = "/dev/disk/by-uuid/ba4362a3-3a0b-4227-b460-a5a9302f5966"; fsType = "ext4"; }; fileSystems."/boot" = { device = "/dev/disk/by-uuid/DB88-8E65"; fsType = "vfat"; options = [ "fmask=0022" "dmask=0022" ]; }; swapDevices = [ ]; networking.useDHCP = nixpkgs.lib.mkDefault true; nixpkgs.hostPlatform = nixpkgs.lib.mkDefault "x86_64-linux"; hardware.cpu.amd.updateMicrocode = true; # TODO: identityFile = "/home/${globals.user}/.ssh/id_ed2519"; # TODO: passwordHash = nixpkgs.lib.fileContents ../../password.sha512; # Theming? sops = { defaultSopsFile = ../../secrets/secrets.yaml; defaultSopsFormat = "yaml"; age.keyFile = "/home/annika/.config/sops/age/keys.txt"; }; # TODO: Temporary, remove eventually! networking.networkmanager.enable = true; time.timeZone = "America/New_York"; nix.settings.experimental-features = [ "nix-command" "flakes" ]; services.xserver.enable = true; services.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; services.xserver.xkb = { layout = "us"; variant = ""; }; users.users.annika = { isNormalUser = true; description = "Annika Merris"; extraGroups = [ "networkmanager" "wheel" ]; }; nixpkgs.config.allowUnfree = true; system.stateVersion = "23.11"; home-manager.backupFileExtension = "backup"; services.openssh.enable = true; services.flatpak.enable = true; services.netbird.enable = true; # TODO: Move this to the netbird configs hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; # Enable sound with pipewire. sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; # If you want to use JACK applications, uncomment this #jack.enable = true; # use the example session manager (no others are packaged yet so this is enabled by default, # no need to redefine it in your config for now) #media-session.enable = true; }; gui.enable = true; # Apps discord.enable = true; element.enable = true; firefox.enable = true; netbird.enable = true; prusa-slicer.enable = true; spotifyd.enable = true; # Programming Stuff nixpkgs-fmt.enable = true; vscode.enable = true; # Utilities # git is not optional } ]; }