From 890e44ebcc11c48f7347aa60748a84c48261aa5e Mon Sep 17 00:00:00 2001
From: Ben Sima <ben@bsima.me>
Date: Thu, 12 Nov 2020 17:13:39 -0800
Subject: Get Biz.Dev setup again

Also correctly renamed the files (didn't work the first time thanks to
the macOS filesystem) and moved the default build.os settings to a
OsBase.nix file to be used via imports.
---
 Biz/Dev/Configuration.nix | 248 ++++++++++++++++++++++++++++++++++++++++++++++
 Biz/Dev/Hardware.nix      |  36 +++++++
 Biz/Dev/configuration.nix | 213 ---------------------------------------
 Biz/Dev/hardware.nix      |  34 -------
 4 files changed, 284 insertions(+), 247 deletions(-)
 create mode 100644 Biz/Dev/Configuration.nix
 create mode 100644 Biz/Dev/Hardware.nix
 delete mode 100644 Biz/Dev/configuration.nix
 delete mode 100644 Biz/Dev/hardware.nix

(limited to 'Biz/Dev')

diff --git a/Biz/Dev/Configuration.nix b/Biz/Dev/Configuration.nix
new file mode 100644
index 0000000..70c2d36
--- /dev/null
+++ b/Biz/Dev/Configuration.nix
@@ -0,0 +1,248 @@
+{ config, lib, pkgs, ... }:
+
+let
+  murmurPort = 64738;
+  torrents = { from = 6000; to = 6999; };
+in {
+  networking = {
+    hostName = "lithium";
+    hosts = {
+      "::1" = [ "localhost" "ipv6-localhost" "ipv6-loopback" ];
+    };
+
+    firewall = {
+      allowedTCPPorts = [
+        22 8000 8443 443 # standard ports
+        8080 8081 8082 # mostly for urbit
+        500 10000 # no idea
+        8096 # emby/jellyfin
+        8112 # deluge
+        murmurPort
+      ];
+      allowedTCPPortRanges = [
+        { from = 3000; to = 3100; } # dev stuff
+        torrents
+      ];
+      allowedUDPPorts = [ murmurPort ];
+      allowedUDPPortRanges = [
+        torrents
+      ];
+      checkReversePath = false;
+    };
+
+    # The global useDHCP flag is deprecated, therefore explicitly set to false here.
+    # Per-interface useDHCP will be mandatory in the future, so this generated config
+    # replicates the default behaviour.
+    useDHCP = false;
+    interfaces.enp1s0.useDHCP = true;
+    interfaces.wlp0s20f0u4.useDHCP = true;
+
+    wireless.enable = true;  # Enables wireless support via wpa_supplicant.
+    wireless.interfaces = [ "wlp0s20f0u4" ];
+    wireless.networks = {
+      Simanet = {
+        psk = "1123581321";
+      };
+      Simanet-5g = {
+        psk = "1123581321";
+        priority = 1;
+      };
+    };
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.enableContainers = true;
+
+  powerManagement.enable = false;
+
+  time.timeZone = "America/Los_Angeles";
+
+  fonts.fonts = with pkgs; [
+    google-fonts mononoki source-code-pro fantasque-sans-mono hack-font
+    fira fira-code fira-code-symbols
+  ];
+
+  environment.systemPackages = [
+    #pkgs.wemux
+    pkgs.tmux
+  ];
+
+  nixpkgs = {
+    config = {
+      allowUnfree = true;
+      allowBroken = true;
+    };
+  };
+
+  hardware = {
+    opengl.enable = true;
+    pulseaudio = {
+      enable = true;
+      extraConfig = ''
+        load-module module-loopback
+      '';
+    };
+  };
+
+  programs = {
+    bash.enableCompletion = true;
+    command-not-found.enable = true;
+    gnupg.agent = {
+      enable = true;
+      enableSSHSupport = true;
+    };
+    mosh.enable = true;
+  };
+
+  virtualisation = {
+    docker = {
+      enable = true;
+      liveRestore = false;
+    };
+    libvirtd.enable = true;
+    virtualbox = {
+      host = {
+        enable = false;
+        headless = false;
+        addNetworkInterface = false;
+      };
+      guest = {
+        enable = false;
+        x11 = false;
+      };
+    };
+  };
+
+  services = {
+    pcscd.enable = true;
+    logind = {
+      lidSwitch = "ignore";
+      extraConfig = "IdleAction=ignore";
+    };
+
+    deluge = {
+      enable = true;
+      openFilesLimit = 10240;
+      web.enable = true;
+    };
+
+    printing.enable = true;
+
+    murmur = {
+      enable = true;
+      registerName = "simatime";
+      password = "simatime";
+      port = murmurPort;
+    };
+
+    xserver = {
+      enable = true;
+      autorun = true;
+      layout = "us";
+      xkbOptions = "caps:ctrl_modifier";
+      displayManager = {
+        sddm = {
+          enable = true;
+          enableHidpi = true;
+        };
+        #startx.enable = true;
+        session = [
+          {
+            manage = "desktop";
+            name = "home-manager";
+            start = ''
+              ${pkgs.runtimeShell} $HOME/.hm-xsession &
+              waitPID=$!
+            '';
+          }
+        ];
+      };
+      desktopManager = {
+        #kodi.enable = false;
+        #plasma5.enable = false;
+        xterm.enable = true;
+      };
+      windowManager = {
+        xmonad.enable = true;
+      };
+    };
+
+    jupyter = {
+      enable = false;
+      port = 3099;
+      ip = "*";
+      password = "'sha1:4b14a407cabe:fbab8e5400f3f4f3ffbdb00e996190d6a84bf51e'";
+      kernels = {
+        python3 = let
+          env = (pkgs.python3.withPackages (p: with p; [
+            ipykernel pandas scikitlearn numpy matplotlib sympy ipywidgets
+          ]));
+        in {
+          displayName = "py3";
+          argv = [
+            "${env.interpreter}"
+            "-m"
+            "ipykernel_launcher"
+            "-f"
+            "{connection_file}"
+          ];
+          language = "python";
+          #logo32 = "${env.sitePackages}/lib/python3.6/site-packages/ipykernel/resources/logo-32x32.png";
+          #logo64 = "${env.sitePackages}/lib/python3.6/site-packages/ipykernel/resources/logo-64x64.png";
+        };
+      };
+    };
+
+    jellyfin = { # previously emby
+      enable = true;
+      user = "jellyfin";
+      group = "jellyfin";
+    };
+
+    vnstat.enable = true;
+
+    postgresql = {
+      enable = true;
+      package = pkgs.postgresql_10;
+      authentication = ''
+        local all pprjam md5
+        local all pprjam_test md5
+      '';
+      enableTCPIP = true;
+    };
+    redis = {
+      enable = true;
+    };
+  };
+
+  documentation = {
+    enable = true;
+    dev.enable = true;
+    doc.enable = true;
+    info.enable = true;
+    man.enable = true;
+    nixos.enable = true;
+  };
+
+
+  nix = {
+    # 1 job * 2 cores = 2 maximum cores used at any one time
+    maxJobs = 1;
+    buildCores = 1;
+    # Since this is the dev machine, we can turn these on at the expense
+    # of extra disk space.
+    extraOptions = ''
+      keep-outputs = true
+      keep-derivations = true
+    '';
+    trustedUsers = [ "root" "ben" ];
+  };
+
+  # This value determines the NixOS release with which your system is to be
+  # compatible, in order to avoid breaking some software such as database
+  # servers. You should change this only after NixOS release notes say you
+  # should.
+  system.stateVersion = "20.09"; # Did you read the comment?
+}
diff --git a/Biz/Dev/Hardware.nix b/Biz/Dev/Hardware.nix
new file mode 100644
index 0000000..7f87f74
--- /dev/null
+++ b/Biz/Dev/Hardware.nix
@@ -0,0 +1,36 @@
+# Do not modify this file!  It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations.  Please make changes
+# to /etc/nixos/configuration.nix instead.
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+  imports =
+    [ (modulesPath + "/installer/scan/not-detected.nix")
+    ];
+
+  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
+  boot.kernelModules = [ "kvm-intel" ];
+  boot.extraModulePackages = [ ];
+
+  fileSystems."/" =
+    { device = "/dev/disk/by-uuid/f08dd8f9-787c-4e2a-a0cc-7019edc2ce2b";
+      fsType = "ext4";
+    };
+
+  fileSystems."/boot" =
+    { device = "/dev/disk/by-uuid/C67C-D7B5";
+      fsType = "vfat";
+    };
+
+  #fileSystems."/mnt/lake" =
+  #  { device = "/dev/disk/by-uuid/037df3ae-4609-402c-ab1d-4593190d0ee7";
+  #    fsType = "ext4";
+  #  };
+
+  swapDevices = [ ];
+
+  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+
+  # high-resolution display
+  hardware.video.hidpi.enable = lib.mkDefault true;
+}
diff --git a/Biz/Dev/configuration.nix b/Biz/Dev/configuration.nix
deleted file mode 100644
index 6664163..0000000
--- a/Biz/Dev/configuration.nix
+++ /dev/null
@@ -1,213 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-let
-  murmurPort = 64738;
-  torrents = { from = 6000; to = 6999; };
-in {
-  networking = {
-    hosts = {
-      "::1" = [ "localhost" "ipv6-localhost" "ipv6-loopback" ];
-    };
-
-    firewall = {
-      allowedTCPPorts = [
-        22 8000 8443 443 # standard ports
-        8080 8081 8082 # mostly for urbit
-        500 10000 # no idea
-        8096 # emby/jellyfin
-        8112 # deluge
-        murmurPort
-      ];
-      allowedTCPPortRanges = [
-        { from = 3000; to = 3100; } # dev stuff
-        torrents
-      ];
-      allowedUDPPorts = [ murmurPort ];
-      allowedUDPPortRanges = [
-        torrents
-      ];
-      checkReversePath = false;
-    };
-
-  };
-
-  # Use the systemd-boot EFI boot loader.
-  boot.loader.systemd-boot.enable = true;
-  boot.loader.efi.canTouchEfiVariables = true;
-  boot.enableContainers = true;
-
-  boot.initrd.luks.devices = {
-    root = {
-      device = "/dev/disk/by-uuid/a0160f25-e0e3-4af0-8236-3e298eac957a";
-      preLVM = true;
-    };
-  };
-
-  powerManagement.enable = false;
-
-  time.timeZone = "America/Los_Angeles";
-
-  fonts.fonts = with pkgs; [
-    google-fonts mononoki source-code-pro fantasque-sans-mono hack-font
-    fira fira-code fira-code-symbols
-  ];
-
-  environment.systemPackages = [ pkgs.wemux pkgs.tmux ];
-
-  nixpkgs = {
-    config = {
-      allowUnfree = true;
-      allowBroken = true;
-    };
-  };
-
-  hardware = {
-    opengl.enable = true;
-    pulseaudio = {
-      enable = true;
-      extraConfig = ''
-        load-module module-loopback
-      '';
-    };
-  };
-
-  programs = {
-    bash.enableCompletion = true;
-    command-not-found.enable = true;
-    gnupg.agent = {
-      enable = true;
-      enableSSHSupport = true;
-    };
-    mosh.enable = true;
-  };
-
-  virtualisation = {
-    docker = {
-      enable = true;
-      liveRestore = false;
-    };
-    libvirtd.enable = true;
-    virtualbox = {
-      host = {
-        enable = false;
-        headless = false;
-        addNetworkInterface = false;
-      };
-      guest = {
-        enable = false;
-        x11 = false;
-      };
-    };
-  };
-
-  services = {
-    pcscd.enable = true;
-    logind = {
-      lidSwitch = "ignore";
-      extraConfig = "IdleAction=ignore";
-    };
-
-    deluge = {
-      enable = true;
-      openFilesLimit = 10240;
-      web.enable = true;
-    };
-
-    printing.enable = true;
-
-    murmur = {
-      enable = true;
-      registerName = "simatime";
-      password = "simatime";
-      port = murmurPort;
-    };
-
-    xserver = {
-      enable = true;
-      layout = "us";
-      xkbOptions = "caps:ctrl_modifier";
-      displayManager.sddm.enable = true;
-      desktopManager = {
-        kodi.enable = true;
-        plasma5.enable = true;
-        xterm.enable = true;
-      };
-    };
-
-    jupyter = {
-      enable = false;
-      port = 3099;
-      ip = "*";
-      password = "'sha1:4b14a407cabe:fbab8e5400f3f4f3ffbdb00e996190d6a84bf51e'";
-      kernels = {
-        python3 = let
-          env = (pkgs.python3.withPackages (p: with p; [
-            ipykernel pandas scikitlearn numpy matplotlib sympy ipywidgets
-          ]));
-        in {
-          displayName = "py3";
-          argv = [
-            "${env.interpreter}"
-            "-m"
-            "ipykernel_launcher"
-            "-f"
-            "{connection_file}"
-          ];
-          language = "python";
-          #logo32 = "${env.sitePackages}/lib/python3.6/site-packages/ipykernel/resources/logo-32x32.png";
-          #logo64 = "${env.sitePackages}/lib/python3.6/site-packages/ipykernel/resources/logo-64x64.png";
-        };
-      };
-    };
-
-    jellyfin = { # previously emby
-      enable = true;
-      user = "jellyfin";
-      group = "jellyfin";
-    };
-
-    vnstat.enable = true;
-
-    postgresql = {
-      enable = true;
-      package = pkgs.postgresql_10;
-      authentication = ''
-        local all pprjam md5
-        local all pprjam_test md5
-      '';
-      enableTCPIP = true;
-    };
-    redis = {
-      enable = true;
-    };
-  };
-
-  documentation = {
-    enable = true;
-    dev.enable = true;
-    doc.enable = true;
-    info.enable = true;
-    man.enable = true;
-    nixos.enable = true;
-  };
-
-
-  nix = {
-    # 1 job * 2 cores = 2 maximum cores used at any one time
-    maxJobs = 1;
-    buildCores = 1;
-    # Since this is the dev machine, we can turn these on at the expense
-    # of extra disk space.
-    extraOptions = ''
-      keep-outputs = true
-      keep-derivations = true
-    '';
-    trustedUsers = [ "root" "ben" ];
-  };
-
-  # This value determines the NixOS release with which your system is to be
-  # compatible, in order to avoid breaking some software such as database
-  # servers. You should change this only after NixOS release notes say you
-  # should.
-  system.stateVersion = "17.09"; # Did you read the comment?
-}
diff --git a/Biz/Dev/hardware.nix b/Biz/Dev/hardware.nix
deleted file mode 100644
index fc0e7a0..0000000
--- a/Biz/Dev/hardware.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-# Do not modify this file!  It was generated by ‘nixos-generate-config’
-# and may be overwritten by future invocations.  Please make changes
-# to /etc/nixos/configuration.nix instead.
-{ config, lib, pkgs, ... }:
-
-{
-  imports =
-    [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
-    ];
-
-  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "sd_mod" ];
-  boot.kernelModules = [ "kvm-intel" ];
-  boot.extraModulePackages = [ ];
-
-  fileSystems."/" =
-    { device = "/dev/disk/by-uuid/0d8b0e52-10de-4af2-bcd9-b36278352e77";
-      fsType = "ext4";
-    };
-
-  fileSystems."/boot" =
-    { device = "/dev/disk/by-uuid/9B89-85C7";
-      fsType = "vfat";
-    };
-
-  fileSystems."/mnt/lake" =
-    { device = "/dev/disk/by-uuid/037df3ae-4609-402c-ab1d-4593190d0ee7";
-      fsType = "ext4";
-    };
-
-  swapDevices = [ ];
-
-  nix.maxJobs = lib.mkDefault 4;
-  powerManagement.cpuFreqGovernor = "powersave";
-}
-- 
cgit v1.2.3