This commit is contained in:
2025-08-29 15:25:40 +02:00
parent 26440bfeee
commit f3821f0dfa
201 changed files with 2461 additions and 1546 deletions

View File

@@ -2,10 +2,12 @@
config,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.hardware.bluetooth;
in {
in
{
options = {
nixos.hardware.bluetooth.enable = mkEnableOption "Enables bluetooth";
};

View File

@@ -3,8 +3,17 @@
lib,
pkgs,
...
}: let
inherit (lib) mkEnableOption mkOption types mkIf mkMerge flatten concatMap;
}:
let
inherit (lib)
mkEnableOption
mkOption
types
mkIf
mkMerge
flatten
concatMap
;
cfg = config.nixos.hardware.graphics;
@@ -42,13 +51,20 @@
'';
hasVendor = vendor: builtins.elem vendor cfg.vendors;
in {
in
{
options.nixos.hardware.graphics = {
enable = mkEnableOption "Enable general graphics support";
vendors = mkOption {
type = types.listOf (types.enum ["amd" "intel" "nvidia"]);
default = ["amd"];
type = types.listOf (
types.enum [
"amd"
"intel"
"nvidia"
]
);
default = [ "amd" ];
description = "List of GPU vendors to configure support for.";
};
@@ -59,7 +75,12 @@ in {
description = "Use nvidia open driver";
};
package = mkOption {
type = types.enum ["stable" "beta" "production" "latest"];
type = types.enum [
"stable"
"beta"
"production"
"latest"
];
default = "stable";
description = "NVidia driver package to use.";
};
@@ -71,52 +92,57 @@ in {
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = flatten (concatMap (
extraPackages = flatten (
concatMap (
vendor:
if vendor == "amd"
then commonPackages ++ mesaVulkanPackages
else if vendor == "intel"
then
commonPackages
++ mesaVulkanPackages
++ (with pkgs; [
vpl-gpu-rt
intel-media-driver
intel-compute-runtime
intel-vaapi-driver
])
else if vendor == "nvidia"
then
commonPackages
++ (with pkgs; [
nvidiaOffloadScript
intel-media-driver
nvidia-vaapi-driver
vulkan-tools
])
else []
)
cfg.vendors);
if vendor == "amd" then
commonPackages ++ mesaVulkanPackages
else if vendor == "intel" then
commonPackages
++ mesaVulkanPackages
++ (with pkgs; [
vpl-gpu-rt
intel-media-driver
intel-compute-runtime
intel-vaapi-driver
])
else if vendor == "nvidia" then
commonPackages
++ (with pkgs; [
nvidiaOffloadScript
intel-media-driver
nvidia-vaapi-driver
vulkan-tools
])
else
[ ]
) cfg.vendors
);
extraPackages32 = flatten (concatMap (_: commonPackages32) cfg.vendors);
};
environment.systemPackages = flatten (concatMap (
environment.systemPackages = flatten (
concatMap (
vendor:
if vendor == "amd"
then
tools
++ (with pkgs; [
# rocmPackages.rpp
# rocmPackages.clr
])
else if vendor == "intel"
then tools
else if vendor == "nvidia"
then with pkgs; [egl-wayland libGL]
else []
)
cfg.vendors);
if vendor == "amd" then
tools
++ (with pkgs; [
# rocmPackages.rpp
# rocmPackages.clr
])
else if vendor == "intel" then
tools
else if vendor == "nvidia" then
with pkgs;
[
egl-wayland
libGL
]
else
[ ]
) cfg.vendors
);
}
(mkIf (hasVendor "amd") {
@@ -126,13 +152,14 @@ in {
(mkIf (hasVendor "nvidia") {
hardware.nvidia = {
package =
if cfg.nvidia.package == "beta"
then config.boot.kernelPackages.nvidiaPackages.beta
else if cfg.nvidia.package == "latest"
then config.boot.kernelPackages.nvidiaPackages.latest
else if cfg.nvidia.package == "production"
then config.boot.kernelPackages.nvidiaPackages.production
else config.boot.kernelPackages.nvidiaPackages.stable;
if cfg.nvidia.package == "beta" then
config.boot.kernelPackages.nvidiaPackages.beta
else if cfg.nvidia.package == "latest" then
config.boot.kernelPackages.nvidiaPackages.latest
else if cfg.nvidia.package == "production" then
config.boot.kernelPackages.nvidiaPackages.production
else
config.boot.kernelPackages.nvidiaPackages.stable;
modesetting.enable = true;
powerManagement.enable = false;

View File

@@ -2,10 +2,12 @@
config,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.hardware.logitech;
in {
in
{
options = {
nixos.hardware.logitech.enable = mkEnableOption "Enables logitech";
};

View File

@@ -2,29 +2,38 @@
config,
lib,
...
}: let
inherit (lib) mkIf mkEnableOption mkOption types;
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
types
;
cfg = config.nixos.hardware.network;
in {
in
{
options = {
nixos.hardware.network = {
enable = mkEnableOption "Enable the custom networking module";
interfaces = mkOption {
type = types.attrsOf (types.submodule {
options = {
allowedTCPPorts = mkOption {
type = types.listOf types.int;
default = [];
description = "List of allowed TCP ports for this interface.";
type = types.attrsOf (
types.submodule {
options = {
allowedTCPPorts = mkOption {
type = types.listOf types.int;
default = [ ];
description = "List of allowed TCP ports for this interface.";
};
allowedUDPPorts = mkOption {
type = types.listOf types.int;
default = [ ];
description = "List of allowed UDP ports for this interface.";
};
};
allowedUDPPorts = mkOption {
type = types.listOf types.int;
default = [];
description = "List of allowed UDP ports for this interface.";
};
};
});
default = {};
}
);
default = { };
description = "Network interface configurations.";
};
extraHosts = mkOption {
@@ -38,7 +47,7 @@ in {
config = mkIf cfg.enable {
assertions = [
{
assertion = cfg.interfaces != {} -> config.networking.networkmanager.enable;
assertion = cfg.interfaces != { } -> config.networking.networkmanager.enable;
message = "Network interfaces configured but NetworkManager is not enabled";
}
];
@@ -54,8 +63,8 @@ in {
};
systemd.services.NetworkManager = {
wants = ["nftables.service"];
after = ["nftables.service"];
wants = [ "nftables.service" ];
after = [ "nftables.service" ];
};
};
}