From 63fd280927d5a1ff91d7b6786a8e28340449b556 Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Tue, 25 Mar 2025 07:39:26 -0400 Subject: [PATCH] add dragneel host --- flake.nix | 11 +++++ hosts/Dragneel/default.nix | 22 +++++++++ hosts/Dragneel/hardware-configuration.nix | 56 +++++++++++++++++++++++ modules/core.nix | 3 ++ modules/desktops/default.nix | 1 + modules/desktops/wayland/kde.nix | 17 +++++++ modules/options.nix | 10 ++++ modules/users/crow/user.nix | 2 +- modules/users/dragneel/default.nix | 9 ++++ modules/users/dragneel/home.nix | 20 ++++++++ modules/users/dragneel/user.nix | 19 ++++++++ 11 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 hosts/Dragneel/default.nix create mode 100644 hosts/Dragneel/hardware-configuration.nix create mode 100644 modules/desktops/wayland/kde.nix create mode 100644 modules/users/dragneel/default.nix create mode 100644 modules/users/dragneel/home.nix create mode 100644 modules/users/dragneel/user.nix diff --git a/flake.nix b/flake.nix index d7e0417..024cd49 100644 --- a/flake.nix +++ b/flake.nix @@ -74,6 +74,17 @@ ] ++ baseModules; }; + ################ + # Wife Desktop # + ################ + Dragneel = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs;}; + modules = + [ + ./hosts/Dragneel + ] + ++ baseModules; + }; ############### # Home Server # ############### diff --git a/hosts/Dragneel/default.nix b/hosts/Dragneel/default.nix new file mode 100644 index 0000000..912214c --- /dev/null +++ b/hosts/Dragneel/default.nix @@ -0,0 +1,22 @@ +{ + lib, + config, + pkgs, + ... +}: { + imports = [ + ./hardware-configuration.nix + ../../modules + ]; + + networking.hostName = "Dragneel"; + + user.dragneel.enable = true; + + desktop.kde.enable = true; + + module.gui.enable = true; + module.gaming.enable = true; + + programs.noisetorch.enable = true; +} diff --git a/hosts/Dragneel/hardware-configuration.nix b/hosts/Dragneel/hardware-configuration.nix new file mode 100644 index 0000000..f157bd1 --- /dev/null +++ b/hosts/Dragneel/hardware-configuration.nix @@ -0,0 +1,56 @@ +# 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, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = ["sg" "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-amd"]; + boot.extraModulePackages = []; + boot.loader = { + systemd-boot.enable = true; + efi = { + canTouchEfiVariables = true; + }; + }; + + fileSystems."/" = { + device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-label/boot"; + fsType = "vfat"; + options = ["fmask=0022" "dmask=0022"]; + }; + + swapDevices = []; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp8s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.amdgpu = { + initrd.enable = true; + amdvlk.enable = true; + opencl.enable = true; + }; + + hardware.rtl-sdr.enable = true; +} diff --git a/modules/core.nix b/modules/core.nix index 0544d00..b211a56 100644 --- a/modules/core.nix +++ b/modules/core.nix @@ -14,6 +14,9 @@ #trusted-public-keys = ["wce-cache:s5otDeH048aZEGwQ2EQn6UfFJn6YgP71bcOok1jX1Q0="]; }; + users.mutableUsers = false; + users.users.root.hashedPassword = "$y$j9T$pEz.3JBh6Ft3FIYrp14Ti1$RQsOWum40HbwEb7t69LGjUCh6E9w/ANi7lNIopGsu0A"; + environment.variables = { EDITOR = "nvim"; VISUAL = "nvim"; diff --git a/modules/desktops/default.nix b/modules/desktops/default.nix index f9d2e0d..3bab843 100644 --- a/modules/desktops/default.nix +++ b/modules/desktops/default.nix @@ -6,6 +6,7 @@ imports = [ # Wayland desktops here ./wayland/sway.nix + ./wayland/kde.nix # X11 desktops here ./x11/i3.nix diff --git a/modules/desktops/wayland/kde.nix b/modules/desktops/wayland/kde.nix new file mode 100644 index 0000000..d33d065 --- /dev/null +++ b/modules/desktops/wayland/kde.nix @@ -0,0 +1,17 @@ +{ + inputs, + pkgs, + lib, + config, + ... +}: +lib.mkIf config.desktop.kde.enable { + services.desktopManager.plasma6 = { + enable = true; + }; + + services.displayManager.sddm = { + enable = true; + wayland.enable = true; + }; +} diff --git a/modules/options.nix b/modules/options.nix index 7a61765..2813ee6 100644 --- a/modules/options.nix +++ b/modules/options.nix @@ -32,6 +32,10 @@ enable = lib.mkEnableOption "enable crow"; home.enable = lib.mkEnableOption "enable home configuration"; }; + dragneel = { + enable = lib.mkEnableOption "enable dragneel"; + home.enable = lib.mkEnableOption "enable home configuration"; + }; overseer = { enable = lib.mkEnableOption "enable container overseer user"; }; @@ -48,6 +52,7 @@ swayfx.enable = lib.mkEnableOption "enable sway with eye candy"; niri.enable = lib.mkEnableOption "enable niri window manager"; i3.enable = lib.mkEnableOption "enables i3"; + kde.enable = lib.mkEnableOption "KDE with Plasma6"; }; service = { @@ -89,6 +94,10 @@ enable = lib.mkDefault false; home.enable = lib.mkDefault config.user.crow.enable; }; + dragneel = { + enable = lib.mkDefault false; + home.enable = lib.mkDefault config.user.dragneel.enable; + }; overseer = { enable = lib.mkDefault false; }; @@ -106,6 +115,7 @@ swayfx.enable = lib.mkDefault false; niri.enable = lib.mkDefault false; i3.enable = lib.mkDefault false; + kde.enable = lib.mkDefault false; }; service = { diff --git a/modules/users/crow/user.nix b/modules/users/crow/user.nix index 27922db..d11db61 100644 --- a/modules/users/crow/user.nix +++ b/modules/users/crow/user.nix @@ -6,7 +6,7 @@ }: { users.users.crow = lib.mkIf config.user.crow.enable { isNormalUser = true; - initialPassword = "changeme"; + hashedPassword = "$y$j9T$wDC7wMJxCLNvdf8L8s6jZ.$U06F381x07fzu.updEsoegiWtbFvsrRJ7DLN9gR7un0"; extraGroups = ["wheel" "networkmanager" "audio" "plugdev" "dialout"]; openssh.authorizedKeys.keyFiles = [ inputs.nix-secrets.keys.default diff --git a/modules/users/dragneel/default.nix b/modules/users/dragneel/default.nix new file mode 100644 index 0000000..bc8c704 --- /dev/null +++ b/modules/users/dragneel/default.nix @@ -0,0 +1,9 @@ +{ + lib, + config, + ... +}: { + imports = [ + ./user.nix + ]; +} diff --git a/modules/users/dragneel/home.nix b/modules/users/dragneel/home.nix new file mode 100644 index 0000000..5c0ae3d --- /dev/null +++ b/modules/users/dragneel/home.nix @@ -0,0 +1,20 @@ +{ + osConfig, + config, + inputs, + pkgs, + lib, + ... +}: { + imports = []; + home = { + username = "dragneel"; + homeDirectory = "/home/dragneel"; + stateVersion = "24.05"; + }; + + xdg = { + configHome = "/home/dragneel/.config"; + enable = true; + }; +} diff --git a/modules/users/dragneel/user.nix b/modules/users/dragneel/user.nix new file mode 100644 index 0000000..186f3c1 --- /dev/null +++ b/modules/users/dragneel/user.nix @@ -0,0 +1,19 @@ +{ + inputs, + lib, + config, + ... +}: +lib.mkIf config.user.dragneel.enable { + users.users.dragneel = { + isNormalUser = true; + hashedPassword = "$y$j9T$QA39xfvBrwChIi7CBsLgn.$jyWUKiP6QGY4rMtFTcBZgw7s1IJdiaIK6ZUwnU3Wmj7"; + group = "wheel"; + extraGroups = ["wheel" "networkmanager" "audio" "plugdev"]; + openssh.authorizedKeys.keyFiles = [ + inputs.nix-secrets.keys.default + ]; + }; + + home-manager.users.dragneel = ./home.nix; +}