From 2e49ac333476d23bed3ff864bd45e1e32146fa57 Mon Sep 17 00:00:00 2001 From: Christoph Heiss Date: Thu, 8 Jun 2023 21:38:44 +0200 Subject: [PATCH] machines: Add configuration for zero; new workstation Signed-off-by: Christoph Heiss --- default.nix | 2 +- machines/zero.nix | 78 +++++++++++++++++++++++++++++++++++++++++++ secrets/my.nix | Bin 1374 -> 1510 bytes system/ucode-amd.nix | 6 ++++ 4 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 machines/zero.nix create mode 100644 system/ucode-amd.nix diff --git a/default.nix b/default.nix index c8466d4..9099e0d 100644 --- a/default.nix +++ b/default.nix @@ -20,4 +20,4 @@ in { pkgs = import pinnedPkgs { overlays = [ (import ./pkgs) ]; }; description = "c8h4.io infrastructure"; }; -} // (builtins.listToAttrs (map mkMachine [ "name" "serv" "trek" ])) +} // (builtins.listToAttrs (map mkMachine [ "name" "serv" "trek" "zero" ])) diff --git a/machines/zero.nix b/machines/zero.nix new file mode 100644 index 0000000..2840c79 --- /dev/null +++ b/machines/zero.nix @@ -0,0 +1,78 @@ +{ my, pkgs, ... }: + +{ + imports = [ ../system/desktop.nix ../system/ucode-amd.nix ]; + + system.stateVersion = "23.05"; + + boot.initrd.availableKernelModules = + [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/B369-D2FE"; + fsType = "vfat"; + }; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/5151f79a-fca4-45d4-8bd9-66f157a1d51f"; + fsType = "btrfs"; + options = [ "subvol=@" ]; + }; + + fileSystems."/home" = { + device = "/dev/disk/by-uuid/5151f79a-fca4-45d4-8bd9-66f157a1d51f"; + fsType = "btrfs"; + options = [ "subvol=@home" ]; + }; + + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/5151f79a-fca4-45d4-8bd9-66f157a1d51f"; + fsType = "btrfs"; + options = [ "subvol=@nix" ]; + }; + + fileSystems."/var/log" = { + device = "/dev/disk/by-uuid/5151f79a-fca4-45d4-8bd9-66f157a1d51f"; + fsType = "btrfs"; + options = [ "subvol=@log" ]; + }; + + fileSystems."/storage/bunker" = { + device = "tank.c8h4.io:/tank/bunker"; + fsType = "nfs"; + options = [ + "noauto" + "noexec" + "x-systemd.automount" + "x-systemd.mount-timeout=10s" + "_netdev" + ]; + }; + + networking = my.homelab.networking // { + interfaces.eno1 = my.machines.zero.eno1 // { wakeOnLan.enable = true; }; + }; + + home-manager.users.christoph = { + my.emails.personal.enable = true; + + wayland.windowManager.sway.config = let + inherit (my.machines.zero) displays; + # Assigns five workspaces, starting at `base`, to output `output`. + makeWorkspaceOutputAssignList = base: output: + builtins.genList (x: { + inherit output; + workspace = toString (base + x); + }) 5; + in { + workspaceOutputAssign = + (makeWorkspaceOutputAssignList 1 (builtins.elemAt displays 0)) + ++ (makeWorkspaceOutputAssignList 6 (builtins.elemAt displays 1)); + + assigns = { + "6" = [{ app_id = "firefox"; }]; + "7" = [{ class = "Spotify"; }]; + }; + }; + }; +} diff --git a/secrets/my.nix b/secrets/my.nix index e92fab6b4424d8909dc342223749bb07e7a763c3..a34975d011bf88a4da889ca061e448beee38db04 100644 GIT binary patch literal 1510 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 diff --git a/system/ucode-amd.nix b/system/ucode-amd.nix new file mode 100644 index 0000000..b6aba13 --- /dev/null +++ b/system/ucode-amd.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = [ pkgs.microcodeAmd ]; + hardware.cpu.amd.updateMicrocode = true; +}