From f25ada0c717b9e3855a771facdd0447382a4ddc0 Mon Sep 17 00:00:00 2001
From: root <root@atom.sea.fudo.org>
Date: Sat, 17 Apr 2021 12:32:53 -0700
Subject: [PATCH] Brought atom up to date

---
 config/hardware/atom.nix         | 47 ++++++++++++++++++++++++++++++++
 config/host-config/atom.nix      |  4 +--
 config/host-config/spark.nix     |  5 ----
 config/profile-config/common.nix |  5 ++++
 config/profile-config/laptop.nix | 28 ++++++++++++-------
 home-manager/niten.nix           |  1 +
 lib/fudo/git.nix                 |  2 --
 lib/fudo/wireless-networks.nix   |  2 +-
 packages/default.nix             | 15 ++++------
 9 files changed, 80 insertions(+), 29 deletions(-)
 create mode 100644 config/hardware/atom.nix

diff --git a/config/hardware/atom.nix b/config/hardware/atom.nix
new file mode 100644
index 0000000..4ea87f8
--- /dev/null
+++ b/config/hardware/atom.nix
@@ -0,0 +1,47 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> ];
+
+  system.stateVersion = "20.03";
+
+  boot = {
+    loader = {
+      grub = {
+        enable = true;
+        version = 2;
+        device = "/dev/sda";
+      };
+    };
+    initrd = {
+      availableKernelModules =
+        [ "ahci" "ohci_pci" "ehci_pci" "usb_storage" "ums_realtek" "sd_mod" ];
+      kernelModules = [ ];
+    };
+    kernelModules = [ "kvm-amd" ];
+    extraModulePackages = [ ];
+  };
+
+  fileSystems."/" = {
+    device = "/dev/disk/by-label/nixos-root";
+    fsType = "btrfs";
+  };
+
+  swapDevices = [{ device = "/dev/disk/by-label/nixos-swap"; }];
+
+  hardware = {
+    bluetooth.enable = true;
+
+    opengl = {
+      driSupport = true;
+      driSupport32Bit = true;
+    };
+
+    pulseaudio.support32Bit = true;
+
+    cpu.amd.updateMicrocode = true;
+  };
+
+  nix.maxJobs = lib.mkDefault 2;
+  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+}
diff --git a/config/host-config/atom.nix b/config/host-config/atom.nix
index abc7d91..5c2307c 100644
--- a/config/host-config/atom.nix
+++ b/config/host-config/atom.nix
@@ -1,9 +1,9 @@
 { config, lib, pkgs, ... }:
 
 {
-  fudo.laptop.use-network-manager = false;
+  fudo.profile.laptop.use-network-manager = false;
 
   fudo.slynk.enable = true;
 
-  services.xserver = { videoDrivers = [ "nvidia" ]; };
+  services.xserver = { videoDrivers = [ "radeon" ]; };
 }
diff --git a/config/host-config/spark.nix b/config/host-config/spark.nix
index e6b83d5..395ffbe 100644
--- a/config/host-config/spark.nix
+++ b/config/host-config/spark.nix
@@ -1,11 +1,6 @@
 { config, lib, pkgs, ... }:
 
 {
-  # TODO: remove?
-  nixpkgs.config.permittedInsecurePackages = [
-    "openssh-with-gssapi-8.4p1" # CVE-2021-28041
-  ];
-
   fudo.slynk.enable = true;
 
   networking = {
diff --git a/config/profile-config/common.nix b/config/profile-config/common.nix
index 6d387d6..b1c2cb3 100644
--- a/config/profile-config/common.nix
+++ b/config/profile-config/common.nix
@@ -17,6 +17,11 @@ in {
     # '';
   };
 
+  # TODO: remove?
+  nixpkgs.config.permittedInsecurePackages = [
+    "openssh-with-gssapi-8.4p1" # CVE-2021-28041
+  ];
+
   nixpkgs.config.allowUnfree = true;
   security.acme.acceptTerms = true;
 
diff --git a/config/profile-config/laptop.nix b/config/profile-config/laptop.nix
index 0df4bd8..dca0312 100644
--- a/config/profile-config/laptop.nix
+++ b/config/profile-config/laptop.nix
@@ -1,24 +1,32 @@
 { config, lib, pkgs, ... }:
 
+with lib;
 {
+  imports = [ ./common-ui.nix ];
+
   options.fudo.profile.laptop = {
     use-network-manager =
       mkEnableOption "Use NetworkManager instead of wpa_supplicant.";
   };
 
-  environment.systemPackages = with pkgs; [ acpi upower wpa_supplicant ];
+  config = {
 
-  networking = if (config.fudo.profile.laptop.use-network-manager) then {
-    networkmanager.enable = true;
-  } else {
-    networkmanager.enable = false;
-    wireless = {
-      enable = true;
-      userControlled = {
+    environment.systemPackages = with pkgs; [ acpi upower wpa_supplicant ];
+
+    networking = if (config.fudo.profile.laptop.use-network-manager) then {
+      networkmanager.enable = true;
+    } else {
+      networkmanager.enable = false;
+      wireless = {
         enable = true;
-        group = "wheel";
+        userControlled = {
+          enable = true;
+          group = "wheel";
+        };
+        networks = mapAttrs (network: networkOpts: {
+          psk = networkOpts.key;
+        }) config.fudo.wireless-networks;
       };
-      networks = config.fudo.wireless-networks;
     };
   };
 }
diff --git a/home-manager/niten.nix b/home-manager/niten.nix
index 58eeb6c..350194a 100644
--- a/home-manager/niten.nix
+++ b/home-manager/niten.nix
@@ -41,6 +41,7 @@ let
     nix-prefetch-git
     nmap
     openldap
+    openssl
     openttd
     pciutils
     pv
diff --git a/lib/fudo/git.nix b/lib/fudo/git.nix
index 2702280..31a7d9a 100644
--- a/lib/fudo/git.nix
+++ b/lib/fudo/git.nix
@@ -122,9 +122,7 @@ in {
         };
         settings = mkIf (cfg.ssh != null) {
           server = {
-            START_SSH_SERVER = true;
             SSH_DOMAIN = cfg.hostname;
-            # SSH_PORT = cfg.ssh.listen-port;
             SSH_LISTEN_PORT = cfg.ssh.listen-port;
             SSH_LISTEN_HOST = cfg.ssh.listen-ip;
           };
diff --git a/lib/fudo/wireless-networks.nix b/lib/fudo/wireless-networks.nix
index 23cf650..62ada27 100644
--- a/lib/fudo/wireless-networks.nix
+++ b/lib/fudo/wireless-networks.nix
@@ -19,7 +19,7 @@ let
 
 in {
   options.fudo.wireless-networks = mkOption {
-    type = with types; listOf (submodule networkOpts);
+    type = with types; attrsOf (submodule networkOpts);
     description = "A map of wireless networks to attributes (including key).";
     default = { };
   };
diff --git a/packages/default.nix b/packages/default.nix
index 495eb6b..7d5695f 100644
--- a/packages/default.nix
+++ b/packages/default.nix
@@ -79,9 +79,7 @@ in {
       bundlerEnv = pkgs.bundlerEnv;
     };
 
-    cl-gemini = import ./cl-gemini.nix {
-      inherit pkgs localLispPackages;
-    };
+    cl-gemini = import ./cl-gemini.nix { inherit pkgs localLispPackages; };
 
     fudo-service = import ./fudo-service.nix {
       fetchgit = pkgs.fetchgit;
@@ -139,19 +137,18 @@ in {
       #fi
     '';
 
-    localLispPackages = (import ./lisp {
-      inherit pkgs localLispPackages;
-    }) // pkgs.lispPackages;
+    localLispPackages = (import ./lisp { inherit pkgs localLispPackages; })
+      // pkgs.lispPackages;
 
     backplane-dns-server = import ./backplane-dns-server.nix {
       inherit localLispPackages;
       pkgs = unstablePkgs;
     };
 
-    doom-emacs-config = pkgs.fetchgit {
+    doom-emacs-config = builtins.fetchGit {
       url = "https://git.fudo.org/niten/doom-emacs.git";
-      rev = "c57d6712e358a9941b1de3508b104ffd38099a3a";
-      sha256 = "1b2aw06irmv3xha6rhqlw3lmy6qxv281j4w91c8af0qsvhcq9g1y";
+      # rev = "c57d6712e358a9941b1de3508b104ffd38099a3a";
+      # sha256 = "1b2aw06irmv3xha6rhqlw3lmy6qxv281j4w91c8af0qsvhcq9g1y";
     };
 
     vanilla-forum = import ./vanilla-forum.nix { pkgs = pkgs; };