From 3f8c81741882cccc6282ad1c99bfdd444ef87cd5 Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Sun, 10 Dec 2023 23:53:54 +0000 Subject: [PATCH 1/3] Remove custom lib usage --- flake.nix | 99 +++++++++++--------------- hosts/atlas/default.nix | 1 - hosts/desktop.nix | 2 - hosts/eos/default.nix | 1 - hosts/helios/default.nix | 1 - hosts/odyssey/default.nix | 1 - hosts/server.nix | 2 - lib/attrs.nix | 26 ------- lib/default.nix | 19 ----- lib/modules.nix | 53 -------------- lib/nixos.nix | 25 ------- lib/options.nix | 35 --------- modules/desktop/apps/qbittorrent.nix | 11 +-- modules/desktop/apps/slack.nix | 9 +-- modules/desktop/apps/thunderbird.nix | 9 +-- modules/desktop/apps/zoom.nix | 9 +-- modules/desktop/browsers/firefox.nix | 9 +-- modules/desktop/gaming/emulators.nix | 61 +++++++++++----- modules/desktop/gaming/lutris.nix | 9 +-- modules/desktop/gaming/steam.nix | 11 +-- modules/desktop/gnome.nix | 9 +-- modules/desktop/media/graphics.nix | 27 ++++--- modules/desktop/media/recording.nix | 14 ++-- modules/desktop/mimeapps.nix | 9 +-- modules/desktop/office/libreoffice.nix | 9 +-- modules/dev/cc.nix | 11 +-- modules/dev/java.nix | 11 +-- modules/dev/lua.nix | 11 +-- modules/dev/node.nix | 11 +-- modules/dev/python.nix | 11 +-- modules/dev/rust.nix | 11 +-- modules/dev/scala.nix | 11 +-- modules/dev/shell.nix | 11 +-- modules/dev/zig.nix | 11 +-- modules/editors/neovim/default.nix | 9 +-- modules/editors/vscode.nix | 9 +-- modules/networking/tailscale.nix | 14 ++-- modules/options.nix | 19 +++-- modules/security/gpg.nix | 11 +-- modules/security/pass.nix | 11 +-- modules/shell/git/default.nix | 11 +-- modules/shell/zsh/default.nix | 9 +-- 42 files changed, 265 insertions(+), 388 deletions(-) delete mode 100644 lib/attrs.nix delete mode 100644 lib/default.nix delete mode 100644 lib/modules.nix delete mode 100644 lib/nixos.nix delete mode 100644 lib/options.nix diff --git a/flake.nix b/flake.nix index bc2f081..df6ff70 100644 --- a/flake.nix +++ b/flake.nix @@ -20,66 +20,47 @@ outputs = inputs @ { self, nixpkgs, agenix, home-manager, ... }: let - inherit (lib) attrValues; - inherit (lib.my) mapModules mapModulesRec; - - system = "x86_64-linux"; - - mkPkgs = pkgs: extraOverlays: - import pkgs { - inherit system; - config.allowUnfree = true; - overlays = extraOverlays ++ (lib.attrValues self.overlays); + nixpkgsForSystem = system: inputs.nixpkgs; + overlays = [ + agenix.overlays.default + (import ./overlays/gnome.nix) + ]; + commonModules = [ + agenix.nixosModules.age + home-manager.nixosModule + ./modules + ]; + nixosSystem = system: name: + let + nixpkgs = nixpkgsForSystem system; + lib = (import nixpkgs { inherit overlays system; }).lib; + in + inputs.nixpkgs.lib.nixosSystem { + inherit lib system; + specialArgs = { modulesPath = toString (nixpkgs + "/nixos/modules"); inherit inputs; }; + baseModules = import (nixpkgs + "/nixos/modules/module-list.nix"); + modules = commonModules ++ [ + ({ config, ... }: + { + nixpkgs.pkgs = import nixpkgs { + inherit overlays system; + config.allowUnfree = true; + }; + networking.hostName = name; + nix = { + extraOptions = "experimental-features = nix-command flakes"; + }; + }) + ./hosts/${name} + ]; }; - pkgs = mkPkgs nixpkgs []; - - lib = nixpkgs.lib.extend (self: super: { - my = import ./lib { - inherit pkgs inputs; - lib = self; - }; - }); - in { - lib = lib.my; - nixosConfigurations = { - atlas = nixpkgs.lib.nixosSystem { - modules = [ - home-manager.nixosModules.home-manager - { nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } - (import ./modules) - ./hosts/atlas - ]; - specialArgs = { inherit lib inputs; }; - }; - eos = nixpkgs.lib.nixosSystem { - modules = [ - home-manager.nixosModules.home-manager - { nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } - (import ./modules) - ./hosts/eos - ]; - specialArgs = { inherit lib inputs; }; - }; - helios = nixpkgs.lib.nixosSystem { - modules = [ - home-manager.nixosModules.home-manager - { nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } - (import ./modules) - ./hosts/helios - ]; - specialArgs = { inherit lib inputs; }; - }; - odyssey = nixpkgs.lib.nixosSystem { - modules = [ - home-manager.nixosModules.home-manager - agenix.nixosModules.default - { nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; } - (import ./modules) - ./hosts/odyssey - ]; - specialArgs = { inherit lib inputs; }; - }; + atlas = nixosSystem "x86_64-linux" "atlas"; + eos = nixosSystem "x86_64-linux" "eos"; + helios = nixosSystem "x86_64-linux" "helios"; + odyssey = nixosSystem "x86_64-linux" "odyssey"; }; - }; + in + { inherit nixosConfigurations; }; } + diff --git a/hosts/atlas/default.nix b/hosts/atlas/default.nix index fd384f7..1314b42 100644 --- a/hosts/atlas/default.nix +++ b/hosts/atlas/default.nix @@ -1,6 +1,5 @@ { config, lib, pkgs, ... }: -with lib.my; { imports = [ ./hardware-configuration.nix diff --git a/hosts/desktop.nix b/hosts/desktop.nix index 8bf1818..387ac59 100644 --- a/hosts/desktop.nix +++ b/hosts/desktop.nix @@ -1,7 +1,5 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; { time.timeZone = "Europe/London"; diff --git a/hosts/eos/default.nix b/hosts/eos/default.nix index e2a1ffd..f21faa8 100644 --- a/hosts/eos/default.nix +++ b/hosts/eos/default.nix @@ -1,6 +1,5 @@ { config, lib, pkgs, ... }: -with lib.my; { imports = [ ./hardware-configuration.nix diff --git a/hosts/helios/default.nix b/hosts/helios/default.nix index 01b581d..b6a5a98 100644 --- a/hosts/helios/default.nix +++ b/hosts/helios/default.nix @@ -1,6 +1,5 @@ { config, lib, pkgs, ... }: -with lib.my; { imports = [ ./hardware-configuration.nix diff --git a/hosts/odyssey/default.nix b/hosts/odyssey/default.nix index 775bd96..f27e671 100644 --- a/hosts/odyssey/default.nix +++ b/hosts/odyssey/default.nix @@ -1,6 +1,5 @@ { config, lib, pkgs, ... }: -with lib.my; { imports = [ ./hardware-configuration.nix diff --git a/hosts/server.nix b/hosts/server.nix index c0a34a0..f957a59 100644 --- a/hosts/server.nix +++ b/hosts/server.nix @@ -1,7 +1,5 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; { time.timeZone = "Europe/London"; diff --git a/lib/attrs.nix b/lib/attrs.nix deleted file mode 100644 index b83e826..0000000 --- a/lib/attrs.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, ... }: - -with builtins; -with lib; -rec { - # attrsToList - attrsToList = attrs: - mapAttrsToList (name: value: { inherit name value; }) attrs; - - # mapFilterAttrs :: - # (name -> value -> bool) - # (name -> value -> { name = any; value = any; }) - # attrs - mapFilterAttrs = pred: f: attrs: filterAttrs pred (mapAttrs' f attrs); - - # Generate an attribute set by mapping a function over a list of values. - genAttrs' = values: f: listToAttrs (map f values); - - # anyAttrs :: (name -> value -> bool) attrs - anyAttrs = pred: attrs: - any (attr: pred attr.name attr.value) (attrsToList attrs); - - # countAttrs :: (name -> value -> bool) attrs - countAttrs = pred: attrs: - count (attr: pred attr.name attr.value) (attrsToList attrs); -} \ No newline at end of file diff --git a/lib/default.nix b/lib/default.nix deleted file mode 100644 index 158a538..0000000 --- a/lib/default.nix +++ /dev/null @@ -1,19 +0,0 @@ - -{ inputs, lib, pkgs, ... }: - -let - inherit (lib) makeExtensible attrValues foldr; - inherit (modules) mapModules; - - modules = import ./modules.nix { - inherit lib; - self.attrs = import ./attrs.nix { inherit lib; self = {}; }; - }; - - mylib = makeExtensible (self: - with self; mapModules ./. - (file: import file { inherit self lib pkgs inputs; })); -in -mylib.extend - (self: super: - foldr (a: b: a // b) {} (attrValues super)) diff --git a/lib/modules.nix b/lib/modules.nix deleted file mode 100644 index 2124f6c..0000000 --- a/lib/modules.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ self, lib, ... }: - -let - inherit (builtins) attrValues readDir pathExists concatLists; - inherit (lib) id mapAttrsToList filterAttrs hasPrefix hasSuffix nameValuePair removeSuffix; - inherit (self.attrs) mapFilterAttrs; -in -rec { - mapModules = dir: fn: - mapFilterAttrs - (n: v: - v != null && - !(hasPrefix "_" n)) - (n: v: - let path = "${toString dir}/${n}"; in - if v == "directory" && pathExists "${path}/default.nix" - then nameValuePair n (fn path) - else if v == "regular" && - n != "default.nix" && - hasSuffix ".nix" n - then nameValuePair (removeSuffix ".nix" n) (fn path) - else nameValuePair "" null) - (readDir dir); - - mapModules' = dir: fn: - attrValues (mapModules dir fn); - - mapModulesRec = dir: fn: - mapFilterAttrs - (n: v: - v != null && - !(hasPrefix "_" n)) - (n: v: - let path = "${toString dir}/${n}"; in - if v == "directory" - then nameValuePair n (mapModulesRec path fn) - else if v == "regular" && n != "default.nix" && hasSuffix ".nix" n - then nameValuePair (removeSuffix ".nix" n) (fn path) - else nameValuePair "" null) - (readDir dir); - - mapModulesRec' = dir: fn: - let - dirs = - mapAttrsToList - (k: _: "${dir}/${k}") - (filterAttrs - (n: v: v == "directory" && !(hasPrefix "_" n)) - (readDir dir)); - files = attrValues (mapModules dir id); - paths = files ++ concatLists (map (d: mapModulesRec' d id) dirs); - in map fn paths; -} \ No newline at end of file diff --git a/lib/nixos.nix b/lib/nixos.nix deleted file mode 100644 index 4595af7..0000000 --- a/lib/nixos.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ inputs, lib, pkgs, ... }: - -with lib; -with lib.my; -let sys = "x86_64-linux"; -in { - mkHost = path: attrs @ { system ? sys, ... }: - nixosSystem { - inherit system; - specialArgs = { inherit lib inputs system; }; - modules = [ - { - nixpkgs.pkgs = pkgs; - networking.hostName = mkDefault (removeSuffix ".nix" (baseNameOf path)); - } - (filterAttrs (n: v: !elem n [ "system" ]) attrs) - ../. # /default.nix - (import path) - ]; - }; - - mapHosts = dir: attrs @ { system ? system, ... }: - mapModules dir - (hostPath: mkHost hostPath attrs); -} diff --git a/lib/options.nix b/lib/options.nix deleted file mode 100644 index da61a5a..0000000 --- a/lib/options.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, ... }: - -let - inherit (lib) mkOption types; -in -rec { - mkOpt = type: default: - mkOption { inherit type default; }; - - mkOpt' = type: default: description: - mkOption { inherit type default description; }; - - mkBoolOpt = default: mkOption { - inherit default; - type = types.bool; - example = true; - }; - - mkStringOpt = default: mkOption { - inherit default; - type = types.lines; - example = ""; - }; - - mkListOfStringOpt = default: mkOption { - inherit default; - type = types.listOf types.lines; - example = [ "a" "b" "c" ]; - }; - - mkPath = path: - if path != null - then toString path - else ""; -} \ No newline at end of file diff --git a/modules/desktop/apps/qbittorrent.nix b/modules/desktop/apps/qbittorrent.nix index 60b0c44..e3b59f0 100644 --- a/modules/desktop/apps/qbittorrent.nix +++ b/modules/desktop/apps/qbittorrent.nix @@ -1,16 +1,17 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.apps.qbittorrent; in { options.modules.desktop.apps.qbittorrent = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ qbittorrent ]; }; -} \ No newline at end of file +} diff --git a/modules/desktop/apps/slack.nix b/modules/desktop/apps/slack.nix index 86e3dfd..e6abb17 100644 --- a/modules/desktop/apps/slack.nix +++ b/modules/desktop/apps/slack.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.apps.slack; in { options.modules.desktop.apps.slack = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ slack ]; diff --git a/modules/desktop/apps/thunderbird.nix b/modules/desktop/apps/thunderbird.nix index 0abe473..eea70c0 100644 --- a/modules/desktop/apps/thunderbird.nix +++ b/modules/desktop/apps/thunderbird.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, inputs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.apps.thunderbird; in { options.modules.desktop.apps.thunderbird = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { home.file.".thunderbird/Default/chrome/thunderbird-gnome-theme".source = inputs.thunderbird-gnome-theme; home.programs.thunderbird = { diff --git a/modules/desktop/apps/zoom.nix b/modules/desktop/apps/zoom.nix index 3072d8d..8c651c3 100644 --- a/modules/desktop/apps/zoom.nix +++ b/modules/desktop/apps/zoom.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.apps.zoom; in { options.modules.desktop.apps.zoom = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ zoom-us ]; diff --git a/modules/desktop/browsers/firefox.nix b/modules/desktop/browsers/firefox.nix index 4948e03..5c077c3 100644 --- a/modules/desktop/browsers/firefox.nix +++ b/modules/desktop/browsers/firefox.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, inputs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.browsers.firefox; in { options.modules.desktop.browsers.firefox = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { home.file.".mozilla/firefox/Default/chrome/firefox-gnome-theme".source = inputs.firefox-gnome-theme; home.programs.firefox = { diff --git a/modules/desktop/gaming/emulators.nix b/modules/desktop/gaming/emulators.nix index d06a89a..4b93f43 100644 --- a/modules/desktop/gaming/emulators.nix +++ b/modules/desktop/gaming/emulators.nix @@ -1,34 +1,59 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.gaming.emulators; in { options.modules.desktop.gaming.emulators = { - ds.enable = mkBoolOpt false; - gb.enable = mkBoolOpt false; - gba.enable = mkBoolOpt false; - gamecube.enable = mkBoolOpt false; - ps2.enable = mkBoolOpt false; - ps3.enable = mkBoolOpt false; - psp.enable = mkBoolOpt false; - snes.enable = mkBoolOpt false; - wii.enable = mkBoolOpt false; + ds.enable = lib.mkOption { + default = false; + example = true; + }; + gb.enable = lib.mkOption { + default = false; + example = true; + }; + gba.enable = lib.mkOption { + default = false; + example = true; + }; + gamecube.enable = lib.mkOption { + default = false; + example = true; + }; + ps2.enable = lib.mkOption { + default = false; + example = true; + }; + ps3.enable = lib.mkOption { + default = false; + example = true; + }; + psp.enable = lib.mkOption { + default = false; + example = true; + }; + snes.enable = lib.mkOption { + default = false; + example = true; + }; + wii.enable = lib.mkOption { + default = false; + example = true; + }; }; config = { user.packages = with pkgs; [ - (mkIf cfg.ps2.enable pcsx2) - (mkIf cfg.ps3.enable rpcs3) - (mkIf cfg.psp.enable ppsspp) - (mkIf cfg.ds.enable desmume) - (mkIf (cfg.gba.enable || + (lib.mkIf cfg.ps2.enable pcsx2) + (lib.mkIf cfg.ps3.enable rpcs3) + (lib.mkIf cfg.psp.enable ppsspp) + (lib.mkIf cfg.ds.enable desmume) + (lib.mkIf (cfg.gba.enable || cfg.gb.enable || cfg.snes.enable) higan) - (mkIf (cfg.wii.enable || + (lib.mkIf (cfg.wii.enable || cfg.gamecube.enable) dolphin-emu) ]; }; -} \ No newline at end of file +} diff --git a/modules/desktop/gaming/lutris.nix b/modules/desktop/gaming/lutris.nix index dffc93f..16d7f73 100644 --- a/modules/desktop/gaming/lutris.nix +++ b/modules/desktop/gaming/lutris.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.gaming.lutris; in { options.modules.desktop.gaming.lutris = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ lutris vulkan-loader diff --git a/modules/desktop/gaming/steam.nix b/modules/desktop/gaming/steam.nix index 262089a..62fb5c1 100644 --- a/modules/desktop/gaming/steam.nix +++ b/modules/desktop/gaming/steam.nix @@ -1,16 +1,17 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.gaming.steam; in { options.modules.desktop.gaming.steam = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { programs.steam.enable = true; systemd.extraConfig = "DefaultLimitNOFILE=1048576"; }; -} \ No newline at end of file +} diff --git a/modules/desktop/gnome.nix b/modules/desktop/gnome.nix index caf3e6f..bfe0521 100644 --- a/modules/desktop/gnome.nix +++ b/modules/desktop/gnome.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.gnome; in { options.modules.desktop.gnome = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { services.xserver = { enable = true; displayManager.gdm.enable = true; diff --git a/modules/desktop/media/graphics.nix b/modules/desktop/media/graphics.nix index 800e7b7..d79e1f0 100644 --- a/modules/desktop/media/graphics.nix +++ b/modules/desktop/media/graphics.nix @@ -1,21 +1,28 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.media.graphics; in { options.modules.desktop.media.graphics = { - modeling.enable = mkBoolOpt false; - raster.enable = mkBoolOpt false; - vector.enable = mkBoolOpt false; + modeling.enable = lib.mkOption { + default = false; + example = true; + }; + raster.enable = lib.mkOption { + default = false; + example = true; + }; + vector.enable = lib.mkOption { + default = false; + example = true; + }; }; config = { user.packages = with pkgs; [ - (mkIf cfg.modeling.enable blender) - (mkIf cfg.raster.enable gimp) - (mkIf cfg.raster.enable krita) - (mkIf cfg.vector.enable inkscape) + (lib.mkIf cfg.modeling.enable blender) + (lib.mkIf cfg.raster.enable gimp) + (lib.mkIf cfg.raster.enable krita) + (lib.mkIf cfg.vector.enable inkscape) ]; }; -} \ No newline at end of file +} diff --git a/modules/desktop/media/recording.nix b/modules/desktop/media/recording.nix index 556fc2f..b1424bf 100644 --- a/modules/desktop/media/recording.nix +++ b/modules/desktop/media/recording.nix @@ -1,12 +1,16 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.media.recording; in { options.modules.desktop.media.recording = { - audio.enable = mkBoolOpt false; - video.enable = mkBoolOpt false; + audio.enable = lib.mkOption { + default = false; + example = true; + }; + video.enable = lib.mkOption { + default = false; + example = true; + }; }; config = { @@ -21,4 +25,4 @@ in { obs-studio ] else []); }; -} \ No newline at end of file +} diff --git a/modules/desktop/mimeapps.nix b/modules/desktop/mimeapps.nix index 55fc1f9..f098350 100644 --- a/modules/desktop/mimeapps.nix +++ b/modules/desktop/mimeapps.nix @@ -1,17 +1,18 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.mimeapps; avApp = "io.github.celluloid_player.Celluloid.desktop"; imageApp = "org.gnome.eog.desktop"; in { options.modules.desktop.mimeapps = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { xdg.mime.defaultApplications = { # Audio/video "audio/x-vorbis+ogg" = avApp; diff --git a/modules/desktop/office/libreoffice.nix b/modules/desktop/office/libreoffice.nix index ad4b6b5..bb01545 100644 --- a/modules/desktop/office/libreoffice.nix +++ b/modules/desktop/office/libreoffice.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.desktop.office.libreoffice; in { options.modules.desktop.office.libreoffice = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ libreoffice ]; diff --git a/modules/dev/cc.nix b/modules/dev/cc.nix index b711ad0..924f762 100644 --- a/modules/dev/cc.nix +++ b/modules/dev/cc.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.dev.cc; in { options.modules.dev.cc = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ clang gcc @@ -17,4 +18,4 @@ in { llvmPackages.libcxx ]; }; -} \ No newline at end of file +} diff --git a/modules/dev/java.nix b/modules/dev/java.nix index 1ec11a7..41033ad 100644 --- a/modules/dev/java.nix +++ b/modules/dev/java.nix @@ -1,16 +1,17 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.dev.java; in { options.modules.dev.java = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ jdk ]; }; -} \ No newline at end of file +} diff --git a/modules/dev/lua.nix b/modules/dev/lua.nix index db7f5d0..547d912 100644 --- a/modules/dev/lua.nix +++ b/modules/dev/lua.nix @@ -1,16 +1,17 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.dev.lua; in { options.modules.dev.lua = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ lua ]; }; -} \ No newline at end of file +} diff --git a/modules/dev/node.nix b/modules/dev/node.nix index 42ad34d..ca784d9 100644 --- a/modules/dev/node.nix +++ b/modules/dev/node.nix @@ -1,16 +1,17 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.dev.node; in { options.modules.dev.node = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ nodejs_latest ]; }; -} \ No newline at end of file +} diff --git a/modules/dev/python.nix b/modules/dev/python.nix index 5ba84b0..32d0bc6 100644 --- a/modules/dev/python.nix +++ b/modules/dev/python.nix @@ -1,16 +1,17 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.dev.python; in { options.modules.dev.python = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ python310 ]; }; -} \ No newline at end of file +} diff --git a/modules/dev/rust.nix b/modules/dev/rust.nix index 556eb35..d7767f1 100644 --- a/modules/dev/rust.nix +++ b/modules/dev/rust.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.dev.rust; in { options.modules.dev.rust = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ rustc rustup @@ -16,4 +17,4 @@ in { rust-bindgen ]; }; -} \ No newline at end of file +} diff --git a/modules/dev/scala.nix b/modules/dev/scala.nix index 08b1425..9b07f1d 100644 --- a/modules/dev/scala.nix +++ b/modules/dev/scala.nix @@ -1,18 +1,19 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.dev.scala; in { options.modules.dev.scala = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ jdk sbt scala ]; }; -} \ No newline at end of file +} diff --git a/modules/dev/shell.nix b/modules/dev/shell.nix index 7fc8687..f3eabb2 100644 --- a/modules/dev/shell.nix +++ b/modules/dev/shell.nix @@ -1,16 +1,17 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.dev.shell; in { options.modules.dev.shell = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ shellcheck ]; }; -} \ No newline at end of file +} diff --git a/modules/dev/zig.nix b/modules/dev/zig.nix index eaef914..e237073 100644 --- a/modules/dev/zig.nix +++ b/modules/dev/zig.nix @@ -1,16 +1,17 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.dev.zig; in { options.modules.dev.zig = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ zig ]; }; -} \ No newline at end of file +} diff --git a/modules/editors/neovim/default.nix b/modules/editors/neovim/default.nix index 98c5f55..feecbaf 100644 --- a/modules/editors/neovim/default.nix +++ b/modules/editors/neovim/default.nix @@ -1,16 +1,17 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.editors.neovim; dev = config.modules.dev; in { options.modules.editors.neovim = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { user.packages = with pkgs; [ (neovim.override { configure = { diff --git a/modules/editors/vscode.nix b/modules/editors/vscode.nix index 01b32e4..1c525af 100644 --- a/modules/editors/vscode.nix +++ b/modules/editors/vscode.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.editors.vscode; in { options.modules.editors.vscode = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { environment.sessionVariables.NIXOS_OZONE_WL = "1"; home.programs.vscode = { diff --git a/modules/networking/tailscale.nix b/modules/networking/tailscale.nix index fafd533..550d2e7 100644 --- a/modules/networking/tailscale.nix +++ b/modules/networking/tailscale.nix @@ -1,15 +1,19 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.networking.tailscale; in { options.modules.networking.tailscale = { - enable = mkBoolOpt false; - restrictSSH = mkBoolOpt true; + enable = lib.mkOption { + default = false; + example = true; + }; + restrictSSH = lib.mkOption { + default = true; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { services.tailscale.enable = true; services.openssh.openFirewall = !cfg.restrictSSH; networking.firewall = { diff --git a/modules/options.nix b/modules/options.nix index 13a6a36..da3a505 100644 --- a/modules/options.nix +++ b/modules/options.nix @@ -1,21 +1,20 @@ { config, options, lib, home-manager, ... }: with lib; -with lib.my; { options = with types; { - user = mkOpt attrs { }; + user = mkOption { type = attrs; default = { }; }; home = { - configFile = mkOpt' attrs { } "Files to place in $XDG_CONFIG_HOME"; - dataFile = mkOpt' attrs { } "Files to place in $XDG_DATA_HOME"; - file = mkOpt' attrs { } "Files to place directly in $HOME"; - packages = mkOpt' attrs { } "User-level installed packages"; - programs = mkOpt' attrs { } "Programs managed directly from home-manager"; - services = mkOpt' attrs { } "Services managed directly from home-manager"; + configFile = mkOption { type = attrs; default = { }; description = "Files to place in $XDG_CONFIG_HOME"; }; + dataFile = mkOption { type = attrs; default = { }; description = "Files to place in $XDG_DATA_HOME"; }; + file = mkOption { type = attrs; default = { }; description = "Files to place directly in $HOME"; }; + packages = mkOption { type = attrs; default = { }; description = "User-level installed packages"; }; + programs = mkOption { type = attrs; default = { }; description = "Programs managed directly from home-manager"; }; + services = mkOption { type = attrs; default = { }; description = "Services managed directly from home-manager"; }; }; - dconf.settings = mkOpt' attrs { } "dconf settings to enable"; + dconf.settings = mkOption { type = attrs; default = { }; description = "dconf settings to enable"; }; env = mkOption { type = attrsOf (oneOf [ str path (listOf (either str path)) ]); @@ -69,8 +68,6 @@ with lib.my; users.users.${config.user.name} = mkAliasDefinitions options.user; - nixpkgs.config.allowUnfree = true; - environment.extraInit = concatStringsSep "\n" (mapAttrsToList (n: v: "export ${n}=\"${v}\"") config.env); diff --git a/modules/security/gpg.nix b/modules/security/gpg.nix index deb4d6c..62d6b4b 100644 --- a/modules/security/gpg.nix +++ b/modules/security/gpg.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.security.gpg; in { options.modules.security.gpg = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { home.programs.gpg = { enable = true; }; @@ -18,4 +19,4 @@ in { enableSshSupport = true; }; }; -} \ No newline at end of file +} diff --git a/modules/security/pass.nix b/modules/security/pass.nix index 511e6d8..8572551 100644 --- a/modules/security/pass.nix +++ b/modules/security/pass.nix @@ -1,17 +1,18 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.security.pass; in { options.modules.security.pass = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { home.programs.password-store = { enable = true; package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]); }; }; -} \ No newline at end of file +} diff --git a/modules/shell/git/default.nix b/modules/shell/git/default.nix index e8e129f..ac71379 100644 --- a/modules/shell/git/default.nix +++ b/modules/shell/git/default.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.shell.git; in { options.modules.shell.git = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { home.programs.git = { enable = true; aliases = { @@ -35,4 +36,4 @@ in { "git/ignore".source = ./ignore; }; }; -} \ No newline at end of file +} diff --git a/modules/shell/zsh/default.nix b/modules/shell/zsh/default.nix index a7f6f14..0c35763 100644 --- a/modules/shell/zsh/default.nix +++ b/modules/shell/zsh/default.nix @@ -1,14 +1,15 @@ { config, lib, pkgs, ... }: -with lib; -with lib.my; let cfg = config.modules.shell.zsh; in { options.modules.shell.zsh = { - enable = mkBoolOpt false; + enable = lib.mkOption { + default = false; + example = true; + }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { users.defaultUserShell = pkgs.zsh; programs.zsh = { From 88c3e1305cbda43fdd4d9570cfa970bfd76adfb4 Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Mon, 11 Dec 2023 18:31:55 +0000 Subject: [PATCH 2/3] Format hosts hardware-configuration.nix --- hosts/atlas/hardware-configuration.nix | 91 ++++++++++++----------- hosts/eos/hardware-configuration.nix | 93 ++++++++++++------------ hosts/helios/hardware-configuration.nix | 83 +++++++++++---------- hosts/odyssey/hardware-configuration.nix | 89 ++++++++++++----------- 4 files changed, 176 insertions(+), 180 deletions(-) diff --git a/hosts/atlas/hardware-configuration.nix b/hosts/atlas/hardware-configuration.nix index c2c666f..700e6c8 100644 --- a/hosts/atlas/hardware-configuration.nix +++ b/hosts/atlas/hardware-configuration.nix @@ -1,67 +1,66 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.initrd.supportedFilesystems = [ "zfs" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.kernelParams = [ "elevator=none" ]; - boot.extraModulePackages = [ ]; - boot.supportedFilesystems = [ "zfs" ]; + boot = { + initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + initrd.kernelModules = [ ]; + initrd.supportedFilesystems = [ "zfs" ]; + kernelModules = [ "kvm-intel" ]; + kernelParams = [ "elevator=none" ]; + extraModulePackages = [ ]; + supportedFilesystems = [ "zfs" ]; + }; - fileSystems."/" = - { device = "rpool/system/root"; - fsType = "zfs"; - }; + fileSystems."/" = { + device = "rpool/system/root"; + fsType = "zfs"; + }; - fileSystems."/home" = - { device = "rpool/user/home"; - fsType = "zfs"; - }; + fileSystems."/home" = { + device = "rpool/user/home"; + fsType = "zfs"; + }; - fileSystems."/nix" = - { device = "rpool/local/nix"; - fsType = "zfs"; - }; + fileSystems."/nix" = { + device = "rpool/local/nix"; + fsType = "zfs"; + }; - fileSystems."/tmp" = - { device = "rpool/local/tmp"; - fsType = "zfs"; - }; + fileSystems."/tmp" = { + device = "rpool/local/tmp"; + fsType = "zfs"; + }; - fileSystems."/var" = - { device = "rpool/system/var"; - fsType = "zfs"; - }; + fileSystems."/var" = { + device = "rpool/system/var"; + fsType = "zfs"; + }; - fileSystems."/var/log" = - { device = "rpool/system/var/log"; - fsType = "zfs"; - }; + fileSystems."/var/log" = { + device = "rpool/system/var/log"; + fsType = "zfs"; + }; - fileSystems."/var/tmp" = - { device = "rpool/system/var/tmp"; - fsType = "zfs"; - }; + fileSystems."/var/tmp" = { + device = "rpool/system/var/tmp"; + fsType = "zfs"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/00B2-0384"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/00B2-0384"; + fsType = "vfat"; + }; 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.enp0s25.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/eos/hardware-configuration.nix b/hosts/eos/hardware-configuration.nix index eb82fa6..94b147f 100644 --- a/hosts/eos/hardware-configuration.nix +++ b/hosts/eos/hardware-configuration.nix @@ -1,68 +1,65 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ]; - boot.initrd.kernelModules = [ ]; - boot.initrd.supportedFilesystems = [ "zfs" ]; - boot.kernelModules = [ ]; - boot.kernelParams = [ "elevator=none" ]; - boot.extraModulePackages = [ ]; - boot.supportedFilesystems = [ "zfs" ]; + boot = { + initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ]; + initrd.kernelModules = [ ]; + initrd.supportedFilesystems = [ "zfs" ]; + kernelModules = [ ]; + kernelParams = [ "elevator=none" ]; + extraModulePackages = [ ]; + supportedFilesystems = [ "zfs" ]; + }; - fileSystems."/" = - { device = "rpool/system/root"; - fsType = "zfs"; - }; + fileSystems."/" = { + device = "rpool/system/root"; + fsType = "zfs"; + }; - fileSystems."/home" = - { device = "rpool/user/home"; - fsType = "zfs"; - }; + fileSystems."/home" = { + device = "rpool/user/home"; + fsType = "zfs"; + }; - fileSystems."/nix" = - { device = "rpool/local/nix"; - fsType = "zfs"; - }; + fileSystems."/nix" = { + device = "rpool/local/nix"; + fsType = "zfs"; + }; - fileSystems."/tmp" = - { device = "rpool/local/tmp"; - fsType = "zfs"; - }; + fileSystems."/tmp" = { + device = "rpool/local/tmp"; + fsType = "zfs"; + }; - fileSystems."/var" = - { device = "rpool/system/var"; - fsType = "zfs"; - }; + fileSystems."/var" = { + device = "rpool/system/var"; + fsType = "zfs"; + }; - fileSystems."/var/log" = - { device = "rpool/system/var/log"; - fsType = "zfs"; - }; + fileSystems."/var/log" = { + device = "rpool/system/var/log"; + fsType = "zfs"; + }; - fileSystems."/var/tmp" = - { device = "rpool/system/var/tmp"; - fsType = "zfs"; - }; + fileSystems."/var/tmp" = { + device = "rpool/system/var/tmp"; + fsType = "zfs"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/28E6-5509"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/28E6-5509"; + fsType = "vfat"; + }; 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.enp0s25.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/helios/hardware-configuration.nix b/hosts/helios/hardware-configuration.nix index 0ec880a..66e8dd0 100644 --- a/hosts/helios/hardware-configuration.nix +++ b/hosts/helios/hardware-configuration.nix @@ -1,62 +1,61 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "zfs" ]; - boot.initrd.kernelModules = [ ]; - boot.initrd.supportedFilesystems = [ "zfs" ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.kernelParams = [ "elevator=none" ]; - boot.extraModulePackages = [ ]; - boot.supportedFilesystems = [ "zfs" ]; + boot = { + initrd.availableKernelModules = [ "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "zfs" ]; + initrd.kernelModules = [ ]; + initrd.supportedFilesystems = [ "zfs" ]; + kernelModules = [ "kvm-intel" ]; + kernelParams = [ "elevator=none" ]; + extraModulePackages = [ ]; + supportedFilesystems = [ "zfs" ]; + }; - fileSystems."/" = - { device = "rpool/system/root"; - fsType = "zfs"; - }; + fileSystems."/" = { + device = "rpool/system/root"; + fsType = "zfs"; + }; - fileSystems."/home" = - { device = "rpool/user/home"; - fsType = "zfs"; - }; + fileSystems."/home" = { + device = "rpool/user/home"; + fsType = "zfs"; + }; - fileSystems."/nix" = - { device = "rpool/local/nix"; - fsType = "zfs"; - }; + fileSystems."/nix" = { + device = "rpool/local/nix"; + fsType = "zfs"; + }; - fileSystems."/tmp" = - { device = "rpool/local/tmp"; - fsType = "zfs"; - }; + fileSystems."/tmp" = { + device = "rpool/local/tmp"; + fsType = "zfs"; + }; - fileSystems."/var/log" = - { device = "rpool/system/var/log"; - fsType = "zfs"; - }; + fileSystems."/var/log" = { + device = "rpool/system/var/log"; + fsType = "zfs"; + }; - fileSystems."/var/tmp" = - { device = "rpool/system/var/tmp"; - fsType = "zfs"; - }; + fileSystems."/var/tmp" = { + device = "rpool/system/var/tmp"; + fsType = "zfs"; + }; - fileSystems."/boot" = - { device = "/dev/sda1"; - fsType = "ext2"; - }; + fileSystems."/boot" = { + device = "/dev/sda1"; + fsType = "ext2"; + }; 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.eno1.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/odyssey/hardware-configuration.nix b/hosts/odyssey/hardware-configuration.nix index d30c646..93157e0 100644 --- a/hosts/odyssey/hardware-configuration.nix +++ b/hosts/odyssey/hardware-configuration.nix @@ -5,63 +5,64 @@ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.kernelPackages = pkgs.linuxPackages; - boot.supportedFilesystems = [ "ntfs" ]; - boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; - - hardware.nvidia = { - modesetting.enable = true; - powerManagement.enable = true; + boot = { + initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + initrd.kernelModules = [ ]; + initrd.supportedFilesystems = [ "zfs" ]; + kernelModules = [ "kvm-intel" ]; + kernelPackages = pkgs.linuxPackages; + supportedFilesystems = [ "ntfs" ]; + binfmt.emulatedSystems = [ "aarch64-linux" ]; }; + + hardware = { + cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + nvidia = { + modesetting.enable = true; + powerManagement.enable = true; + }; + }; + services.xserver.videoDrivers = [ "nvidia" ]; - fileSystems."/" = - { device = "rpool/system/root"; - fsType = "zfs"; - }; + fileSystems."/" = { + device = "rpool/system/root"; + fsType = "zfs"; + }; - fileSystems."/home" = - { device = "rpool/user/home"; - fsType = "zfs"; - }; + fileSystems."/home" = { + device = "rpool/user/home"; + fsType = "zfs"; + }; - fileSystems."/var" = - { device = "rpool/system/var"; - fsType = "zfs"; - }; + fileSystems."/var" = { + device = "rpool/system/var"; + fsType = "zfs"; + }; - fileSystems."/tmp" = - { device = "rpool/local/tmp"; - fsType = "zfs"; - }; + fileSystems."/tmp" = { + device = "rpool/local/tmp"; + fsType = "zfs"; + }; - fileSystems."/var/log" = - { device = "rpool/system/var/log"; - fsType = "zfs"; - }; + fileSystems."/var/log" = { + device = "rpool/system/var/log"; + fsType = "zfs"; + }; - fileSystems."/var/tmp" = - { device = "rpool/system/var/tmp"; - fsType = "zfs"; - }; + fileSystems."/var/tmp" = { + device = "rpool/system/var/tmp"; + fsType = "zfs"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/E63E-8E75"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/E63E-8E75"; + fsType = "vfat"; + }; 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.eno1.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } From cad9ab738d7b7d3f37908b5df67e481df7f0dd1e Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Mon, 11 Dec 2023 18:32:45 +0000 Subject: [PATCH 3/3] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'nixpkgs': 'github:NixOS/nixpkgs/b4372c4924d9182034066c823df76d6eaf1f4ec4' (2023-12-07) → 'github:NixOS/nixpkgs/781e2a9797ecf0f146e81425c822dca69fe4a348' (2023-12-10) --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 6d1907e..89dedb1 100644 --- a/flake.lock +++ b/flake.lock @@ -118,11 +118,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1701952659, - "narHash": "sha256-TJv2srXt6fYPUjxgLAL0cy4nuf1OZD4KuA1TrCiQqg0=", + "lastModified": 1702233072, + "narHash": "sha256-H5G2wgbim2Ku6G6w+NSaQaauv6B6DlPhY9fMvArKqRo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b4372c4924d9182034066c823df76d6eaf1f4ec4", + "rev": "781e2a9797ecf0f146e81425c822dca69fe4a348", "type": "github" }, "original": {