summaryrefslogtreecommitdiff
path: root/modules/nixos
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos')
-rw-r--r--modules/nixos/archetypes/personal.nix10
-rw-r--r--modules/nixos/archetypes/server.nix10
-rw-r--r--modules/nixos/base/default.nix3
-rw-r--r--modules/nixos/base/documentation.nix11
-rw-r--r--modules/nixos/base/networking.nix14
-rw-r--r--modules/nixos/base/nix.nix15
-rw-r--r--modules/nixos/base/programs.nix10
-rw-r--r--modules/nixos/base/security.nix14
-rw-r--r--modules/nixos/base/users.nix22
-rw-r--r--modules/nixos/desktop/audio.nix14
-rw-r--r--modules/nixos/desktop/budgie/default.nix6
-rw-r--r--modules/nixos/desktop/default.nix14
-rw-r--r--modules/nixos/desktop/fonts.nix26
-rw-r--r--modules/nixos/desktop/gnome/default.nix6
-rw-r--r--modules/nixos/desktop/plasma/default.nix6
-rw-r--r--modules/nixos/desktop/programs.nix15
-rw-r--r--modules/nixos/server/default.nix10
-rw-r--r--modules/nixos/server/host-user.nix20
-rw-r--r--modules/nixos/server/mixins/acme.nix18
-rw-r--r--modules/nixos/server/mixins/cloudflared.nix18
-rw-r--r--modules/nixos/server/mixins/hercules.nix46
-rw-r--r--modules/nixos/server/mixins/nginx.nix10
-rw-r--r--modules/nixos/server/mixins/promtail.nix14
-rw-r--r--modules/nixos/traits/24.05-compat.nix16
-rw-r--r--modules/nixos/traits/auto-upgrade.nix22
-rw-r--r--modules/nixos/traits/containers.nix14
-rw-r--r--modules/nixos/traits/home-manager.nix5
-rw-r--r--modules/nixos/traits/locale.nix14
-rw-r--r--modules/nixos/traits/nvidia.nix64
-rw-r--r--modules/nixos/traits/secrets.nix10
-rw-r--r--modules/nixos/traits/tailscale.nix20
-rw-r--r--modules/nixos/traits/users/default.nix6
-rw-r--r--modules/nixos/traits/users/seth.nix14
-rw-r--r--modules/nixos/traits/zram.nix10
34 files changed, 280 insertions, 247 deletions
diff --git a/modules/nixos/archetypes/personal.nix b/modules/nixos/archetypes/personal.nix
index 68aada9..e516fb1 100644
--- a/modules/nixos/archetypes/personal.nix
+++ b/modules/nixos/archetypes/personal.nix
@@ -1,10 +1,8 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.archetypes.personal;
-in {
+in
+{
options.archetypes = {
personal.enable = lib.mkEnableOption "personal archetype";
};
diff --git a/modules/nixos/archetypes/server.nix b/modules/nixos/archetypes/server.nix
index cbac329..165725d 100644
--- a/modules/nixos/archetypes/server.nix
+++ b/modules/nixos/archetypes/server.nix
@@ -1,10 +1,8 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.archetypes.server;
-in {
+in
+{
options.archetypes = {
server.enable = lib.mkEnableOption "server archetype";
};
diff --git a/modules/nixos/base/default.nix b/modules/nixos/base/default.nix
index 421f733..d80d573 100644
--- a/modules/nixos/base/default.nix
+++ b/modules/nixos/base/default.nix
@@ -3,7 +3,8 @@
lib,
pkgs,
...
-}: {
+}:
+{
imports = [
../../shared
./documentation.nix
diff --git a/modules/nixos/base/documentation.nix b/modules/nixos/base/documentation.nix
index 5792c80..986c6ee 100644
--- a/modules/nixos/base/documentation.nix
+++ b/modules/nixos/base/documentation.nix
@@ -3,13 +3,18 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.base.documentation;
enable = config.base.enable && cfg.enable;
-in {
+in
+{
config = lib.mkIf enable {
documentation.nixos.enable = false;
- environment.systemPackages = with pkgs; [man-pages man-pages-posix];
+ environment.systemPackages = with pkgs; [
+ man-pages
+ man-pages-posix
+ ];
};
}
diff --git a/modules/nixos/base/networking.nix b/modules/nixos/base/networking.nix
index 895127c..49feca5 100644
--- a/modules/nixos/base/networking.nix
+++ b/modules/nixos/base/networking.nix
@@ -1,13 +1,13 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.base.networking;
enable = config.base.enable && cfg.enable;
-in {
+in
+{
options.base.networking = {
- enable = lib.mkEnableOption "base network settings" // {default = true;};
+ enable = lib.mkEnableOption "base network settings" // {
+ default = true;
+ };
};
config = lib.mkIf enable {
diff --git a/modules/nixos/base/nix.nix b/modules/nixos/base/nix.nix
index 8429346..6c49312 100644
--- a/modules/nixos/base/nix.nix
+++ b/modules/nixos/base/nix.nix
@@ -1,16 +1,17 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.base.nixSettings;
enable = config.base.enable && cfg.enable;
-in {
+in
+{
config = lib.mkIf enable {
nix = {
channel.enable = lib.mkDefault false;
gc.dates = lib.mkDefault "weekly";
- settings.trusted-users = ["root" "@wheel"];
+ settings.trusted-users = [
+ "root"
+ "@wheel"
+ ];
};
};
}
diff --git a/modules/nixos/base/programs.nix b/modules/nixos/base/programs.nix
index 7d1a15b..def710c 100644
--- a/modules/nixos/base/programs.nix
+++ b/modules/nixos/base/programs.nix
@@ -1,11 +1,9 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.base.defaultPrograms;
enable = config.base.enable && cfg.enable;
-in {
+in
+{
config = lib.mkIf enable {
programs = {
git.enable = true;
diff --git a/modules/nixos/base/security.nix b/modules/nixos/base/security.nix
index 4401f81..c3d606f 100644
--- a/modules/nixos/base/security.nix
+++ b/modules/nixos/base/security.nix
@@ -1,13 +1,13 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.base.security;
enable = config.base.enable && cfg.enable;
-in {
+in
+{
options.base.security = {
- enable = lib.mkEnableOption "base security settings" // {default = true;};
+ enable = lib.mkEnableOption "base security settings" // {
+ default = true;
+ };
};
config = lib.mkIf enable {
diff --git a/modules/nixos/base/users.nix b/modules/nixos/base/users.nix
index 507a82a..b026f73 100644
--- a/modules/nixos/base/users.nix
+++ b/modules/nixos/base/users.nix
@@ -4,19 +4,23 @@
pkgs,
secretsDir,
...
-}: let
+}:
+let
cfg = config.base.users;
-in {
+in
+{
options.base.users = {
- enable = lib.mkEnableOption "base user configurations" // {default = true;};
+ enable = lib.mkEnableOption "base user configurations" // {
+ default = true;
+ };
defaultRoot = {
- enable = lib.mkEnableOption "default root user configuration" // {default = false;};
- manageSecrets =
- lib.mkEnableOption "automatic secrets management"
- // {
- default = config.traits.secrets.enable;
- };
+ enable = lib.mkEnableOption "default root user configuration" // {
+ default = false;
+ };
+ manageSecrets = lib.mkEnableOption "automatic secrets management" // {
+ default = config.traits.secrets.enable;
+ };
};
};
diff --git a/modules/nixos/desktop/audio.nix b/modules/nixos/desktop/audio.nix
index 1e47ab2..8e0c069 100644
--- a/modules/nixos/desktop/audio.nix
+++ b/modules/nixos/desktop/audio.nix
@@ -1,13 +1,13 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.desktop.audio;
enable = config.desktop.enable && cfg.enable;
-in {
+in
+{
options.desktop.audio = {
- enable = lib.mkEnableOption "desktop audio configuration" // {default = true;};
+ enable = lib.mkEnableOption "desktop audio configuration" // {
+ default = true;
+ };
};
config = lib.mkIf enable {
diff --git a/modules/nixos/desktop/budgie/default.nix b/modules/nixos/desktop/budgie/default.nix
index dbd3715..dce24b4 100644
--- a/modules/nixos/desktop/budgie/default.nix
+++ b/modules/nixos/desktop/budgie/default.nix
@@ -3,9 +3,11 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.desktop.budgie;
-in {
+in
+{
options.desktop.budgie.enable = lib.mkEnableOption "budgie desktop";
config = lib.mkIf cfg.enable {
diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix
index 17392c4..83a4fba 100644
--- a/modules/nixos/desktop/default.nix
+++ b/modules/nixos/desktop/default.nix
@@ -1,10 +1,8 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.desktop;
-in {
+in
+{
options.desktop = {
enable = lib.mkEnableOption "desktop settings";
};
@@ -19,7 +17,5 @@ in {
./plasma
];
- config = lib.mkIf cfg.enable {
- services.xserver.enable = true;
- };
+ config = lib.mkIf cfg.enable { services.xserver.enable = true; };
}
diff --git a/modules/nixos/desktop/fonts.nix b/modules/nixos/desktop/fonts.nix
index 212f88c..f6df64c 100644
--- a/modules/nixos/desktop/fonts.nix
+++ b/modules/nixos/desktop/fonts.nix
@@ -3,12 +3,16 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.desktop.fonts;
enable = config.desktop.enable && cfg.enable;
-in {
+in
+{
options.desktop.fonts = {
- enable = lib.mkEnableOption "desktop fonts" // {default = true;};
+ enable = lib.mkEnableOption "desktop fonts" // {
+ default = true;
+ };
};
config = lib.mkIf enable {
@@ -16,7 +20,13 @@ in {
enableDefaultPackages = true;
packages = with pkgs; [
- (nerdfonts.override {fonts = ["FiraCode" "Hack" "Noto"];})
+ (nerdfonts.override {
+ fonts = [
+ "FiraCode"
+ "Hack"
+ "Noto"
+ ];
+ })
noto-fonts
noto-fonts-extra
noto-fonts-color-emoji
@@ -27,10 +37,10 @@ in {
enable = true;
cache32Bit = lib.mkDefault true;
defaultFonts = lib.mkDefault {
- serif = ["Noto Serif"];
- sansSerif = ["Noto Sans"];
- emoji = ["Noto Color Emoji"];
- monospace = ["Noto Sans Mono"];
+ serif = [ "Noto Serif" ];
+ sansSerif = [ "Noto Sans" ];
+ emoji = [ "Noto Color Emoji" ];
+ monospace = [ "Noto Sans Mono" ];
};
};
};
diff --git a/modules/nixos/desktop/gnome/default.nix b/modules/nixos/desktop/gnome/default.nix
index 8822bd4..1763e6b 100644
--- a/modules/nixos/desktop/gnome/default.nix
+++ b/modules/nixos/desktop/gnome/default.nix
@@ -3,9 +3,11 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.desktop.gnome;
-in {
+in
+{
options.desktop.gnome.enable = lib.mkEnableOption "GNOME desktop";
config = lib.mkIf cfg.enable {
diff --git a/modules/nixos/desktop/plasma/default.nix b/modules/nixos/desktop/plasma/default.nix
index b6e06da..7c43907 100644
--- a/modules/nixos/desktop/plasma/default.nix
+++ b/modules/nixos/desktop/plasma/default.nix
@@ -4,9 +4,11 @@
pkgs,
inputs,
...
-}: let
+}:
+let
cfg = config.desktop.plasma;
-in {
+in
+{
options.desktop.plasma.enable = lib.mkEnableOption "Plasma desktop";
config = lib.mkIf cfg.enable {
diff --git a/modules/nixos/desktop/programs.nix b/modules/nixos/desktop/programs.nix
index 94bde49..15ddbcc 100644
--- a/modules/nixos/desktop/programs.nix
+++ b/modules/nixos/desktop/programs.nix
@@ -3,18 +3,25 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.desktop.defaultPrograms;
enable = config.desktop.enable && cfg.enable;
-in {
+in
+{
options.desktop.defaultPrograms = {
- enable = lib.mkEnableOption "default desktop programs" // {default = true;};
+ enable = lib.mkEnableOption "default desktop programs" // {
+ default = true;
+ };
};
config = lib.mkIf enable {
environment = {
noXlibs = lib.mkForce false;
- systemPackages = with pkgs; [wl-clipboard xclip];
+ systemPackages = with pkgs; [
+ wl-clipboard
+ xclip
+ ];
};
programs = {
diff --git a/modules/nixos/server/default.nix b/modules/nixos/server/default.nix
index 735a30f..366abb3 100644
--- a/modules/nixos/server/default.nix
+++ b/modules/nixos/server/default.nix
@@ -4,9 +4,11 @@
pkgs,
inputs,
...
-}: let
+}:
+let
cfg = config.server;
-in {
+in
+{
options.server = {
enable = lib.mkEnableOption "server settings";
};
@@ -26,7 +28,7 @@ in {
man.enable = false;
};
- environment.defaultPackages = lib.mkForce [];
+ environment.defaultPackages = lib.mkForce [ ];
nix = {
gc = {
@@ -34,7 +36,7 @@ in {
options = "-d --delete-older-than 2d";
};
- settings.allowed-users = [config.networking.hostName];
+ settings.allowed-users = [ config.networking.hostName ];
};
};
}
diff --git a/modules/nixos/server/host-user.nix b/modules/nixos/server/host-user.nix
index 5aa1ce5..8b76e9d 100644
--- a/modules/nixos/server/host-user.nix
+++ b/modules/nixos/server/host-user.nix
@@ -3,18 +3,20 @@
lib,
secretsDir,
...
-}: let
+}:
+let
cfg = config.server.hostUser;
inherit (config.networking) hostName;
-in {
+in
+{
options.server.hostUser = {
- enable = lib.mkEnableOption "${hostName} user configuration" // {default = config.server.enable;};
+ enable = lib.mkEnableOption "${hostName} user configuration" // {
+ default = config.server.enable;
+ };
- manageSecrets =
- lib.mkEnableOption "automatic secrets management"
- // {
- default = config.traits.secrets.enable;
- };
+ manageSecrets = lib.mkEnableOption "automatic secrets management" // {
+ default = config.traits.secrets.enable;
+ };
};
config = lib.mkIf cfg.enable (
@@ -22,7 +24,7 @@ in {
{
users.users.${hostName} = {
isNormalUser = true;
- extraGroups = ["wheel"];
+ extraGroups = [ "wheel" ];
};
}
diff --git a/modules/nixos/server/mixins/acme.nix b/modules/nixos/server/mixins/acme.nix
index 0e4a6d6..e809ad4 100644
--- a/modules/nixos/server/mixins/acme.nix
+++ b/modules/nixos/server/mixins/acme.nix
@@ -3,19 +3,21 @@
lib,
secretsDir,
...
-}: let
+}:
+let
cfg = config.server.mixins.acme;
-in {
+in
+{
options.server.mixins.acme = {
enable = lib.mkEnableOption "ACME mixin";
- manageSecrets =
- lib.mkEnableOption "automatic secrets management"
- // {
- default = config.traits.secrets.enable;
- };
+ manageSecrets = lib.mkEnableOption "automatic secrets management" // {
+ default = config.traits.secrets.enable;
+ };
- useDns = lib.mkEnableOption "the usage of Cloudflare to obtain certs" // {default = true;};
+ useDns = lib.mkEnableOption "the usage of Cloudflare to obtain certs" // {
+ default = true;
+ };
};
config = lib.mkIf cfg.enable (
diff --git a/modules/nixos/server/mixins/cloudflared.nix b/modules/nixos/server/mixins/cloudflared.nix
index a5afb62..f781150 100644
--- a/modules/nixos/server/mixins/cloudflared.nix
+++ b/modules/nixos/server/mixins/cloudflared.nix
@@ -3,10 +3,12 @@
lib,
secretsDir,
...
-}: let
+}:
+let
cfg = config.server.mixins.cloudflared;
inherit (config.services) nginx;
-in {
+in
+{
options.server.mixins.cloudflared = {
enable = lib.mkEnableOption "cloudflared mixin";
tunnelName = lib.mkOption {
@@ -18,11 +20,9 @@ in {
'';
};
- manageSecrets =
- lib.mkEnableOption "automatic secrets management"
- // {
- default = config.traits.secrets.enable;
- };
+ manageSecrets = lib.mkEnableOption "automatic secrets management" // {
+ default = config.traits.secrets.enable;
+ };
};
config = lib.mkIf cfg.enable (
@@ -33,7 +33,9 @@ in {
tunnels.${cfg.tunnelName} = {
default = "http_status:404";
- ingress = lib.mapAttrs (_: _: {service = "http://localhost:${toString nginx.defaultHTTPListenPort}";}) nginx.virtualHosts;
+ ingress = lib.mapAttrs (_: _: {
+ service = "http://localhost:${toString nginx.defaultHTTPListenPort}";
+ }) nginx.virtualHosts;
};
};
}
diff --git a/modules/nixos/server/mixins/hercules.nix b/modules/nixos/server/mixins/hercules.nix
index 103f58e..49ba46d 100644
--- a/modules/nixos/server/mixins/hercules.nix
+++ b/modules/nixos/server/mixins/hercules.nix
@@ -4,16 +4,16 @@
unstable,
secretsDir,
...
-}: let
+}:
+let
cfg = config.server.mixins.hercules-ci;
-in {
+in
+{
options.server.mixins.hercules-ci = {
enable = lib.mkEnableOption "hercules-ci mixin";
- manageSecrets =
- lib.mkEnableOption "automatic secrets management"
- // {
- default = config.traits.secrets.enable;
- };
+ manageSecrets = lib.mkEnableOption "automatic secrets management" // {
+ default = config.traits.secrets.enable;
+ };
};
config = lib.mkIf cfg.enable (
@@ -25,29 +25,29 @@ in {
};
}
- (let
- secretNames = [
- "binaryCaches"
- "clusterJoinToken"
- "secretsJson"
- ];
- in
+ (
+ let
+ secretNames = [
+ "binaryCaches"
+ "clusterJoinToken"
+ "secretsJson"
+ ];
+ in
lib.mkIf cfg.manageSecrets {
- age.secrets = lib.genAttrs secretNames (
- file: {
- file = "${secretsDir}/${file}.age";
- mode = "400";
- owner = "hercules-ci-agent";
- group = "hercules-ci-agent";
- }
- );
+ age.secrets = lib.genAttrs secretNames (file: {
+ file = "${secretsDir}/${file}.age";
+ mode = "400";
+ owner = "hercules-ci-agent";
+ group = "hercules-ci-agent";
+ });
services.hercules-ci-agent = {
settings = lib.mapAttrs' (name: lib.nameValuePair (name + "Path")) (
lib.genAttrs secretNames (name: config.age.secrets.${name}.path)
);
};
- })
+ }
+ )
]
);
}
diff --git a/modules/nixos/server/mixins/nginx.nix b/modules/nixos/server/mixins/nginx.nix
index ba18ecf..11306a2 100644
--- a/modules/nixos/server/mixins/nginx.nix
+++ b/modules/nixos/server/mixins/nginx.nix
@@ -1,10 +1,8 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.server.mixins.nginx;
-in {
+in
+{
options.server.mixins.nginx = {
enable = lib.mkEnableOption "nginx mixin";
};
diff --git a/modules/nixos/server/mixins/promtail.nix b/modules/nixos/server/mixins/promtail.nix
index 1baaac6..6b4cf32 100644
--- a/modules/nixos/server/mixins/promtail.nix
+++ b/modules/nixos/server/mixins/promtail.nix
@@ -1,17 +1,15 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.server.mixins.promtail;
inherit (lib) types;
-in {
+in
+{
options.server.mixins.promtail = {
enable = lib.mkEnableOption "Promtail mixin";
clients = lib.mkOption {
type = types.listOf types.attrs;
- default = [{}];
+ default = [ { } ];
description = "Clients for promtail";
};
};
@@ -37,7 +35,7 @@ in {
relabel_configs = [
{
- source_labels = ["__journal__systemd_unit"];
+ source_labels = [ "__journal__systemd_unit" ];
target_label = "unit";
}
];
diff --git a/modules/nixos/traits/24.05-compat.nix b/modules/nixos/traits/24.05-compat.nix
index 26dcbca..b6422d1 100644
--- a/modules/nixos/traits/24.05-compat.nix
+++ b/modules/nixos/traits/24.05-compat.nix
@@ -1,5 +1,17 @@
-{lib, ...}: {
+{ lib, ... }:
+{
imports = lib.optionals (lib.versionOlder lib.version "24.11pre") [
- (lib.mkAliasOptionModule ["hardware" "graphics" "extraPackages"] ["hardware" "opengl" "extraPackages"])
+ (lib.mkAliasOptionModule
+ [
+ "hardware"
+ "graphics"
+ "extraPackages"
+ ]
+ [
+ "hardware"
+ "opengl"
+ "extraPackages"
+ ]
+ )
];
}
diff --git a/modules/nixos/traits/auto-upgrade.nix b/modules/nixos/traits/auto-upgrade.nix
index bdb919c..1e65445 100644
--- a/modules/nixos/traits/auto-upgrade.nix
+++ b/modules/nixos/traits/auto-upgrade.nix
@@ -1,10 +1,8 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.traits.autoUpgrade;
-in {
+in
+{
options.traits.autoUpgrade = {
enable = lib.mkEnableOption "automatic updates";
};
@@ -14,16 +12,14 @@ in {
enable = true;
/*
- a workflow updates the flake every 24h at ~0:00UTC/8:00EST;
- most devices of mine will be in EST currently. this could probably be
- "01:00" or "daily" but i think that's a bit of a risk if i ever change/
- dont set the time zone for a device and forget about this lol
+ a workflow updates the flake every 24h at ~0:00UTC/8:00EST;
+ most devices of mine will be in EST currently. this could probably be
+ "01:00" or "daily" but i think that's a bit of a risk if i ever change/
+ dont set the time zone for a device and forget about this lol
*/
dates = lib.mkDefault "02:00";
flake = "github:getchoo/flake#${config.networking.hostName}";
- flags = [
- "--refresh"
- ];
+ flags = [ "--refresh" ];
};
};
}
diff --git a/modules/nixos/traits/containers.nix b/modules/nixos/traits/containers.nix
index 5170c34..d13c658 100644
--- a/modules/nixos/traits/containers.nix
+++ b/modules/nixos/traits/containers.nix
@@ -4,10 +4,12 @@
options,
pkgs,
...
-}: let
+}:
+let
cfg = config.traits.containers;
- enableNvidia = lib.elem "nvidia" (config.services.xserver.videoDrivers or []);
-in {
+ enableNvidia = lib.elem "nvidia" (config.services.xserver.videoDrivers or [ ]);
+in
+{
options.traits.containers = {
enable = lib.mkEnableOption "containers support";
};
@@ -18,7 +20,7 @@ in {
virtualisation = {
podman = {
enable = true;
- extraPackages = with pkgs; [podman-compose];
+ extraPackages = with pkgs; [ podman-compose ];
autoPrune.enable = true;
};
@@ -26,9 +28,7 @@ in {
};
}
- (lib.mkIf enableNvidia {
- hardware.nvidia-container-toolkit.enable = true;
- })
+ (lib.mkIf enableNvidia { hardware.nvidia-container-toolkit.enable = true; })
]
);
}
diff --git a/modules/nixos/traits/home-manager.nix b/modules/nixos/traits/home-manager.nix
index 01af5b1..687f01d 100644
--- a/modules/nixos/traits/home-manager.nix
+++ b/modules/nixos/traits/home-manager.nix
@@ -1,3 +1,4 @@
-{inputs, ...}: {
- imports = [inputs.home-manager.nixosModules.home-manager];
+{ inputs, ... }:
+{
+ imports = [ inputs.home-manager.nixosModules.home-manager ];
}
diff --git a/modules/nixos/traits/locale.nix b/modules/nixos/traits/locale.nix
index 1de19ce..bd30819 100644
--- a/modules/nixos/traits/locale.nix
+++ b/modules/nixos/traits/locale.nix
@@ -1,10 +1,8 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.traits.locale;
-in {
+in
+{
options.traits.locale = {
en_US = {
enable = lib.mkEnableOption "en_US locale";
@@ -14,9 +12,7 @@ in {
config = lib.mkMerge [
(lib.mkIf cfg.en_US.enable {
i18n = {
- supportedLocales = [
- "en_US.UTF-8/UTF-8"
- ];
+ supportedLocales = [ "en_US.UTF-8/UTF-8" ];
defaultLocale = "en_US.UTF-8";
};
diff --git a/modules/nixos/traits/nvidia.nix b/modules/nixos/traits/nvidia.nix
index 303d902..5fec7db 100644
--- a/modules/nixos/traits/nvidia.nix
+++ b/modules/nixos/traits/nvidia.nix
@@ -3,49 +3,53 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.traits.nvidia;
usingNvidia = lib.elem "nvidia" config.services.xserver.videoDrivers;
-in {
+in
+{
options.traits.nvidia = {
enable = lib.mkEnableOption "NVIDIA drivers";
nvk.enable = lib.mkEnableOption "NVK specialisation";
};
- config = lib.mkIf cfg.enable (lib.mkMerge [
- {
- boot.kernelParams = lib.optional usingNvidia "nvidia_drm.fbdev=1";
+ config = lib.mkIf cfg.enable (
+ lib.mkMerge [
+ {
+ boot.kernelParams = lib.optional usingNvidia "nvidia_drm.fbdev=1";
- services.xserver.videoDrivers = ["nvidia"];
+ services.xserver.videoDrivers = [ "nvidia" ];
- hardware = {
- graphics.extraPackages = [pkgs.vaapiVdpau];
- nvidia = {
- package = lib.mkDefault config.boot.kernelPackages.nvidiaPackages.latest;
- modesetting.enable = true;
- };
- };
- }
-
- (lib.mkIf cfg.nvk.enable {
- specialisation = {
- nvk.configuration = {
- boot = {
- kernelParams = ["nouveau.config=NvGspRm=1"];
- initrd.kernelModules = ["nouveau"];
+ hardware = {
+ graphics.extraPackages = [ pkgs.vaapiVdpau ];
+ nvidia = {
+ package = lib.mkDefault config.boot.kernelPackages.nvidiaPackages.latest;
+ modesetting.enable = true;
};
+ };
+ }
- environment.sessionVariables = {
- MESA_VK_VERSION_OVERRIDE = "1.3";
- };
+ (lib.mkIf cfg.nvk.enable {
+ specialisation = {
+ nvk.configuration = {
+ boot = {
+ kernelParams = [ "nouveau.config=NvGspRm=1" ];
+ initrd.kernelModules = [ "nouveau" ];
+ };
+
+ environment.sessionVariables = {
+ MESA_VK_VERSION_OVERRIDE = "1.3";
+ };
- hardware.graphics.extraPackages = lib.mkForce [];
+ hardware.graphics.extraPackages = lib.mkForce [ ];
- services.xserver.videoDrivers = lib.mkForce ["modesetting"];
+ services.xserver.videoDrivers = lib.mkForce [ "modesetting" ];
- system.nixos.tags = ["with-nvk"];
+ system.nixos.tags = [ "with-nvk" ];
+ };
};
- };
- })
- ]);
+ })
+ ]
+ );
}
diff --git a/modules/nixos/traits/secrets.nix b/modules/nixos/traits/secrets.nix
index 862e76f..af66969 100644
--- a/modules/nixos/traits/secrets.nix
+++ b/modules/nixos/traits/secrets.nix
@@ -3,14 +3,16 @@
lib,
inputs,
...
-}: let
+}:
+let
cfg = config.traits.secrets;
-in {
+in
+{
options.traits.secrets = {
enable = lib.mkEnableOption "secrets management";
};
- imports = [inputs.agenix.nixosModules.default];
+ imports = [ inputs.agenix.nixosModules.default ];
config = lib.mkIf cfg.enable {
_module.args = {
@@ -18,7 +20,7 @@ in {
};
age = {
- identityPaths = ["/etc/age/key"];
+ identityPaths = [ "/etc/age/key" ];
};
};
}
diff --git a/modules/nixos/traits/tailscale.nix b/modules/nixos/traits/tailscale.nix
index a7d8c06..73c74e3 100644
--- a/modules/nixos/traits/tailscale.nix
+++ b/modules/nixos/traits/tailscale.nix
@@ -3,24 +3,24 @@
lib,
secretsDir,
...
-}: let
+}:
+let
cfg = config.traits.tailscale;
-in {
+in
+{
options.traits.tailscale = {
enable = lib.mkEnableOption "Tailscale";
ssh.enable = lib.mkEnableOption "Tailscale SSH";
- manageSecrets =
- lib.mkEnableOption "automatic secrets management"
- // {
- default = config.traits.secrets.enable && cfg.ssh.enable;
- };
+ manageSecrets = lib.mkEnableOption "automatic secrets management" // {
+ default = config.traits.secrets.enable && cfg.ssh.enable;
+ };
};
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
networking.firewall = {
- trustedInterfaces = [config.services.tailscale.interfaceName];
+ trustedInterfaces = [ config.services.tailscale.interfaceName ];
};
services.tailscale = {
@@ -31,11 +31,11 @@ in {
(lib.mkIf cfg.ssh.enable {
networking.firewall = {
- allowedTCPPorts = [22];
+ allowedTCPPorts = [ 22 ];
};
services.tailscale = {
- extraUpFlags = ["--ssh"];
+ extraUpFlags = [ "--ssh" ];
};
})
diff --git a/modules/nixos/traits/users/default.nix b/modules/nixos/traits/users/default.nix
index a81dacf..df767b4 100644
--- a/modules/nixos/traits/users/default.nix
+++ b/modules/nixos/traits/users/default.nix
@@ -1,5 +1 @@
-{
- imports = [
- ./seth.nix
- ];
-}
+{ imports = [ ./seth.nix ]; }
diff --git a/modules/nixos/traits/users/seth.nix b/modules/nixos/traits/users/seth.nix
index 9ebb6c8..4b84892 100644
--- a/modules/nixos/traits/users/seth.nix
+++ b/modules/nixos/traits/users/seth.nix
@@ -3,15 +3,15 @@
lib,
secretsDir,
...
-}: let
+}:
+let
cfg = config.traits.users.seth;
-in {
+in
+{
options.traits.users.seth = {
- manageSecrets =
- lib.mkEnableOption "automatic secrets management"
- // {
- default = config.traits.secrets.enable;
- };
+ manageSecrets = lib.mkEnableOption "automatic secrets management" // {
+ default = config.traits.secrets.enable;
+ };
};
config = lib.mkMerge [
diff --git a/modules/nixos/traits/zram.nix b/modules/nixos/traits/zram.nix
index 337137a..d0c6a36 100644
--- a/modules/nixos/traits/zram.nix
+++ b/modules/nixos/traits/zram.nix
@@ -1,10 +1,8 @@
-{
- config,
- lib,
- ...
-}: let
+{ config, lib, ... }:
+let
cfg = config.traits.zram;
-in {
+in
+{
options.traits.zram = {
enable = lib.mkEnableOption "zram setup & configuration";
};