diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..1cd7de3
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+secrets/** filter=git-crypt diff=git-crypt 
diff --git a/home b/home
new file mode 120000
index 0000000..7ce0149
--- /dev/null
+++ b/home
@@ -0,0 +1 @@
+users/minion/
\ No newline at end of file
diff --git a/scripts/update-home b/scripts/update-home
new file mode 100755
index 0000000..71d853a
--- /dev/null
+++ b/scripts/update-home
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cd "$(dirname ${BASH_SOURCE[0]})/.."
+
+home-manager switch -f ./users/minion/home.nix
diff --git a/scripts/update-nix b/scripts/update-nix
new file mode 100755
index 0000000..7ea7705
--- /dev/null
+++ b/scripts/update-nix
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cd "$(dirname ${BASH_SOURCE[0]})/.."
+
+sudo nixos-rebuild switch -I nixos-config=./system/configuration.nix
diff --git a/scripts/upgrade-home b/scripts/upgrade-home
new file mode 100755
index 0000000..2b74d7e
--- /dev/null
+++ b/scripts/upgrade-home
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cd "$(dirname ${BASH_SOURCE[0]})/.."
+nix-channel --update
+home-manager switch -f ./users/minion/home.nix
diff --git a/scripts/upgrade-nix b/scripts/upgrade-nix
new file mode 100755
index 0000000..ff73187
--- /dev/null
+++ b/scripts/upgrade-nix
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cd "$(dirname ${BASH_SOURCE[0]})/.."
+sudo nix-channel --update
+sudo scripts/update-nix
diff --git a/secrets/networking-configuration.nix b/secrets/networking-configuration.nix
new file mode 100644
index 0000000..746756d
--- /dev/null
+++ b/secrets/networking-configuration.nix
Binary files differ
diff --git a/system/configuration.nix b/system/configuration.nix
new file mode 100644
index 0000000..3f54043
--- /dev/null
+++ b/system/configuration.nix
@@ -0,0 +1,170 @@
+# Edit this configuration file to define what should be installed on
+# your system.  Help is available in the configuration.nix(5) man page
+# and in the NixOS manual (accessible by running ‘nixos-help’).
+
+{ config, pkgs, lib, ... }:
+
+{
+  imports =
+    [ # Include the results of the hardware scan.
+      ./hardware-configuration.nix
+      ./networking-configuration.nix
+      ./packaging-configuration.nix
+#      ./eduroam.nix
+    ];
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable apparmor
+  security.apparmor.enable = true;
+  security.apparmor.killUnconfinedConfinables = true;
+
+  # Set your time zone.
+  time.timeZone = "Europe/London";
+
+  # Select internationalisation properties.
+  i18n.defaultLocale = "en_US.UTF-8";
+  console = {
+    font = "Lat2-Terminus16";
+    keyMap = "uk";
+  };
+
+  # Enable the X11 windowing system.
+  services.xserver = {
+    enable = true;
+    desktopManager = {
+      xterm.enable = false;
+      # xfce.enable = true;
+    };
+    displayManager.sddm.enable = true;
+  };
+
+  # And wayland
+  programs.sway = {
+    enable = true;
+    wrapperFeatures.gtk = true; # so that gtk works properly
+    extraPackages = with pkgs; [
+      swaylock
+      swayidle
+      wl-clipboard
+      mako # notification daemon
+      alacritty # Alacritty is the default terminal in the config
+      dmenu # Dmenu is the default in the config but i recommend wofi since its wayland native
+    ];
+  };
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+ 
+
+  # Permit and install steam
+  nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
+    "steam"
+    "steam-original"
+    "steam-runtime"
+  ];
+
+  programs.steam.enable = true;
+
+
+  # Enable CUPS to print documents.
+  services.printing.enable = true;
+
+  # Enable sound.
+  sound.enable = true;
+  hardware.pulseaudio.enable = false;
+  services.pipewire = {
+    enable = true;
+    alsa = {
+      enable = true;
+      support32Bit = true;
+    };
+    pulse.enable = true;
+  };
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
+  };
+
+  # List packages installed in system profile. To search, run:
+  # $ nix search wget
+  environment.systemPackages = with pkgs; [
+    vim  # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
+    ((emacsPackagesNgGen emacs).emacsWithPackages (epkgs: [
+      epkgs.vterm
+      epkgs.emacsql-sqlite
+    ]))  # Emacs + vterm-module (needed for vterm)
+    wget
+    firefox
+    chromium  # Install chromium if needed
+    texlive.combined.scheme-full
+    keybase  # Install keybase
+    keybase-gui
+    kbfs
+  ];
+
+#  environment.systemPackages = [
+#    import /scripts/jetbrains.rider.nix
+#  ];
+
+  fonts.fonts = with pkgs; [
+    nerdfonts
+    noto-fonts
+    noto-fonts-cjk
+    noto-fonts-emoji
+    liberation_ttf
+    fira-code
+    fira-code-symbols
+    mplus-outline-fonts
+    dina-font
+    proggyfonts
+    roboto
+  ];
+
+  # Some programs need SUID wrappers, can be configured further or are
+  # started in user sessions.
+  programs.mtr.enable = true;
+  programs.gnupg.agent = {
+    enable = true;
+    enableSSHSupport = true;
+  };
+
+  # List services that you want to enable:
+
+  # Enable the OpenSSH daemon.
+  services.openssh.enable = true;
+  services.keybase.enable = true;
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+
+  # This value determines the NixOS release from which the default
+  # settings for stateful data, like file locations and database versions
+  # on your system were taken. It‘s perfectly fine and recommended to leave
+  # this value at the release version of the first install of this system.
+  # Before changing this value read the documentation for this option
+  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
+  system.stateVersion = "21.11"; # Did you read the comment?
+
+}
+
diff --git a/system/hardware-configuration.nix b/system/hardware-configuration.nix
new file mode 100644
index 0000000..e880c67
--- /dev/null
+++ b/system/hardware-configuration.nix
@@ -0,0 +1,32 @@
+# 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" "nvme" "usbhid" "sd_mod" ];
+  boot.initrd.kernelModules = [ ];
+  boot.kernelModules = [ "kvm-intel" ];
+  boot.extraModulePackages = [ ];
+
+  fileSystems."/" =
+    { device = "/dev/disk/by-label/nixos";
+      fsType = "ext4";
+    };
+
+  fileSystems."/boot" =
+    { device = "/dev/disk/by-label/boot";
+      fsType = "vfat";
+    };
+
+  swapDevices =
+    [ { device = "/dev/disk/by-label/swap"; }
+    ];
+
+  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/system/networking/eduroam.cert b/system/networking/eduroam.cert
new file mode 100644
index 0000000..d123edb
--- /dev/null
+++ b/system/networking/eduroam.cert
@@ -0,0 +1,69 @@
+-----BEGIN CERTIFICATE-----
+MIIFMDCCAxigAwIBAgIQEAqsl0MxuKtBuQsPCsogATANBgkqhkiG9w0BAQsFADAX
+MRUwEwYDVQQDEwxIUlNGQy1Sb290Q0EwHhcNMjAxMTI2MDgyNTQ3WhcNMzAxMTI3
+MDgzNTQ0WjAXMRUwEwYDVQQDEwxIUlNGQy1Sb290Q0EwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC8I1QGmVL5AwEZ8WP9GG79Uh/iI1mTbXzXgV/U9avZ
+mNz75MysrQOE02N2Ru0zndJCnxyQXEeU53Ke9ULAvkwAx2SzCUZVW+wAi3u8KfdR
+o5gqgJvv5PtjGl4mchwHQwtDfXVEtFZNW1QO7X+lYtO2bRj6UWUeS7EztfCLoI82
+ns3nQchfS9dVEaiCssAAb6HlLgcEXpHlnh6HtPyJY2JgK71gBVDS6O+0/X7yNmhZ
+L6qUDc0KMyqPTtPaJ+aaFL0mL1klCLdUHmZUU5XRSF7VUWk9bKr+OdktXi+DzDl0
+Y+vDn/6PIXsmBbCRaT5W9eltpVXduw0Hz2XPy1pZsJe58nR/mTiuqtnUDMCWfrkQ
+g4Fqpq/4uMZJAh4cgBxINRokbT6IQxN0AQKYuLIRUD5HHvpZx6e5EZzBC0k8OCSh
+Q09FYtnAM+PhPYQdWTbJtXeGLVP4+qaU4gzG9vSL5O6FhHQPkoTHCE6XMPp/eOoZ
+Jc02HzNkyMKJdir5MKMkfeo1sokWd+r8m/OtLLbL6nt9Vui2EHfg3rASDRaCMg/8
+EsnDWBV99c0uCHPYKz7rJWhokYaTAfJYawMaAWGjg4P4FGxDKBT/Y/KWVDOtUGwv
+Do7xgMT0O4D478vQzlAwsIduPpd01jrX8IzlWYzSSOPB2sNJpvP6gwqWDXsHttqT
+XwIDAQABo3gwdjALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQU/UEos9yTNCaPwsmwjAUl/rOilbwwEgYJKwYBBAGCNxUBBAUCAwMAAzAjBgkr
+BgEEAYI3FQIEFgQUR5E2/ASzTprFTTFdSabkYg1gwOEwDQYJKoZIhvcNAQELBQAD
+ggIBAJfpRRynnv1cp1BpwRA5nBrQ9DAl8uT8WBrQ/LTlKlJzgN9fPo1d5rnkstud
+qdLKasJ7BkFthaFpsOtX5aAt/srqREKBKKxHiC3C//dgIyKRaoEJ5B+q2fBoAibj
+iPdNW08jGtjAtQ4MyqpeaY35+LXe5Co+erbE/g4WivYbv0dJPOLi9sRL4QvqXigD
+FqZEFFd6Fs4QU6H/aVTxP/FAz4XGCFgyeP7OcyWZLRj1ixAMYSyMXfgHQ8dGQ5dC
+RNqMtbih2SOMgI6dD6i4XJc/FBSbJkxL08ZlzY/qZ7tFT7DNXPC8M4jlYFPP6bWr
+LnYsQtI72m79bSQjGkEwJNo+V33PZ8ufufHf6THY/UXzu2u0KWkb1DWtFpkPlHdk
+b70PvFe0ZnHPYlZckiHaiR4rUatozkCzD2SmeQEqizE6QIqNp7hlmJIw4t4duDAH
+zZvf9OYt+QWpI+Sw5IZEDO1B1zB/UmxeVv0745x0ayqdvFzCx+PGGJxehXp5YM2r
+v9p/3ocmlhbUHy953+ZUSkP/AvpYpk4wdG6jRKJWEpNlCkedurOWnkWmWo+oQewT
+wHDigtKfE+Z42CfTzmHo36cIGzTx14SR/iXAyxCV7nzXnw7/5LwPzbANKqmIAQ8T
+AT21Vbp7usaBybWavmR5pr0QT+FsJpAknY133qjDYgdM8aFw
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG5TCCBM2gAwIBAgITKwAAAA2gPAg6oMbubAADAAAADTANBgkqhkiG9w0BAQsF
+ADAXMRUwEwYDVQQDEwxIUlNGQy1Sb290Q0EwHhcNMjAxMTI2MDkyMDI3WhcNMjUx
+MTI2MDkzMDI3WjBVMRIwEAYKCZImiZPyLGQBGRYCdWsxEjAQBgoJkiaJk/IsZAEZ
+FgJhYzEVMBMGCgmSJomT8ixkARkWBWhyc2ZjMRQwEgYDVQQDEwtIUlNGQy1TdWJD
+QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMP9WRS/ubE7B85JGmPE
+I3m1gpN3IgoNPF85R12N8JwA/Iv1SGJCEc+zFV8HbVZmjlzkK8TORS5Evea0AKLH
+wH1tz2O+0VryobiXbsePIt5/NqD0AdkqOjjqdEPvJ/DfzJFo1w/kZ61BQDeYYjSA
+WrjBik/B+t0V3kmgydfLc6gCXgRCTyALidIfl+MRQv4LjsGbS4wsFIbfA+0t6j8o
+cbIZVc5tLTRmlkFc82DtiuiF4UbenUjprIS5Eh8eHCuoxeQ/2PLSiNYyj2pR/Ffw
+RNvIiLrEKPeNTmCXjsPrvu30DXfRQiPsXrCTNzVkIgZ2ij4YETpv5Xhb4+sgXskg
+HMECAwEAAaOCAuowggLmMBIGCSsGAQQBgjcVAQQFAgMEAAQwIwYJKwYBBAGCNxUC
+BBYEFJEQQO1OoJb3BHU8hNYM7T6ys7u8MB0GA1UdDgQWBBQx57P8PUqJzCZ/w3KZ
+kv78NulVBzARBgNVHSAECjAIMAYGBFUdIAAwGQYJKwYBBAGCNxQCBAweCgBTAHUA
+YgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU
+/UEos9yTNCaPwsmwjAUl/rOilbwwggEKBgNVHR8EggEBMIH+MIH7oIH4oIH1hoG7
+bGRhcDovLy9DTj1IUlNGQy1Sb290Q0EoMyksQ049SFItUm9vdENBLENOPUNEUCxD
+Tj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1
+cmF0aW9uLERDPWhyc2ZjLERDPWFjLERDPXVrP2NlcnRpZmljYXRlUmV2b2NhdGlv
+bkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludIY1aHR0
+cDovL2hyLWFwcGxpY2F0aW9ucy9DZXJ0RW5yb2xsL0hSU0ZDLVJvb3RDQSgzKS5j
+cmwwggEPBggrBgEFBQcBAQSCAQEwgf4wga4GCCsGAQUFBzAChoGhbGRhcDovLy9D
+Tj1IUlNGQy1Sb290Q0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2Vz
+LENOPVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9aHJzZmMsREM9YWMsREM9
+dWs/Y0FDZXJ0aWZpY2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25B
+dXRob3JpdHkwSwYIKwYBBQUHMAKGP2h0dHA6Ly9oci1hcHBsaWNhdGlvbnMvQ2Vy
+dEVucm9sbC9IUi1Sb290Q0FfSFJTRkMtUm9vdENBKDMpLmNydDANBgkqhkiG9w0B
+AQsFAAOCAgEACutwRp9MOFElg0p5DhsrAWSzAYQx1IW0BR1uFB5ED8myUvj0tVK2
+yNFhm6Ei+rVmQa+9yOdHZUd1F6QU+CgG64WMJAJu9PI30HswBzPfqHW8fqEbc46o
+KKN0bOx40KchiqYE7gTdAI6h4xcJ4Fm5cqAQ2x/yWLbGSctobMiQ8enB60F2P6h5
+LgU7x6RHT/qrFhUnbS/9z5e2R3StPsAerP9s1rqqNe1URhoitn/KkhKjYVTu5cdm
+1jvssTO+Ao+Q2nJhNKViOE4YJ8tK+aFZWRylcwLFywovc5ig0Fv0pr3yjIX4Udqj
+2K/QcB4FwSdSZL2YOXL6aeLYritYNzOmqqPA8gzaEQbdYgjtShql6G1CLbOtdJsg
+ax9ZpVKbI44ehvw00bX3BzD3u+XJhrLzu9LnmsYavXvs1CkQedMeI5XvNNtjetDZ
+8hGgmiBMZW2OYGoixEMHEnOOO8uUe3GmvwjRO3BiwPJsJIidzw8QuHVaECefMxrW
+5l6e86ABasq8j5w4av7mcP5xhkq1E9poICfqrONlW/K/SzGohHY84QxafWOCG/x0
+/IgcFcUFVS3qZYweQnRd/CoXPFQTVdL9uOQ+nqrTJnO3cn5KV7Hlf0w3m/NZWifs
+LXR1jQgXyPEddg0cOT4OrrvmTFMGyN9Lnej6z/wxgsL7X9a/fcwbfQM=
+-----END CERTIFICATE-----
diff --git a/system/packaging-configuration.nix b/system/packaging-configuration.nix
new file mode 100644
index 0000000..6ea58ea
--- /dev/null
+++ b/system/packaging-configuration.nix
@@ -0,0 +1,9 @@
+{ config, pkgs, options, ... }: {
+  # Apply custom packaging overlays for compatability
+  nix.nixPath =
+    # Prepend default nixPath values.
+    options.nix.nixPath.default ++
+    # Append our nixpkgs-overlays.
+    [ "nixpkgs-overlays=/etc/nixos/overlays/" ]
+  ;
+}
diff --git a/users/minion/config.nix b/users/minion/config.nix
new file mode 100644
index 0000000..69baf10
--- /dev/null
+++ b/users/minion/config.nix
@@ -0,0 +1 @@
+{ allowUnfree = true; }
diff --git a/users/minion/home.nix b/users/minion/home.nix
new file mode 100644
index 0000000..1c62898
--- /dev/null
+++ b/users/minion/home.nix
@@ -0,0 +1,62 @@
+{ config, pkgs, ... }:
+
+{
+  # Home Manager needs a bit of information about you and the
+  # paths it should manage.
+  home.username = "minion";
+  home.homeDirectory = "/home/minion";
+
+  programs.vscode.enable = true;
+  programs.vscode.package = pkgs.vscode-fhs;
+
+  programs.go.enable = true;
+
+  # programs.steam.enable = true;
+
+  programs.gpg.enable = true;
+  services.gpg-agent = {
+    enable = true;
+    pinentryFlavor = "qt";
+  };
+
+  home.packages = with pkgs; [
+    steam-tui steam-run
+    minecraft
+    git-crypt gnupg pinentry_qt
+  ];
+
+  programs.git = {
+    enable = true;
+
+    userName = "Skyler Turner";
+    userEmail = "skyler@clicksminuteper.net";
+
+    signing = {
+      key = "24D31D3B1B986F33";
+      signByDefault = true;
+      gpgPath = "gpg2";
+    };
+
+    lfs.enable = true;
+    delta.enable = true;
+
+    extraConfig = {
+      init.defaultBranch = "development";
+      color.ui = "auto";
+      core.autocrlf = "input";
+    };
+  };
+
+  # This value determines the Home Manager release that your
+  # configuration is compatible with. This helps avoid breakage
+  # when a new Home Manager release introduces backwards
+  # incompatible changes.
+  #
+  # You can update Home Manager without changing this value. See
+  # the Home Manager release notes for a list of state version
+  # changes in each release.
+  home.stateVersion = "21.11";
+
+  # Let Home Manager install and manage itself.
+  programs.home-manager.enable = true;
+}
