From fa1a81c7f4a5c6c68d430c001e49c7f60d2630fe Mon Sep 17 00:00:00 2001 From: notgne2 Date: Tue, 27 Dec 2022 03:06:01 -0700 Subject: [PATCH] Clean up module exports and add module to allow Nix to use an SSH agent --- common.nix | 4 +- flake.nix | 79 +++++++++++++++++++------------- home-manager/common.nix | 4 +- home-manager/modules/default.nix | 20 -------- home-manager/modules/ezpcusr.nix | 4 +- modules/default.nix | 18 -------- modules/nix-ssh-agent.nix | 29 ++++++++++++ 7 files changed, 81 insertions(+), 77 deletions(-) delete mode 100644 home-manager/modules/default.nix delete mode 100644 modules/default.nix create mode 100644 modules/nix-ssh-agent.nix diff --git a/common.nix b/common.nix index 889a66c..7078347 100644 --- a/common.nix +++ b/common.nix @@ -1,11 +1,11 @@ -{ +all: { config, pkgs, lib, options, ... }: { - imports = [./modules]; + imports = [all]; config = { services.haveged.enable = lib.mkDefault true; diff --git a/flake.nix b/flake.nix index db654ba..b87fb53 100644 --- a/flake.nix +++ b/flake.nix @@ -79,41 +79,54 @@ nixpkgs, ... } @ inputs: { - nixosModules = { - ezpassthru = import ./modules/ezpassthru.nix; - ezwg = import ./modules/ezwg.nix; - kiosk = import ./modules/kiosk.nix; - fuckingprint = import ./modules/fuckingprint.nix; - workstation = import ./modules/workstation.nix; - ezpw = import ./modules/ezpw.nix; - de2 = import ./modules/de2.nix; - de3 = import ./modules/de3.nix; - ezpc = import ./modules/ezpc.nix; - all = import ./modules/default.nix; - }; + nixosModules = let + m = { + ezpassthru = import ./modules/ezpassthru.nix; + ezwg = import ./modules/ezwg.nix; + kiosk = import ./modules/kiosk.nix; + fuckingprint = import ./modules/fuckingprint.nix; + workstation = import ./modules/workstation.nix; + ezpw = import ./modules/ezpw.nix; + de2 = import ./modules/de2.nix; + de3 = import ./modules/de3.nix; + ezpc = import ./modules/ezpc.nix; + nix-ssh-agent = import ./modules/nix-ssh-agent.nix; + }; + in + m + // rec { + all = {...}: { + imports = builtins.attrValues m; + }; - homeManagerModules = { - ezpcusr = import ./home-manager/modules/ezpcusr.nix inputs; - colors = import ./home-manager/modules/colors.nix inputs; - fonts = import ./home-manager/modules/fonts.nix; - gaming = import ./home-manager/modules/gaming.nix inputs; - kermit = import ./home-manager/modules/kermit.nix; - de2u = import ./home-manager/modules/de2u.nix inputs; - de3u = import ./home-manager/modules/de3u.nix inputs; - elvish = import ./home-manager/modules/elvish.nix inputs; - all = import ./home-manager/modules/default.nix inputs; - }; + common = import ./common.nix all; + common-notgne2 = import ./users/notgne2.nix; + common-glooder = import ./users/glooder.nix; + common-chekkie = import ./users/chekkie.nix; + }; - # Not really modules? but eh - nixosModules.common = import ./common.nix; - nixosModules.common-notgne2 = import ./users/notgne2.nix; - nixosModules.common-glooder = import ./users/glooder.nix; - nixosModules.common-chekkie = import ./users/chekkie.nix; + homeManagerModules = let + m = { + ezpcusr = import ./home-manager/modules/ezpcusr.nix inputs; + colors = import ./home-manager/modules/colors.nix inputs; + fonts = import ./home-manager/modules/fonts.nix; + gaming = import ./home-manager/modules/gaming.nix inputs; + kermit = import ./home-manager/modules/kermit.nix; + de2u = import ./home-manager/modules/de2u.nix inputs; + de3u = import ./home-manager/modules/de3u.nix inputs; + elvish = import ./home-manager/modules/elvish.nix inputs; + }; + in + m + // rec { + all = {...}: { + imports = builtins.attrValues m; + }; - homeManagerModules.common = import ./home-manager/common.nix inputs; - homeManagerModules.common-notgne2 = - import ./home-manager/users/notgne2.nix inputs; - homeManagerModules.common-glooder = import ./home-manager/users/glooder.nix; - homeManagerModules.common-chekkie = import ./home-manager/users/chekkie.nix; + common = import ./home-manager/common.nix inputs all; + common-notgne2 = import ./home-manager/users/notgne2.nix inputs; + common-glooder = import ./home-manager/users/glooder.nix; + common-chekkie = import ./home-manager/users/chekkie.nix; + }; }; } diff --git a/home-manager/common.nix b/home-manager/common.nix index d80faa0..38687cc 100644 --- a/home-manager/common.nix +++ b/home-manager/common.nix @@ -1,11 +1,11 @@ -inputs: { +inputs: all: { config, lib, pkgs, ... }: { imports = [ - (import ./modules inputs) + all "${inputs.home-manager-clipman}/modules/services/clipman.nix" inputs.hyprland.homeManagerModules.default ]; diff --git a/home-manager/modules/default.nix b/home-manager/modules/default.nix deleted file mode 100644 index 09f5ba0..0000000 --- a/home-manager/modules/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -inputs: { - config, - lib, - pkgs, - ... -}: { - imports = [ - (lib.mkAliasOptionModule ["ezpcusr" "gaming"] ["gaming" "enable"]) - (lib.mkAliasOptionModule ["ezpcusr" "newWine"] ["gaming" "newWine"]) - - (import ./ezpcusr.nix inputs) - (import ./colors.nix inputs) - (import ./gaming.nix inputs) - ./fonts.nix - ./kermit.nix - (import ./de2u.nix inputs) - (import ./de3u.nix inputs) - ./elvish.nix - ]; -} diff --git a/home-manager/modules/ezpcusr.nix b/home-manager/modules/ezpcusr.nix index 228d6c4..d25105a 100644 --- a/home-manager/modules/ezpcusr.nix +++ b/home-manager/modules/ezpcusr.nix @@ -33,12 +33,12 @@ in { options = { lockTime = mkOption { type = types.int; - default = 300; + default = 600; description = "Time until your screen locks"; }; offTime = mkOption { type = types.int; - default = 600; + default = 900; description = "Time until your screen turns off"; }; }; diff --git a/modules/default.nix b/modules/default.nix deleted file mode 100644 index 1fa815f..0000000 --- a/modules/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: { - imports = [ - ./ezwg.nix - ./kiosk.nix - ./ezpassthru.nix - ./fuckingprint.nix - ./workstation.nix - ./ezpw.nix - ./de2.nix - ./de3.nix - ./ezpc.nix - ]; -} diff --git a/modules/nix-ssh-agent.nix b/modules/nix-ssh-agent.nix new file mode 100644 index 0000000..94335c1 --- /dev/null +++ b/modules/nix-ssh-agent.nix @@ -0,0 +1,29 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.nix.ssh-agent; +in { + options.nix.ssh-agent = { + sock = lib.mkOption { + description = "SSH agent socket for Nix to use"; + default = "/run/user/1000/ssh-agent"; + type = lib.types.str; + }; + }; + + config = lib.mkIf (cfg.sock != null) { + systemd.services.ssh-agent-nix-proxy = { + wantedBy = [ "nix-daemon.service" ]; + before = [ "nix-daemon.service" ]; + partOf = [ "nix-daemon.service" ]; + serviceConfig = { + ExecStart = "${pkgs.socat}/bin/socat UNIX-LISTEN:/run/nix-ssh-agent,mode=770,group=nixbld,user=root,reuseaddr UNIX-CONNECT:${cfg.sock}"; + }; + }; + + nix.envVars.SSH_AUTH_SOCK = "/run/nix-ssh-agent"; + }; +}