diff --git a/config/silversin/config.nix b/config/silversin/config.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6a9d74c7d1e66298d4b9d7c52cc0cbcb217825f8
--- /dev/null
+++ b/config/silversin/config.nix
@@ -0,0 +1,39 @@
+{config, pkgs, lib, inputs, modulesPath, flake, ...}:
+{
+ config.desktop.enable = true;
+ config.desktop.default_session = "sway";
+ config.desktop.dm_use_wayland = true;
+ config.laptop.enable = true;
+ config.screens.primary = "eDP-1";
+ config.screens.primary_orientation = "normal";
+ config.screens.primary_pos = "0 0 res 1920x1200";
+ #config.screens.secondary = "";
+ #config.screens.secondary_orientation = "";
+ #config.screens.secondary_pos = "";
+ config.screens.has_secondary = false;
+
+ config.swaybar.font_size = 12.0;
+ config.sway.inner_gap = 10;
+ config.sway.outer_gap = 10;
+
+ imports = [
+ ../common.nix
+ ../../users/myself/freemo
+ ../../pkgs/desktop
+ ../../pkgs/security
+ ../../pkgs/dev
+ ../../pkgs/editor
+ ../../pkgs/web_browser
+ ../../pkgs/terminal
+ ../../pkgs/shell
+ ../../pkgs/util
+ ../../pkgs/communication
+ ../../pkgs/multimedia
+ ../../pkgs/gaming
+ ../../pkgs/disk
+ ../../pkgs/database
+ ../../pkgs/social_media
+ ../../pkgs/virtualisation
+ ../../pkgs/productivity
+ ];
+}
diff --git a/config/silversin/default.nix b/config/silversin/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e7a1f13568bddb5a40c6c58c29511e59dd6b2481
--- /dev/null
+++ b/config/silversin/default.nix
@@ -0,0 +1,79 @@
+{ config, pkgs, lib, inputs, modulesPath, flake, ... }:
+
+{
+ imports =
+ [
+ ./config.nix
+ ../../pkgs/hardware/location/philadelphia
+ ../../pkgs/hardware/locale/en_us
+ ../../pkgs/hardware/common
+ ../../pkgs/hardware/common/laptop
+ ];
+
+ networking.hostName = "silversin";
+
+ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
+ boot.initrd.kernelModules = [ "dm-snapshot" ];
+ boot.kernelModules = [ "kvm-intel" "v4l2loopback" ];
+ boot.extraModulePackages = with pkgs; [ config.boot.kernelPackages.v4l2loopback.out ];
+
+ # Setup keyfile
+ boot.initrd.secrets = {
+ "/crypto_keyfile.bin" = null;
+ };
+
+ fileSystems."/" =
+ { device = "/dev/mapper/vg_main-root";
+ fsType = "btrfs";
+ options = [ "subvol=root" ];
+ };
+
+ fileSystems."/home" =
+ { device = "/dev/mapper/vg_main-root";
+ fsType = "btrfs";
+ options = [ "subvol=home" ];
+ };
+
+ fileSystems."/boot/efi" =
+ { device = "/dev/disk/by-uuid/CCC2-5AFE";
+ fsType = "vfat";
+ };
+
+ swapDevices =
+ [ { device = "/dev/disk/by-uuid/cf0e3eb9-f7c4-426a-a8cf-66e7d4867def"; }
+ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+
+ luks = {
+ # Support for Yubikey PBA
+ yubikeySupport = true;
+
+ devices."pv_main" = {
+ device = "/dev/disk/by-uuid/83988b6e-ad46-4fc7-b133-db1a3941d0b6"; # nvme0n1p2
+ preLVM = true; # You may want to set this to false if you need to start a network service first
+ yubikey = {
+ slot = 2;
+ twoFactor = true; # Set to false for 1FA
+ #gracePeriod = 30; # Time in seconds to wait for Yubikey to be inserted
+ keyLength = 64; # Set to $KEY_LENGTH/8
+ saltLength = 16; # Set to $SALT_LENGTH
+
+ storage = {
+ device = "/dev/disk/by-uuid/CCC2-5AFE"; #nvme0n1p1
+ fsType = "vfat";
+ path = "/crypt-storage/default";
+ };
+ };
+ };
+ };
+ system.stateVersion = "23.11";
+}
diff --git a/flake.nix b/flake.nix
index ac36ea4c2d9dfdf920dd46021c77466a808f9d2a..136bd79c2cf5f2297671c204830f3e87729cb2ac 100644
--- a/flake.nix
+++ b/flake.nix
@@ -76,6 +76,14 @@
./config/envy
];
};
+ silversin = self.lib.mkLinuxSystem {
+ imports = [
+ stylix.nixosModules.stylix
+ self.nixosModules.home-manager
+ inputs.agenix.nixosModules.default
+ ./config/silversin
+ ];
+ };
hermes = self.lib.mkLinuxSystem {
imports = [
#stylix.nixosModules.stylix