diff --git a/modules/factory/users/user.nix b/modules/factory/users/user.nix new file mode 100644 index 0000000..1d213da --- /dev/null +++ b/modules/factory/users/user.nix @@ -0,0 +1,13 @@ +{ + config.flake.factory.user = username: { + nixos."${username}" = {pkgs, ...}: { + users.users."${username}" = { + isNormalUser = true; + name = "${username}"; + }; + extraGroups = ["wheel"]; + + shell = pkgs.nushell; + }; + }; +} diff --git a/modules/firefox&helix.nix b/modules/firefox&helix.nix deleted file mode 100644 index e5681a0..0000000 --- a/modules/firefox&helix.nix +++ /dev/null @@ -1,9 +0,0 @@ -{inputs, ...}: { - flake.nixosModules.firefoxHelix = {pkgs, ...}: { - programs.firefox.enable = true; - - environment.systemPackages = with pkgs; [ - helix - ]; - }; -} diff --git a/modules/hosts/desktop/boot.nix b/modules/hosts/desktop/boot.nix new file mode 100644 index 0000000..d534ef6 --- /dev/null +++ b/modules/hosts/desktop/boot.nix @@ -0,0 +1,13 @@ +{pkgs, ...}: { + flake.modules.nixos.desktop = { + boot = { + kernelPackages = pkgs.linuxPackages_6_12; + kernelParams = ["nvidia-drm.modeset=1"]; + + loader.grub = { + enable = true; + device = "/dev/disk/by-id/ata-KINGSTON_SKC300S37A60G_50026B7239039148"; + }; + }; + }; +} diff --git a/modules/hosts/desktop/flake-parts.nix b/modules/hosts/desktop/flake-parts.nix new file mode 100644 index 0000000..4e75add --- /dev/null +++ b/modules/hosts/desktop/flake-parts.nix @@ -0,0 +1 @@ +{inputs, ...}: {flake.nixosConfigurations = inputs.self.lib.mkNixos "x86_64-linux" "desktop";} diff --git a/modules/hosts/desktop/hardware.nix b/modules/hosts/desktop/hardware.nix new file mode 100644 index 0000000..5c5726d --- /dev/null +++ b/modules/hosts/desktop/hardware.nix @@ -0,0 +1,19 @@ +{config, ...}: { + flake.modules.nixos.desktop = { + nixpkgs.hostPlatform = "x86_64-linux"; + + hardware = { + graphics = { + enable = true; + enable32Bit = true; + }; + }; + + nvidia = { + modesetting.enable = true; + powerManagement.enable = true; + open = false; + package = config.boot.kernelPackages.nvidiaPackages.production; + }; + }; +} diff --git a/modules/hosts/desktop/users/benDesktop.nix b/modules/hosts/desktop/users/benDesktop.nix new file mode 100644 index 0000000..fe2cad2 --- /dev/null +++ b/modules/hosts/desktop/users/benDesktop.nix @@ -0,0 +1,7 @@ +{self, ...}: { + flake.modules.nixos.desktop = { + imports = [ + self.factory.benDesktop + ]; + }; +} diff --git a/modules/nix/flake-parts/factory.nix b/modules/nix/flake-parts/factory.nix new file mode 100644 index 0000000..29c93f9 --- /dev/null +++ b/modules/nix/flake-parts/factory.nix @@ -0,0 +1,6 @@ +{lib, ...}: { + options.flake.factory = lib.mkOption { + type = lib.types.attrsof lib.types.unspecified; + default = {}; + }; +} diff --git a/modules/nix/flake-parts/lib.nix b/modules/nix/flake-parts/lib.nix new file mode 100644 index 0000000..3708d7c --- /dev/null +++ b/modules/nix/flake-parts/lib.nix @@ -0,0 +1,21 @@ +{ + inputs, + lib, + ... +}: { + options.flake.lib = lib.mkOption { + type = lib.types.attrsOf lib.types.unspecified; + default = {}; + }; + + config.flake.lib = { + mkNixos = system: name: { + ${name} = inputs.nixpkgs.lib.nixosSystem { + modules = [ + inputs.self.modules.nixos.${name} + {nixpkgs.hostPlatform = lib.mkDefault system;} + ]; + }; + }; + }; +} diff --git a/modules/users/benDesktop/benDesktop.nix b/modules/users/benDesktop/benDesktop.nix new file mode 100644 index 0000000..d6afc80 --- /dev/null +++ b/modules/users/benDesktop/benDesktop.nix @@ -0,0 +1,9 @@ +{ + self, + lib, + ... +}: { + flake.modules = lib.mkMerge [ + (self.factory.user "benDesktop") + ]; +}