diff options
| -rw-r--r-- | configuration.nix | 119 | ||||
| -rw-r--r-- | flake.nix | 30 | ||||
| -rw-r--r-- | hosts/desktop/configuration.nix | 10 | ||||
| -rw-r--r-- | hosts/hyper-v/configuration.nix | 34 | ||||
| -rw-r--r-- | hosts/hyper-v/hardware-configuration.nix (renamed from hardware-configuration.nix) | 0 | ||||
| -rw-r--r-- | modules/common.nix | 66 | ||||
| -rw-r--r-- | modules/home.nix (renamed from home.nix) | 0 | ||||
| -rw-r--r-- | modules/xmonad.hs (renamed from xmonad.hs) | 0 |
8 files changed, 121 insertions, 138 deletions
diff --git a/configuration.nix b/configuration.nix deleted file mode 100644 index 7457d3b..0000000 --- a/configuration.nix +++ /dev/null @@ -1,119 +0,0 @@ -{ 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"; - }; - - programs.nix-index.enable = true; - programs.nix-index-database.comma.enable = true; - programs.command-not-found.enable = false; - - # 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? - -} - @@ -15,25 +15,17 @@ }; outputs = { self, nixpkgs, home-manager, nix-index-database, ... }@inputs: { - nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = { inherit inputs; }; - - modules = [ - ./configuration.nix - - nix-index-database.nixosModules.nix-index - - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - - home-manager.users.christian = import ./home.nix; - - home-manager.extraSpecialArgs = { inherit inputs; }; - } - ]; + nixosConfigurations = { + hyper-v = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ ./hosts/hyper-v/configuration.nix ]; + }; + desktop = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ ./hosts/desktop/configuration.nix ]; + }; }; }; } diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix new file mode 100644 index 0000000..dca3df1 --- /dev/null +++ b/hosts/desktop/configuration.nix @@ -0,0 +1,10 @@ +{ config, lib, pkgs, inputs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + networking.hostName = "desktop"; +} diff --git a/hosts/hyper-v/configuration.nix b/hosts/hyper-v/configuration.nix new file mode 100644 index 0000000..f7bc699 --- /dev/null +++ b/hosts/hyper-v/configuration.nix @@ -0,0 +1,34 @@ +{config, lib, pkgs, inputs, ...}: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ../../modules/common.nix + ]; + + networking.hostName = "hyper-v"; + + + # 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" \ + ''; + + services.xserver.displayManager.lightdm.enable = false; + + system.stateVersion = "25.11"; +} diff --git a/hardware-configuration.nix b/hosts/hyper-v/hardware-configuration.nix index 0417079..0417079 100644 --- a/hardware-configuration.nix +++ b/hosts/hyper-v/hardware-configuration.nix diff --git a/modules/common.nix b/modules/common.nix new file mode 100644 index 0000000..73dc435 --- /dev/null +++ b/modules/common.nix @@ -0,0 +1,66 @@ +{ config, lib, pkgs, inputs, ... }: + +{ + imports = [ + inputs.nix-index-database.nixosModules.nix-index + inputs.home-manager.nixosModules.home-manager + ]; + # 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; + + # Configure network connections interactively with nmcli or nmtui. + networking.networkmanager.enable = true; + + # Set your time zone. + # time.timeZone = "Europe/Amsterdam"; + time.timeZone = "America/Chicago"; + + # Enable the X11 windowing system. + services.xserver.enable = true; + services.xserver.windowManager.xmonad = { + enable = true; + enableContribAndExtras = true; + config = builtins.readFile ./xmonad.hs; + }; + + services.xserver.xkb.layout = "us"; + + # User + users.users.christian = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + }; + + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.christian = import ./home.nix; + home-manager.extraSpecialArgs = { inherit inputs; }; + + 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"; + }; + + programs.nix-index.enable = true; + programs.nix-index-database.comma.enable = true; + programs.command-not-found.enable = false; +} + diff --git a/home.nix b/modules/home.nix index 93cbeed..93cbeed 100644 --- a/home.nix +++ b/modules/home.nix diff --git a/xmonad.hs b/modules/xmonad.hs index 1df21b5..1df21b5 100644 --- a/xmonad.hs +++ b/modules/xmonad.hs |
