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

@@ -3,12 +3,14 @@
lib,
config,
...
}: let
}:
let
inherit (lib) mkOption types;
cfg = config.nixos.boot.kernel;
hasHardware = hw: builtins.elem hw cfg.hardware;
in {
in
{
imports = [
./security.nix
];
@@ -16,26 +18,36 @@ in {
options = {
nixos.boot.kernel = {
variant = mkOption {
type = types.enum ["stable" "latest" "cachyos"];
type = types.enum [
"stable"
"latest"
"cachyos"
];
default = "latest";
description = "Kernel variant to use.";
};
hardware = mkOption {
type = types.listOf (types.enum ["amd" "intel" "nvidia"]);
default = [];
type = types.listOf (
types.enum [
"amd"
"intel"
"nvidia"
]
);
default = [ ];
description = "List of hardware types (e.g. GPU and CPU vendors) to configure kernel settings for.";
};
extraKernelParams = mkOption {
type = types.listOf types.str;
default = [];
default = [ ];
description = "Additional kernel parameters.";
};
extraBlacklistedModules = mkOption {
type = types.listOf types.str;
default = [];
default = [ ];
description = "Additional kernel modules to blacklist.";
};
};
@@ -45,52 +57,32 @@ in {
boot = {
consoleLogLevel = 3;
kernelPackages = let
variant = cfg.variant or "latest";
in
if variant == "stable"
then pkgs.linuxPackages
else if variant == "latest"
then pkgs.linuxPackages_latest
else if variant == "cachyos"
then pkgs.linuxPackages_cachyos
else throw "Unknown kernel variant: ${variant}";
kernelPackages =
let
variant = cfg.variant or "latest";
in
if variant == "stable" then
pkgs.linuxPackages
else if variant == "latest" then
pkgs.linuxPackages_latest
else if variant == "cachyos" then
pkgs.linuxPackages_cachyos
else
throw "Unknown kernel variant: ${variant}";
kernelParams =
["quiet" "splash"]
++ (
if hasHardware "amd"
then ["amd_pstate=active"]
else []
)
++ (
if hasHardware "intel"
then []
else []
)
++ (
if hasHardware "nvidia"
then []
else []
)
++ cfg.extraKernelParams;
kernelParams = [
"quiet"
"splash"
]
++ (if hasHardware "amd" then [ "amd_pstate=active" ] else [ ])
++ (if hasHardware "intel" then [ ] else [ ])
++ (if hasHardware "nvidia" then [ ] else [ ])
++ cfg.extraKernelParams;
blacklistedKernelModules =
(
if hasHardware "amd"
then []
else []
)
++ (
if hasHardware "intel"
then []
else []
)
++ (
if hasHardware "nvidia"
then ["nouveau"]
else []
)
(if hasHardware "amd" then [ ] else [ ])
++ (if hasHardware "intel" then [ ] else [ ])
++ (if hasHardware "nvidia" then [ "nouveau" ] else [ ])
++ cfg.extraBlacklistedModules;
};
};

View File

@@ -41,7 +41,7 @@
"net.core.default_qdisc" = "cake";
};
boot.kernelModules = ["tcp_bbr"];
boot.kernelModules = [ "tcp_bbr" ];
security = {
# pam.services.hyprlock.text = "auth include login";

View File

@@ -4,10 +4,17 @@
config,
inputs,
...
}: let
inherit (lib) mkIf mkEnableOption mkMerge mkForce;
}:
let
inherit (lib)
mkIf
mkEnableOption
mkMerge
mkForce
;
cfg = config.nixos.boot.loader;
in {
in
{
options = {
nixos.boot.loader = {
default = {
@@ -54,7 +61,7 @@ in {
loader.systemd-boot.enable = mkForce false;
};
environment.systemPackages = [pkgs.sbctl];
environment.systemPackages = [ pkgs.sbctl ];
})
];
}

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" ];
};
};
}

View File

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

View File

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

View File

@@ -3,10 +3,12 @@
config,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.beekeeper;
in {
in
{
options = {
nixos.programs.beekeeper.enable = mkEnableOption "Enables Beekeeper Studio";
};

View File

@@ -3,10 +3,12 @@
config,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption mkOption;
cfg = config.nixos.programs.blender;
in {
in
{
options = {
nixos.programs.blender = {
enable = mkEnableOption "Enables Blender";
@@ -19,11 +21,7 @@ in {
};
config = mkIf cfg.enable {
environment.systemPackages = [
(
if cfg.hip.enable
then pkgs.blender-hip
else pkgs.blender
)
(if cfg.hip.enable then pkgs.blender-hip else pkgs.blender)
];
};
}

View File

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

View File

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

View File

@@ -4,11 +4,13 @@
pkgs,
inputs,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption mkOption;
cfg = config.nixos.programs.gamemode;
pipewireLowLatencyModule = inputs.nix-gaming.nixosModules.pipewireLowLatency;
in {
in
{
imports = [
pipewireLowLatencyModule
];

View File

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

View File

@@ -3,10 +3,12 @@
pkgs,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.gimp;
in {
in
{
options = {
nixos.programs.gimp.enable = mkEnableOption "Enables gimp";
};

View File

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

View File

@@ -2,12 +2,15 @@
lib,
config,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.hyprland;
in {
in
{
options = {
nixos.programs.hyprland.appearance.enable = mkEnableOption "Enables appearance settings in Hyprland";
nixos.programs.hyprland.appearance.enable =
mkEnableOption "Enables appearance settings in Hyprland";
};
config = mkIf cfg.appearance.enable {
programs.hyprland.settings = {

View File

@@ -4,10 +4,17 @@
inputs,
pkgs,
...
}: let
inherit (lib) mkIf mkEnableOption mkOption mkDefault;
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
mkDefault
;
cfg = config.nixos.programs.hyprland;
in {
in
{
imports = [
inputs.hyprland.nixosModules.default
./appearance.nix

View File

@@ -2,11 +2,13 @@
lib,
config,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption mkMerge;
cfg = config.nixos.programs.hyprland;
host = config.networking.hostName;
in {
in
{
options = {
nixos.programs.hyprland.inputs.enable = mkEnableOption "Enables input settings in Hyprland";
};

View File

@@ -3,17 +3,22 @@
config,
pkgs,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption mkMerge;
cfg = config.nixos.programs.hyprland;
host = config.networking.hostName;
toggle = program: let
prog = builtins.substring 0 14 program;
in "pkill ${prog} || uwsm app -- ${program}";
toggle =
program:
let
prog = builtins.substring 0 14 program;
in
"pkill ${prog} || uwsm app -- ${program}";
runOnce = program: "pgrep ${program} || uwsm app -- ${program}";
in {
in
{
options = {
nixos.programs.hyprland.keybinds.enable = mkEnableOption "Enables keybind settings in Hyprland";
};

View File

@@ -2,11 +2,13 @@
lib,
config,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption mkMerge;
host = config.networking.hostName;
cfg = config.nixos.programs.hyprland.rules;
in {
in
{
options = {
nixos.programs.hyprland.rules.enable = mkEnableOption "Enables window rule settings in Hyprland";
};
@@ -14,37 +16,30 @@ in {
config = mkIf cfg.enable (mkMerge [
{
programs.hyprland.settings = {
monitor =
map (
m: let
resolution =
if m.width != null && m.height != null
then "${toString m.width}x${toString m.height}@${toString m.refreshRate}"
else "preferred";
monitor = map (
m:
let
resolution =
if m.width != null && m.height != null then
"${toString m.width}x${toString m.height}@${toString m.refreshRate}"
else
"preferred";
position = m.position or "auto";
scale = m.scale;
position = m.position or "auto";
scale = m.scale;
transformStr =
if m.transform != 0
then ",transform,${toString m.transform}"
else "";
transformStr = if m.transform != 0 then ",transform,${toString m.transform}" else "";
bitdepthStr =
if m.bitDepth != null
then ",bitdepth,${toString m.bitDepth}"
else "";
in "${m.name},${
if m.enable
then "${resolution},${position},${scale}${transformStr}${bitdepthStr}"
else "disable"
}"
)
config.settings.monitors;
bitdepthStr = if m.bitDepth != null then ",bitdepth,${toString m.bitDepth}" else "";
in
"${m.name},${
if m.enable then "${resolution},${position},${scale}${transformStr}${bitdepthStr}" else "disable"
}"
) config.settings.monitors;
workspace = map (
m: "${m.workspace},monitor:${m.name}"
) (lib.filter (m: m.enable && m.workspace != null) config.settings.monitors);
workspace = map (m: "${m.workspace},monitor:${m.name}") (
lib.filter (m: m.enable && m.workspace != null) config.settings.monitors
);
windowrule = [
"size 843 650, initialTitle:^(floatcal)$"

View File

@@ -2,7 +2,8 @@
lib,
config,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption mkMerge;
cfg = config.nixos.programs.hyprland;
host = config.networking.hostName;
@@ -12,7 +13,8 @@
"uwsm app -- keepassxc"
"uwsm app -- nm-applet --indicator"
];
in {
in
{
options = {
nixos.programs.hyprland.startup.enable = mkEnableOption "Enables startup settings in Hyprland";
};
@@ -28,30 +30,27 @@ in {
}
(mkIf (host == "kima") {
programs.hyprland.settings.exec-once =
[
"uwsm app -- mullvad-vpn"
"uwsm app -- solaar -w hide -b regular"
"uwsm app -- blueman-applet"
]
++ commonExecOnce;
programs.hyprland.settings.exec-once = [
"uwsm app -- mullvad-vpn"
"uwsm app -- solaar -w hide -b regular"
"uwsm app -- blueman-applet"
]
++ commonExecOnce;
})
(mkIf (host == "bunk") {
programs.hyprland.settings.exec-once =
[
"uwsm app -- blueman-applet"
]
++ commonExecOnce;
programs.hyprland.settings.exec-once = [
"uwsm app -- blueman-applet"
]
++ commonExecOnce;
})
(mkIf (host == "toothpc") {
programs.hyprland.settings.exec-once =
[
"uwsm app -- mullvad-vpn"
"uwsm app -- solaar -w hide -b regular"
]
++ commonExecOnce;
programs.hyprland.settings.exec-once = [
"uwsm app -- mullvad-vpn"
"uwsm app -- solaar -w hide -b regular"
]
++ commonExecOnce;
})
]);
}

View File

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

View File

@@ -3,10 +3,12 @@
lib,
pkgs,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.lact;
in {
in
{
options = {
nixos.programs.lact.enable = mkEnableOption "Enables lact for GPU monitoring and tweaking";
};
@@ -18,8 +20,8 @@ in {
systemd.services.lact = {
enable = cfg.enable;
description = "GPU Control Daemon";
after = ["multi-user.target"];
wantedBy = ["multi-user.target"];
after = [ "multi-user.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.lact}/bin/lact daemon";
};

View File

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

View File

@@ -3,14 +3,16 @@
lib,
pkgs,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.microfetch;
in {
in
{
options = {
nixos.programs.microfetch.enable = mkEnableOption "Enables microfetch";
};
config = mkIf cfg.enable {
environment.systemPackages = [pkgs.microfetch];
environment.systemPackages = [ pkgs.microfetch ];
};
}

View File

@@ -3,10 +3,12 @@
config,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.mysql-workbench;
in {
in
{
options = {
nixos.programs.mysql-workbench.enable = mkEnableOption "Enables MySQL Workbench";
};

View File

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

View File

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

View File

@@ -3,10 +3,12 @@
lib,
pkgs,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.obsidian;
in {
in
{
options = {
nixos.programs.obsidian.enable = mkEnableOption "Enables obsidian";
};

View File

@@ -3,10 +3,17 @@
config,
lib,
...
}: let
inherit (lib) mkIf mkOption mkMerge types;
}:
let
inherit (lib)
mkIf
mkOption
mkMerge
types
;
cfg = config.nixos.programs.pkgs;
in {
in
{
options = {
nixos.programs.pkgs = {
enable = mkOption {
@@ -44,7 +51,8 @@ in {
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs;
environment.systemPackages =
with pkgs;
mkMerge [
[
pciutils

View File

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

View File

@@ -3,10 +3,12 @@
lib,
pkgs,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.thunar;
in {
in
{
options = {
nixos.programs.thunar.enable = mkEnableOption "Enables thunar file manager";
};

View File

@@ -3,10 +3,12 @@
config,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.yubikey;
in {
in
{
options = {
nixos.programs.yubikey.enable = mkEnableOption "Enables yubikey utilities";
};

View File

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

View File

@@ -5,10 +5,17 @@
pkgs,
self,
...
}: let
inherit (lib) mkIf mkEnableOption mkOption mkMerge;
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
mkMerge
;
cfg = config.nixos.services.agenix;
in {
in
{
options = {
nixos.services.agenix = {
enable = mkEnableOption "Enables agenix system environment";

View File

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

View File

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

View File

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

View File

@@ -3,10 +3,12 @@
lib,
pkgs,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.services.flatpak;
in {
in
{
options = {
nixos.services.flatpak.enable = mkEnableOption "Enables flatpaks and gnome software";
};
@@ -17,9 +19,9 @@ in {
];
systemd.services.flatpak-repo = {
description = "Add flathub repository";
after = ["network-online.target"];
wants = ["network-online.target"];
path = [pkgs.flatpak];
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
path = [ pkgs.flatpak ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
@@ -27,7 +29,7 @@ in {
Restart = "on-failure";
RestartSec = "5s";
};
wantedBy = ["multi-user.target"];
wantedBy = [ "multi-user.target" ];
};
};
}

View File

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

View File

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

View File

@@ -2,10 +2,17 @@
config,
lib,
...
}: let
inherit (lib) mkIf mkEnableOption mkOption types;
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
types
;
cfg = config.nixos.services.greetd;
in {
in
{
options = {
nixos.services.greetd = {
enable = mkEnableOption {
@@ -22,18 +29,20 @@ in {
};
config = mkIf cfg.enable {
services.greetd = let
session = {
command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
user = cfg.user;
services.greetd =
let
session = {
command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
user = cfg.user;
};
in
{
enable = true;
settings = {
terminal.vt = 1;
default_session = session;
initial_session = session;
};
};
in {
enable = true;
settings = {
terminal.vt = 1;
default_session = session;
initial_session = session;
};
};
};
}

View File

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

View File

@@ -3,10 +3,12 @@
lib,
pkgs,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.services.kanata;
in {
in
{
options = {
nixos.services.kanata.enable = mkEnableOption "Enables kanata keyboard remapping";
};

View File

@@ -3,10 +3,12 @@
config,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.services.locate;
in {
in
{
options = {
nixos.services.locate.enable = mkEnableOption "Enables plocate";
};

View File

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

View File

@@ -2,10 +2,17 @@
config,
lib,
...
}: let
inherit (lib) mkIf mkEnableOption mkOption types;
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
types
;
cfg = config.nixos.services.nfs;
in {
in
{
options.nixos.services.nfs = {
enable = mkEnableOption "Enable NFS support";
@@ -37,18 +44,28 @@ in {
};
options = mkOption {
type = types.listOf types.str;
default = ["x-systemd.automount"];
default = [ "x-systemd.automount" ];
description = "Mount options";
};
};
};
config = mkIf cfg.enable {
boot.supportedFilesystems = ["nfs"];
boot.supportedFilesystems = [ "nfs" ];
services.rpcbind.enable = true;
networking.firewall = {
allowedTCPPorts = [2049 4000 4001 4002];
allowedUDPPorts = [2049 4000 4001 4002];
allowedTCPPorts = [
2049
4000
4001
4002
];
allowedUDPPorts = [
2049
4000
4001
4002
];
};
services.nfs.server = mkIf cfg.server.enable {

View File

@@ -3,10 +3,12 @@
config,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.services.nix-ld;
in {
in
{
options = {
nixos.services.nix-ld.enable = mkEnableOption "Enables nix-ld";
};

View File

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

View File

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

View File

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

View File

@@ -3,10 +3,12 @@
config,
lib,
...
}: let
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.services.polkit;
in {
in
{
options = {
nixos.services.polkit.enable = mkEnableOption "Enables polkit";
};
@@ -21,9 +23,9 @@ in {
TimeoutStopSec = 10;
};
wantedBy = ["graphical-session.target"];
wants = ["graphical-session.target"];
after = ["graphical-session.target"];
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
};
};
}

View File

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

View File

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

View File

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

View File

@@ -3,15 +3,26 @@
lib,
pkgs,
...
}: let
inherit (lib) mkIf mkEnableOption mkOption types;
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
types
;
cfg = config.nixos.services.scx;
in {
in
{
options = {
nixos.services.scx = {
enable = mkEnableOption "Enables scx scheduler";
scheduler = mkOption {
type = types.enum ["scx_lavd" "scx_rusty" "scx_bpfland"];
type = types.enum [
"scx_lavd"
"scx_rusty"
"scx_bpfland"
];
description = "Selects the scheduler for scx";
default = "scx_lavd";
};
@@ -28,7 +39,7 @@ in {
];
systemd.services.scx = {
enable = true;
wantedBy = ["multi-user.target"];
wantedBy = [ "multi-user.target" ];
unitConfig = {
Description = "Start scx_scheduler";
ConditionPathIsDirectory = "/sys/kernel/sched_ext";

View File

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

View File

@@ -2,16 +2,28 @@
config,
lib,
...
}: let
inherit (lib) mkIf mkOption types mkEnableOption;
}:
let
inherit (lib)
mkIf
mkOption
types
mkEnableOption
;
cfg = config.nixos.services.xserver;
in {
in
{
options = {
nixos.services.xserver = {
enable = mkEnableOption "Enables xserver";
videoDrivers = mkOption {
type = types.listOf (types.enum ["amdgpu" "nvidia"]);
default = ["amdgpu"];
type = types.listOf (
types.enum [
"amdgpu"
"nvidia"
]
);
default = [ "amdgpu" ];
description = "The names of the video drivers the configuration supports";
};
xkbLayout = mkOption {

View File

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

View File

@@ -4,10 +4,12 @@
config,
inputs,
...
}: let
}:
let
inherit (lib) mkIf mkOption types;
cfg = config.nixos.system.devpkgs;
in {
in
{
options = {
nixos.system.devpkgs = {
enable = mkOption {

View File

@@ -4,10 +4,12 @@
config,
inputs,
...
}: let
}:
let
inherit (lib) mkIf mkOption types;
cfg = config.nixos.system.fonts;
in {
in
{
options = {
nixos.system.fonts = {
enable = mkOption {
@@ -49,10 +51,10 @@ in {
];
fontconfig.defaultFonts = {
serif = ["Tinos"];
sansSerif = ["Inter"];
monospace = ["Input Mono Narrow Light"];
emoji = ["Noto Color Emoji"];
serif = [ "Tinos" ];
sansSerif = [ "Inter" ];
monospace = [ "Input Mono Narrow Light" ];
emoji = [ "Noto Color Emoji" ];
};
};
};

View File

@@ -2,8 +2,14 @@
config,
lib,
...
}: let
inherit (lib) mkIf mkOption mkDefault types;
}:
let
inherit (lib)
mkIf
mkOption
mkDefault
types
;
cfg = config.nixos.system.locale;
defaultCategories = [
"LC_ADDRESS"
@@ -16,7 +22,8 @@
"LC_TELEPHONE"
"LC_TIME"
];
in {
in
{
options = {
nixos.system.locale = {
enable = mkOption {
@@ -58,7 +65,7 @@ in {
time.timeZone = mkDefault cfg.timeZone;
i18n.defaultLocale = mkDefault cfg.defaultLocale;
i18n.extraLocaleSettings = mkIf (cfg.extraLocale != null) (
lib.foldl' (attrs: lc: attrs // {"${lc}" = cfg.extraLocale;}) {} cfg.categories
lib.foldl' (attrs: lc: attrs // { "${lc}" = cfg.extraLocale; }) { } cfg.categories
);
};
}

View File

@@ -3,10 +3,17 @@
config,
pkgs,
...
}: let
inherit (lib) mkIf mkOption mkEnableOption types;
}:
let
inherit (lib)
mkIf
mkOption
mkEnableOption
types
;
cfg = config.nixos.system.xdg;
in {
in
{
options = {
nixos.system.xdg = {
enable = mkEnableOption "Enable XDG portal.";
@@ -23,10 +30,13 @@ in {
enable = true;
xdgOpenUsePortal = cfg.xdgOpenUsePortal;
config = {
common.default = ["gtk"];
hyprland.default = ["gtk" "hyprland"];
common.default = [ "gtk" ];
hyprland.default = [
"gtk"
"hyprland"
];
};
extraPortals = [pkgs.xdg-desktop-portal-gtk];
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
};
}