From 0704db64052e6f0b292a1b586e2ff99debff25e3 Mon Sep 17 00:00:00 2001 From: Daylin Morgan Date: Wed, 3 Jul 2024 10:52:28 -0500 Subject: [PATCH] more refactoring --- hosts/othalan/default.nix | 56 ++++++++++++++----------------- hosts/othalan/pkgs.nix | 10 ++++++ lib/default.nix | 2 ++ modules/languages/zig.nix | 2 +- modules/oizys.nix | 1 + modules/users/default.nix | 10 +++--- modules/virtualization/docker.nix | 14 +++++--- 7 files changed, 54 insertions(+), 41 deletions(-) create mode 100644 hosts/othalan/pkgs.nix diff --git a/hosts/othalan/default.nix b/hosts/othalan/default.nix index 22b079b..1b73d92 100644 --- a/hosts/othalan/default.nix +++ b/hosts/othalan/default.nix @@ -1,31 +1,28 @@ -{ pkgs, enabled, ... }: +{ enableAttrs, ... }: { - oizys = { - desktop = enabled; - hyprland = enabled; - chrome = enabled; - docker = enabled; - nix-ld = enabled; - vbox = enabled; - vpn = enabled; - backups = enabled; - languages = [ - "misc" - "nim" - "node" - "nushell" - "python" - "roc" - "tex" - "zig" - ]; - }; - - environment.systemPackages = with pkgs; [ - zk - quarto - cachix - ]; + oizys = + (enableAttrs [ + "vpn" + "desktop" + "hyprland" + "chrome" + "docker" + "nix-ld" + "vbox" + "backups" + ]) + // { + languages = [ + "misc" + "nim" + "node" + "nushell" + "python" + "roc" + "tex" + "zig" + ]; + }; services.restic.backups.gdrive = { user = "daylin"; @@ -37,8 +34,5 @@ ]; }; - users.users.daylin.extraGroups = [ - "docker" - "audio" - ]; + users.users.daylin.extraGroups = [ "audio" ]; } diff --git a/hosts/othalan/pkgs.nix b/hosts/othalan/pkgs.nix new file mode 100644 index 0000000..01779b8 --- /dev/null +++ b/hosts/othalan/pkgs.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + zk + quarto + cachix + graphviz + nix-du + ]; +} diff --git a/lib/default.nix b/lib/default.nix index e7078df..f7d30d7 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -16,6 +16,7 @@ let mkDefaultOizysModule mkOizysModule enabled + enableAttrs ; inherit (lib.filesystem) listFilesRecursive; @@ -43,6 +44,7 @@ let mkDefaultOizysModule mkOizysModule enabled + enableAttrs hostName ; }; diff --git a/modules/languages/zig.nix b/modules/languages/zig.nix index 04dc965..6848411 100644 --- a/modules/languages/zig.nix +++ b/modules/languages/zig.nix @@ -10,7 +10,7 @@ let cfg = config.oizys.languages; zig = inputs.zig2nix.outputs.packages.${pkgs.system}.zig.default.bin; zls = inputs.zls.outputs.packages.${pkgs.system}.default.overrideAttrs { - nativeBuildInputs = [zig]; + nativeBuildInputs = [ zig ]; }; in { diff --git a/modules/oizys.nix b/modules/oizys.nix index 9c8b28e..854987d 100644 --- a/modules/oizys.nix +++ b/modules/oizys.nix @@ -40,6 +40,7 @@ in ]; options.oizys.desktop.enable = mkEnableOption "is desktop"; + options.oizys.docker.enable = mkEnableOption "enable docker support"; config = { networking.hostName = hostName; time.timeZone = "US/Central"; diff --git a/modules/users/default.nix b/modules/users/default.nix index 2cda361..4710541 100644 --- a/modules/users/default.nix +++ b/modules/users/default.nix @@ -5,8 +5,10 @@ ... }: let - inherit (lib) mkOption mkIf types; + inherit (lib) mkOption mkIf types optional; cfg = config.users.defaultUser; + isDocker = config.oizys.docker.enable; + isDesktop = config.oizys.desktop.enable; in { options.users.defaultUser = mkOption { @@ -22,10 +24,8 @@ in isNormalUser = true; shell = pkgs.zsh; - extraGroups = [ - "wheel" # sudo - "docker" - ]; + extraGroups = [ "wheel" ] ++ optional isDesktop "audio" ++ optional isDocker "docker"; + initialHashedPassword = "$2b$05$mGMrDFzf2cXLaoOlVQbGvOBV7UZlDt9dLg9Xqxutb/uHpjF5VrTBO"; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKkezPIhB+QW37G15ZV3bewydpyEcNlYxfHLlzuk3PH9" diff --git a/modules/virtualization/docker.nix b/modules/virtualization/docker.nix index 95c13b3..7ab2eb8 100644 --- a/modules/virtualization/docker.nix +++ b/modules/virtualization/docker.nix @@ -1,10 +1,16 @@ { pkgs, config, - mkOizysModule, + lib, ... }: -mkOizysModule config "docker" { - virtualisation.docker.enable = true; - environment.systemPackages = with pkgs; [ lazydocker ]; +let + inherit (lib) mkIf; + cfg = config.oizys.docker; +in +{ + config = mkIf cfg.enable { + virtualisation.docker.enable = true; + environment.systemPackages = with pkgs; [ lazydocker ]; + }; }