{ config, lib, pkgs, inputs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # Experimental features nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # networking.hostName = "nixos"; # Define your hostname. # Configure network connections interactively with nmcli or nmtui. networking.networkmanager.enable = true; # Set your time zone. # time.timeZone = "Europe/Amsterdam"; time.timeZone = "America/Chicago"; # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # Select internationalisation properties. # i18n.defaultLocale = "en_US.UTF-8"; # console = { # font = "Lat2-Terminus16"; # keyMap = "us"; # useXkbConfig = true; # use xkb.options in tty. # }; # Enable the X11 windowing system. services.xserver.enable = true; services.xserver.windowManager.xmonad = { enable = true; enableContribAndExtras = true; config = builtins.readFile ./xmonad.hs; }; services.xserver.displayManager.lightdm.enable = false; services.xserver.xkb.layout = "us"; # Hyper-V setup virtualisation.hypervGuest.enable = true; services.xrdp.enable = true; services.xrdp.defaultWindowManager = "xmonad"; systemd.services.xrdp.serviceConfig = { # Remove the --port in the invokation of xrdp (it overwrites the option in the config) ExecStart = lib.mkForce "${pkgs.xrdp}/bin/xrdp --nodaemon --config ${config.services.xrdp.confDir}/xrdp.ini"; }; services.xrdp.extraConfDirCommands = '' substituteInPlace $out/xrdp.ini \ --replace-fail "port=3389" "port=vsock://-1:3389" \ --replace-fail "#vmconnect=true" "vmconnect=true" \ --replace-fail "security_layer=negotiate" "security_layer=rdp" \ --replace-fail "crypt_level=high" "crypt_level=none" \ ''; # User users.users.christian = { isNormalUser = true; extraGroups = [ "wheel" ]; }; environment.systemPackages = with pkgs; [ git wget alacritty ]; programs.firefox.enable = true; programs.neovim = { enable = true; vimAlias = true; viAlias = true; defaultEditor = true; }; programs.bash.shellAliases = { rebuild = "sudo nixos-rebuild switch --flake /etc/nixos"; }; # This option defines the first version of NixOS you have installed on this particular machine, # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. # # Most users should NEVER change this value after the initial install, for any reason, # even if you've upgraded your system to a new NixOS release. # # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how # to actually do that. # # This value being lower than the current NixOS release does NOT mean your system is # out of date, out of support, or vulnerable. # # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, # and migrated your data accordingly. # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "25.11"; # Did you read the comment? }