# 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 ./hardware-configuration.nix ../../modules/common ../../modules/nixos { # something with overlays, I don't get those yet. # Hardware physical = true; networking.hostName = "kim"; networking.useDHCP = nixpkgs.lib.mkDefault 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; python3.enable = true; vscode.enable = true; # Utilities # git is not optional } ]; }