diff --git a/.history/home/home_20220302103816.nix b/.history/home/home_20220302103816.nix
new file mode 100644
index 0000000..0051cb0
--- /dev/null
+++ b/.history/home/home_20220302103816.nix
@@ -0,0 +1,137 @@
+{ config, pkgs, nixpkgs, ... }:
+let
+  username = "minion";
+  homedir = "/home/${username}";
+
+  comma = import ( pkgs.fetchFromGitHub {
+      owner = "nix-community";
+      repo = "comma";
+      rev = "02e3e5545b0c62595a77f3d5de1223c536af0614";
+      sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
+  }) {};
+
+in {
+  # Home Manager needs a bit of information about you and the
+  # paths it should manage.
+  home.username = username;
+  home.homeDirectory = homedir;
+
+  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";
+  };
+
+  nixpkgs.overlays = [ 
+    (import ./overlays/anytype.nix)
+    (import ./overlays/mindustry.nix)
+    (import ./overlays/nur.nix)
+  ];
+
+  home.packages = with pkgs; [
+    steam-tui steam-run
+    minecraft
+    git-crypt gnupg pinentry_qt
+    spotify
+    keepassxc
+    grim slurp
+    neovim helix
+    qemu
+    bind
+    file
+    nur.repos.kira-bruneau.rofi-wayland
+    rofimoji
+    anytype-latest
+    htop
+    hue-cli
+    comma
+    zip
+    mindustry-alpha-wayland
+    nodejs-17_x
+    element
+    tdesktop
+  ];
+
+  programs.zsh = {
+    enable = true;
+    oh-my-zsh = {
+       enable = true;
+      plugins = [ "git" ];
+      theme = "crunch";
+    };
+    history = {
+      size = 10000;
+      path = "${config.xdg.dataHome}/zsh/history";
+      expireDuplicatesFirst = true;
+      extended = true;
+    };
+    initExtra = ''
+      bindkey "\'\'$\{key[Up]}" up-line-or-search
+
+      command_not_found_handler ()
+      {
+      #     echo "Command '$1' not found, searching for it in the Nix store..."
+      #     , $@
+          local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
+          if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
+              "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
+             if [ $? = 126 ]; then
+                  "$@";
+              else
+                  return 127;
+              fi;
+          else
+              echo "$1: command not found" 1>&2;
+              return 127;
+          fi
+      }
+    '';
+    enableSyntaxHighlighting = true;
+    enableAutosuggestions = true;
+    autocd = true;
+    dotDir = ".local/share/zsh";
+  };
+
+  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";
+      pull.rebase = false;
+    };
+  };
+
+  # 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;
+}
diff --git a/.history/home/home_20220304211833.nix b/.history/home/home_20220304211833.nix
new file mode 100644
index 0000000..d7a3995
--- /dev/null
+++ b/.history/home/home_20220304211833.nix
@@ -0,0 +1,117 @@
+{ config, pkgs, nixpkgs, ... }:
+let
+  username = "minion";
+  homedir = "/home/${username}";
+
+  comma = import ( pkgs.fetchFromGitHub {
+      owner = "nix-community";
+      repo = "comma";
+      rev = "02e3e5545b0c62595a77f3d5de1223c536af0614";
+      sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
+  }) {};
+
+in {
+  # Home Manager needs a bit of information about you and the
+  # paths it should manage.
+  home.username = username;
+  home.homeDirectory = homedir;
+
+  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";
+  };
+
+  nixpkgs.overlays = [ 
+    (import ./overlays/anytype.nix)
+    (import ./overlays/mindustry.nix)
+    (import ./overlays/nur.nix)
+  ];
+
+  home.packages = with pkgs; [
+
+  ];
+
+  programs.zsh = {
+    enable = true;
+    oh-my-zsh = {
+       enable = true;
+      plugins = [ "git" ];
+      theme = "crunch";
+    };
+    history = {
+      size = 10000;
+      path = "${config.xdg.dataHome}/zsh/history";
+      expireDuplicatesFirst = true;
+      extended = true;
+    };
+    initExtra = ''
+      bindkey "\'\'$\{key[Up]}" up-line-or-search
+
+      command_not_found_handler ()
+      {
+      #     echo "Command '$1' not found, searching for it in the Nix store..."
+      #     , $@
+          local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
+          if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
+              "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
+             if [ $? = 126 ]; then
+                  "$@";
+              else
+                  return 127;
+              fi;
+          else
+              echo "$1: command not found" 1>&2;
+              return 127;
+          fi
+      }
+    '';
+    enableSyntaxHighlighting = true;
+    enableAutosuggestions = true;
+    autocd = true;
+    dotDir = ".local/share/zsh";
+  };
+
+  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";
+      pull.rebase = false;
+    };
+  };
+
+  # 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;
+}
diff --git a/.history/home/home_20220304215813.nix b/.history/home/home_20220304215813.nix
new file mode 100644
index 0000000..a807cd1
--- /dev/null
+++ b/.history/home/home_20220304215813.nix
@@ -0,0 +1,115 @@
+{ config, pkgs, nixpkgs, ... }:
+let
+  username = "minion";
+  homedir = "/home/${username}";
+
+  comma = import ( pkgs.fetchFromGitHub {
+      owner = "nix-community";
+      repo = "comma";
+      rev = "02e3e5545b0c62595a77f3d5de1223c536af0614";
+      sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
+  }) {};
+
+in {
+  # Home Manager needs a bit of information about you and the
+  # paths it should manage.
+  home.username = username;
+  home.homeDirectory = homedir;
+
+
+  programs.go.enable = true;
+
+  # programs.steam.enable = true;
+
+  programs.gpg.enable = true;
+  services.gpg-agent = {
+    enable = true;
+    pinentryFlavor = "qt";
+  };
+
+  nixpkgs.overlays = [ 
+    (import ./overlays/anytype.nix)
+    (import ./overlays/mindustry.nix)
+    (import ./overlays/nur.nix)
+  ];
+
+  home.packages = with pkgs; [
+
+  ];
+
+  programs.zsh = {
+    enable = true;
+    oh-my-zsh = {
+       enable = true;
+      plugins = [ "git" ];
+      theme = "crunch";
+    };
+    history = {
+      size = 10000;
+      path = "${config.xdg.dataHome}/zsh/history";
+      expireDuplicatesFirst = true;
+      extended = true;
+    };
+    initExtra = ''
+      bindkey "\'\'$\{key[Up]}" up-line-or-search
+
+      command_not_found_handler ()
+      {
+      #     echo "Command '$1' not found, searching for it in the Nix store..."
+      #     , $@
+          local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
+          if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
+              "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
+             if [ $? = 126 ]; then
+                  "$@";
+              else
+                  return 127;
+              fi;
+          else
+              echo "$1: command not found" 1>&2;
+              return 127;
+          fi
+      }
+    '';
+    enableSyntaxHighlighting = true;
+    enableAutosuggestions = true;
+    autocd = true;
+    dotDir = ".local/share/zsh";
+  };
+
+  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";
+      pull.rebase = false;
+    };
+  };
+
+  # 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;
+}
diff --git a/.history/home/home_20220304220729.nix b/.history/home/home_20220304220729.nix
new file mode 100644
index 0000000..c068d19
--- /dev/null
+++ b/.history/home/home_20220304220729.nix
@@ -0,0 +1,76 @@
+{ config, pkgs, nixpkgs, ... }:
+let
+  username = "minion";
+  homedir = "/home/${username}";
+
+  comma = import ( pkgs.fetchFromGitHub {
+      owner = "nix-community";
+      repo = "comma";
+      rev = "02e3e5545b0c62595a77f3d5de1223c536af0614";
+      sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
+  }) {};
+
+in {
+  # Home Manager needs a bit of information about you and the
+  # paths it should manage.
+  home.username = username;
+  home.homeDirectory = homedir;
+
+
+  programs.go.enable = true;
+
+  # programs.steam.enable = true;
+
+  programs.gpg.enable = true;
+  services.gpg-agent = {
+    enable = true;
+    pinentryFlavor = "qt";
+  };
+
+  nixpkgs.overlays = [ 
+    (import ./overlays/anytype.nix)
+    (import ./overlays/mindustry.nix)
+    (import ./overlays/nur.nix)
+  ];
+
+  home.packages = with pkgs; [
+
+  ];
+
+
+  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";
+      pull.rebase = false;
+    };
+  };
+
+  # 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;
+}
diff --git a/.history/home/home_20220304220747.nix b/.history/home/home_20220304220747.nix
new file mode 100644
index 0000000..a807cd1
--- /dev/null
+++ b/.history/home/home_20220304220747.nix
@@ -0,0 +1,115 @@
+{ config, pkgs, nixpkgs, ... }:
+let
+  username = "minion";
+  homedir = "/home/${username}";
+
+  comma = import ( pkgs.fetchFromGitHub {
+      owner = "nix-community";
+      repo = "comma";
+      rev = "02e3e5545b0c62595a77f3d5de1223c536af0614";
+      sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
+  }) {};
+
+in {
+  # Home Manager needs a bit of information about you and the
+  # paths it should manage.
+  home.username = username;
+  home.homeDirectory = homedir;
+
+
+  programs.go.enable = true;
+
+  # programs.steam.enable = true;
+
+  programs.gpg.enable = true;
+  services.gpg-agent = {
+    enable = true;
+    pinentryFlavor = "qt";
+  };
+
+  nixpkgs.overlays = [ 
+    (import ./overlays/anytype.nix)
+    (import ./overlays/mindustry.nix)
+    (import ./overlays/nur.nix)
+  ];
+
+  home.packages = with pkgs; [
+
+  ];
+
+  programs.zsh = {
+    enable = true;
+    oh-my-zsh = {
+       enable = true;
+      plugins = [ "git" ];
+      theme = "crunch";
+    };
+    history = {
+      size = 10000;
+      path = "${config.xdg.dataHome}/zsh/history";
+      expireDuplicatesFirst = true;
+      extended = true;
+    };
+    initExtra = ''
+      bindkey "\'\'$\{key[Up]}" up-line-or-search
+
+      command_not_found_handler ()
+      {
+      #     echo "Command '$1' not found, searching for it in the Nix store..."
+      #     , $@
+          local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
+          if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
+              "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
+             if [ $? = 126 ]; then
+                  "$@";
+              else
+                  return 127;
+              fi;
+          else
+              echo "$1: command not found" 1>&2;
+              return 127;
+          fi
+      }
+    '';
+    enableSyntaxHighlighting = true;
+    enableAutosuggestions = true;
+    autocd = true;
+    dotDir = ".local/share/zsh";
+  };
+
+  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";
+      pull.rebase = false;
+    };
+  };
+
+  # 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;
+}
diff --git a/.history/home/home_20220304220756.nix b/.history/home/home_20220304220756.nix
new file mode 100644
index 0000000..978a049
--- /dev/null
+++ b/.history/home/home_20220304220756.nix
@@ -0,0 +1,77 @@
+{ config, pkgs, nixpkgs, ... }:
+let
+  username = "minion";
+  homedir = "/home/${username}";
+
+  comma = import ( pkgs.fetchFromGitHub {
+      owner = "nix-community";
+      repo = "comma";
+      rev = "02e3e5545b0c62595a77f3d5de1223c536af0614";
+      sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
+  }) {};
+
+in {
+  # Home Manager needs a bit of information about you and the
+  # paths it should manage.
+  home.username = username;
+  home.homeDirectory = homedir;
+
+
+  programs.go.enable = true;
+
+  # programs.steam.enable = true;
+
+  programs.gpg.enable = true;
+  services.gpg-agent = {
+    enable = true;
+    pinentryFlavor = "qt";
+  };
+
+  nixpkgs.overlays = [ 
+    (import ./overlays/anytype.nix)
+    (import ./overlays/mindustry.nix)
+    (import ./overlays/nur.nix)
+  ];
+
+  home.packages = with pkgs; [
+
+  ];
+
+
+
+  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";
+      pull.rebase = false;
+    };
+  };
+
+  # 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;
+}
diff --git a/.history/home/home_20220304220938.nix b/.history/home/home_20220304220938.nix
new file mode 100644
index 0000000..6b78b00
--- /dev/null
+++ b/.history/home/home_20220304220938.nix
@@ -0,0 +1,55 @@
+{ config, pkgs, nixpkgs, ... }:
+let
+  username = "minion";
+  homedir = "/home/${username}";
+
+  comma = import ( pkgs.fetchFromGitHub {
+      owner = "nix-community";
+      repo = "comma";
+      rev = "02e3e5545b0c62595a77f3d5de1223c536af0614";
+      sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
+  }) {};
+
+in {
+  # Home Manager needs a bit of information about you and the
+  # paths it should manage.
+  home.username = username;
+  home.homeDirectory = homedir;
+
+
+  programs.go.enable = true;
+
+  # programs.steam.enable = true;
+
+  programs.gpg.enable = true;
+  services.gpg-agent = {
+    enable = true;
+    pinentryFlavor = "qt";
+  };
+
+  nixpkgs.overlays = [ 
+    (import ./overlays/anytype.nix)
+    (import ./overlays/mindustry.nix)
+    (import ./overlays/nur.nix)
+  ];
+
+  home.packages = with pkgs; [
+
+  ];
+
+
+
+
+  # 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;
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302082907.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302082907.nix
new file mode 100644
index 0000000..32de1ff
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302082907.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; hash = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092111.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092111.nix
new file mode 100644
index 0000000..6e6e153
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092111.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092117.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092117.nix
new file mode 100644
index 0000000..2f184d5
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092117.nix
@@ -0,0 +1,22 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092127.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092127.nix
new file mode 100644
index 0000000..96b5dc1
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092127.nix
@@ -0,0 +1,22 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    s
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092131.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092131.nix
new file mode 100644
index 0000000..61b811d
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092131.nix
@@ -0,0 +1,22 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    src
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092139.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092139.nix
new file mode 100644
index 0000000..6797b8e
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092139.nix
@@ -0,0 +1,23 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+    
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092145.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092145.nix
new file mode 100644
index 0000000..7115748
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092145.nix
@@ -0,0 +1,23 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+    src.flake = false;
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092213.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092213.nix
new file mode 100644
index 0000000..6e6e153
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092213.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092215.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092215.nix
new file mode 100644
index 0000000..5d536e1
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092215.nix
@@ -0,0 +1,22 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092216.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092216.nix
new file mode 100644
index 0000000..1dac757
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092216.nix
@@ -0,0 +1,27 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+
+    s
+rc.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+    s
+rc.flake = false;
+
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092221.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092221.nix
new file mode 100644
index 0000000..edde977
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092221.nix
@@ -0,0 +1,26 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+    
+  inputs.s
+rc.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+    s
+rc.flake = false;
+
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092225.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092225.nix
new file mode 100644
index 0000000..a9e2b7c
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092225.nix
@@ -0,0 +1,25 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+  
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+    s
+rc.flake = false;
+
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092226.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092226.nix
new file mode 100644
index 0000000..0752552
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092226.nix
@@ -0,0 +1,25 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+    s
+rc.flake = false;
+
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092230.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092230.nix
new file mode 100644
index 0000000..26db362
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092230.nix
@@ -0,0 +1,23 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092239.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092239.nix
new file mode 100644
index 0000000..10bb642
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092239.nix
@@ -0,0 +1,23 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092315.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092315.nix
new file mode 100644
index 0000000..121ebde
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092315.nix
@@ -0,0 +1,22 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092321.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092321.nix
new file mode 100644
index 0000000..21b04c5
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092321.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092325.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092325.nix
new file mode 100644
index 0000000..59a02f8
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092325.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092342.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092342.nix
new file mode 100644
index 0000000..8332665
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092342.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092344.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092344.nix
new file mode 100644
index 0000000..78bb21d
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092344.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092452.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092452.nix
new file mode 100644
index 0000000..93ed200
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092452.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin ";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092457.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092457.nix
new file mode 100644
index 0000000..31dbb4e
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092457.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/lib/* $out/lib";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092459.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092459.nix
new file mode 100644
index 0000000..35fb2a8
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092459.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/lib/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092505.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092505.nix
new file mode 100644
index 0000000..9d8410b
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092505.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092509.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092509.nix
new file mode 100644
index 0000000..6b40166
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092509.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin $";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092510.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092510.nix
new file mode 100644
index 0000000..48b44f6
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092510.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin ";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092514.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092514.nix
new file mode 100644
index 0000000..e1207be
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092514.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin && rm ";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092516.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092516.nix
new file mode 100644
index 0000000..d2b6202
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092516.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "https://github.com/AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin && rm -rf $out/bin/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092611.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092611.nix
new file mode 100644
index 0000000..aaa5e69
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092611.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = "github:AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin && rm -rf $out/bin/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092619.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092619.nix
new file mode 100644
index 0000000..8d116ad
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092619.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = github:AndroidDumps/Firmware_extractor.git";
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin && rm -rf $out/bin/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092624.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092624.nix
new file mode 100644
index 0000000..5eae93f
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092624.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = github:AndroidDumps/Firmware_extractor;
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin && rm -rf $out/bin/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092651.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092651.nix
new file mode 100644
index 0000000..4394d0e
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092651.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = github:AndroidDumps/Firmware_extractor;
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs, src }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin && rm -rf $out/bin/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092709.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092709.nix
new file mode 100644
index 0000000..4394d0e
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092709.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = github:AndroidDumps/Firmware_extractor;
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs, src }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin && rm -rf $out/bin/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092713.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092713.nix
new file mode 100644
index 0000000..6fcf4f1
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092713.nix
@@ -0,0 +1,22 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = github:AndroidDumps/Firmware_extractor;
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs, src }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        inherit src;
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin && rm -rf $out/bin/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092750.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092750.nix
new file mode 100644
index 0000000..2c3928b
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220302092750.nix
@@ -0,0 +1,22 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = github:AndroidDumps/Firmware_extractor;
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs, src }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        inherit src;
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220304091156.nix b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220304091156.nix
new file mode 100644
index 0000000..2c3928b
--- /dev/null
+++ b/.history/packages/com.github.androiddumps.firmware_extractor/flake_20220304091156.nix
@@ -0,0 +1,22 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  inputs.src.url = github:AndroidDumps/Firmware_extractor;
+  inputs.src.flake = false;
+
+  outputs = { self, nixpkgs, src }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        inherit src;
+        name = "partition-tools";
+        installPhase = "mkdir -p $out/bin && cp ${src}/tools/Linux/bin/* $out/bin && cp ${src}/tools/Linux/bin/bin/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080455.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080455.nix
new file mode 100644
index 0000000..94f2327
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080455.nix
@@ -0,0 +1,11 @@
+{
+  description = "A very basic flake";
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080549.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080549.nix
new file mode 100644
index 0000000..29eff46
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080549.nix
@@ -0,0 +1,11 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080600.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080600.nix
new file mode 100644
index 0000000..c8922a9
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080600.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080609.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080609.nix
new file mode 100644
index 0000000..9a84f3d
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080609.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = ""
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080613.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080613.nix
new file mode 100644
index 0000000..229668f
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080613.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs = 
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080620.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080620.nix
new file mode 100644
index 0000000..dcadd93
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080620.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = 
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080622.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080622.nix
new file mode 100644
index 0000000..8a622be
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080622.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080625.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080625.nix
new file mode 100644
index 0000000..cd6429b
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080625.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:Nix
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080628.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080628.nix
new file mode 100644
index 0000000..70d9d26
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080628.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080632.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080632.nix
new file mode 100644
index 0000000..299cb0d
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080632.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080635.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080635.nix
new file mode 100644
index 0000000..4c8540c
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080635.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080636.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080636.nix
new file mode 100644
index 0000000..534616c
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080636.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080640.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080640.nix
new file mode 100644
index 0000000..1e08f1f
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080640.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080745.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080745.nix
new file mode 100644
index 0000000..5764a9c
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080745.nix
@@ -0,0 +1,15 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = {
+      
+    };
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080756.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080756.nix
new file mode 100644
index 0000000..1a4c6c7
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080756.nix
@@ -0,0 +1,15 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = {
+
+    };
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080805.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080805.nix
new file mode 100644
index 0000000..1e08f1f
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080805.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080813.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080813.nix
new file mode 100644
index 0000000..b913a60
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080813.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.hello;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080816.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080816.nix
new file mode 100644
index 0000000..2116f99
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080816.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools = nixpkgs.legacyPackages.x86_64-linux.hello;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080824.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080824.nix
new file mode 100644
index 0000000..0704ba0
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080824.nix
@@ -0,0 +1,13 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools = nixpkg;
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080831.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080831.nix
new file mode 100644
index 0000000..ba6fe49
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080831.nix
@@ -0,0 +1,15 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools = mkDerivation {
+      
+    };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080928.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080928.nix
new file mode 100644
index 0000000..2b0f365
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080928.nix
@@ -0,0 +1,14 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools = 
+      with import nixpkgs { system = "x" }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080935.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080935.nix
new file mode 100644
index 0000000..6d9b1b3
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080935.nix
@@ -0,0 +1,14 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools = 
+      with import nixpkgs { system = "x86_64-linux"; }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080938.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080938.nix
new file mode 100644
index 0000000..6259918
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080938.nix
@@ -0,0 +1,14 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080944.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080944.nix
new file mode 100644
index 0000000..f041526
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080944.nix
@@ -0,0 +1,15 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mk
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080946.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080946.nix
new file mode 100644
index 0000000..2dc51e9
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080946.nix
@@ -0,0 +1,15 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation 
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080949.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080949.nix
new file mode 100644
index 0000000..2773e9d
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080949.nix
@@ -0,0 +1,17 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080950.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080950.nix
new file mode 100644
index 0000000..a39c53a
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080950.nix
@@ -0,0 +1,18 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080956.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080956.nix
new file mode 100644
index 0000000..dd0cceb
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302080956.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "
+        
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081003.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081003.nix
new file mode 100644
index 0000000..7d53d19
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081003.nix
@@ -0,0 +1,18 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081033.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081033.nix
new file mode 100644
index 0000000..8ad9990
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081033.nix
@@ -0,0 +1,18 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081036.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081036.nix
new file mode 100644
index 0000000..24c1c0b
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081036.nix
@@ -0,0 +1,18 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" }
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081038.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081038.nix
new file mode 100644
index 0000000..20fa2dd
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081038.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081049.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081049.nix
new file mode 100644
index 0000000..b1436f0
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081049.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        build
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081053.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081053.nix
new file mode 100644
index 0000000..dd901f8
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081053.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPh
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081057.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081057.nix
new file mode 100644
index 0000000..fa71efd
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081057.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = unpackPhase;
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081059.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081059.nix
new file mode 100644
index 0000000..54b80a6
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081059.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = unpackPhase;
+        
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081102.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081102.nix
new file mode 100644
index 0000000..d6c6500
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081102.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = ""
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081136.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081136.nix
new file mode 100644
index 0000000..a5ead18
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081136.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "ta"
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081138.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081138.nix
new file mode 100644
index 0000000..b390554
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081138.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar "
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081140.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081140.nix
new file mode 100644
index 0000000..a695399
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081140.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081143.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081143.nix
new file mode 100644
index 0000000..d68a4d3
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081143.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz ";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081145.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081145.nix
new file mode 100644
index 0000000..2aba8b1
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081145.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081153.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081153.nix
new file mode 100644
index 0000000..1f4ebfe
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081153.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && gcc";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081157.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081157.nix
new file mode 100644
index 0000000..ed33628
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081157.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && ";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081252.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081252.nix
new file mode 100644
index 0000000..bfe9079
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081252.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ ";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081255.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081255.nix
new file mode 100644
index 0000000..56cc6c7
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081255.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081258.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081258.nix
new file mode 100644
index 0000000..93e1eed
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081258.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o *.";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081300.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081300.nix
new file mode 100644
index 0000000..a037f6f
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081300.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o *.cc ";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081305.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081305.nix
new file mode 100644
index 0000000..2f42f51
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081305.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc ";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081318.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081318.nix
new file mode 100644
index 0000000..f9dc26d
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081318.nix
@@ -0,0 +1,19 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081321.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081321.nix
new file mode 100644
index 0000000..d1c8501
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081321.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081346.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081346.nix
new file mode 100644
index 0000000..19dcc5f
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081346.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        install
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081353.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081353.nix
new file mode 100644
index 0000000..14aa7b5
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081353.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mk"
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081354.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081354.nix
new file mode 100644
index 0000000..f1dc5b6
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081354.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkd"
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081355.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081355.nix
new file mode 100644
index 0000000..be8a59d
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081355.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out $out/bin/partition-tools";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081358.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081358.nix
new file mode 100644
index 0000000..ee1b592
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081358.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out $out/bin/.";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081401.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081401.nix
new file mode 100644
index 0000000..eeaaa89
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081401.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out $out/bin/";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081408.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081408.nix
new file mode 100644
index 0000000..cd2bf8a
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081408.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out $out/bin";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081410.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081410.nix
new file mode 100644
index 0000000..02fc56e
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081410.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/ $out/bin";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081412.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081412.nix
new file mode 100644
index 0000000..632a1b3
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081412.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz" };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081436.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081436.nix
new file mode 100644
index 0000000..73f638d
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081436.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      }
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081451.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081451.nix
new file mode 100644
index 0000000..3df6640
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081451.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081917.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081917.nix
new file mode 100644
index 0000000..c36cbdc
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081917.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux";  };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081919.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081919.nix
new file mode 100644
index 0000000..5524dd5
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081919.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; s };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081922.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081922.nix
new file mode 100644
index 0000000..7b11bac
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081922.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; sha };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081927.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081927.nix
new file mode 100644
index 0000000..dd780b5
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081927.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; sha256 = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081936.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081936.nix
new file mode 100644
index 0000000..e9e2bab
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302081936.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; hash = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082017.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082017.nix
new file mode 100644
index 0000000..dd780b5
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082017.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; sha256 = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082026.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082026.nix
new file mode 100644
index 0000000..3df6640
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082026.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082027.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082027.nix
new file mode 100644
index 0000000..3196181
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082027.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; sha256 = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082029.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082029.nix
new file mode 100644
index 0000000..8ccc9bf
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082029.nix
@@ -0,0 +1,20 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; hash = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082746.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082746.nix
new file mode 100644
index 0000000..7c3ac28
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082746.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; hash = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+        un
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082756.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082756.nix
new file mode 100644
index 0000000..0e136a0
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082756.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; hash = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+        unpackPhase = "tar xzf $"
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082759.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082759.nix
new file mode 100644
index 0000000..3057253
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082759.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; hash = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "tar xzf partition_tools.tar.gz && g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082805.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082805.nix
new file mode 100644
index 0000000..b80c9b9
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082805.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; hash = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082908.nix b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082908.nix
new file mode 100644
index 0000000..32de1ff
--- /dev/null
+++ b/.history/packages/com.googlesource.android.partition-tools.platform.system.extras/flake_20220302082908.nix
@@ -0,0 +1,21 @@
+{
+  description = "A flake to build android's partition-tools package";
+
+  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
+
+  outputs = { self, nixpkgs }: {
+
+    packages.x86_64-linux.partition-tools =
+      with import nixpkgs { system = "x86_64-linux"; };
+      stdenv.mkDerivation rec {
+        name = "partition-tools";
+        src = fetchurl { url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"; hash = "sha256-bsO2QEcO9HuR4lZ6j+CmEIrvfT2YaynWvK4ZZLIv/CU="; };
+        unpackPhase = "tar xzf ${src}";
+        buildPhase = "g++ -o out *.cc";
+        installPhase = "mkdir -p $out/bin && cp out/* $out/bin";
+      };
+
+    defaultPackage.x86_64-linux = self.packages.x86_64-linux.partition-tools;
+
+  };
+}
diff --git a/.history/shell_20220301141756.nix b/.history/shell_20220301141756.nix
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.history/shell_20220301141756.nix
diff --git a/.history/shell_20220301141758.nix b/.history/shell_20220301141758.nix
new file mode 100644
index 0000000..699d9ed
--- /dev/null
+++ b/.history/shell_20220301141758.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }:
+
+pkgs.mkShell {
+  buildInputs = with pkgs; [
+    rnix-lsp
+  ];
+}
diff --git a/.history/shell_20220301141800.nix b/.history/shell_20220301141800.nix
new file mode 100644
index 0000000..a728c5a
--- /dev/null
+++ b/.history/shell_20220301141800.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }:
+
+pkgs.mkShell {
+  buildInputs = with pkgs; [
+    rnix-lsp
+  ];
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301112917.nix b/.history/shells/android_20220301112917.nix
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.history/shells/android_20220301112917.nix
diff --git a/.history/shells/android_20220301144432.nix b/.history/shells/android_20220301144432.nix
new file mode 100644
index 0000000..c00ba87
--- /dev/null
+++ b/.history/shells/android_20220301144432.nix
@@ -0,0 +1 @@
+she
\ No newline at end of file
diff --git a/.history/shells/android_20220301144433.nix b/.history/shells/android_20220301144433.nix
new file mode 100644
index 0000000..2f259b7
--- /dev/null
+++ b/.history/shells/android_20220301144433.nix
@@ -0,0 +1 @@
+s
\ No newline at end of file
diff --git a/.history/shells/android_20220301144434.nix b/.history/shells/android_20220301144434.nix
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.history/shells/android_20220301144434.nix
diff --git a/.history/shells/android_20220301144545.nix b/.history/shells/android_20220301144545.nix
new file mode 100644
index 0000000..c793025
--- /dev/null
+++ b/.history/shells/android_20220301144545.nix
@@ -0,0 +1 @@
+7
\ No newline at end of file
diff --git a/.history/shells/android_20220301144546.nix b/.history/shells/android_20220301144546.nix
new file mode 100644
index 0000000..a4890ce
--- /dev/null
+++ b/.history/shells/android_20220301144546.nix
@@ -0,0 +1 @@
+700
diff --git a/.history/shells/android_20220301144547.nix b/.history/shells/android_20220301144547.nix
new file mode 100644
index 0000000..440e3e7
--- /dev/null
+++ b/.history/shells/android_20220301144547.nix
@@ -0,0 +1,2 @@
+700
+
diff --git a/.history/shells/android_20220301144548.nix b/.history/shells/android_20220301144548.nix
new file mode 100644
index 0000000..a4890ce
--- /dev/null
+++ b/.history/shells/android_20220301144548.nix
@@ -0,0 +1 @@
+700
diff --git a/.history/shells/android_20220301144549.nix b/.history/shells/android_20220301144549.nix
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.history/shells/android_20220301144549.nix
diff --git a/.history/shells/android_20220301144550.nix b/.history/shells/android_20220301144550.nix
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/.history/shells/android_20220301144550.nix
@@ -0,0 +1 @@
+
diff --git a/.history/shells/android_20220301144551.nix b/.history/shells/android_20220301144551.nix
new file mode 100644
index 0000000..5de84fa
--- /dev/null
+++ b/.history/shells/android_20220301144551.nix
@@ -0,0 +1,6 @@
+
+
+
+
+7
+7
\ No newline at end of file
diff --git a/.history/shells/android_20220301144552.nix b/.history/shells/android_20220301144552.nix
new file mode 100644
index 0000000..bf5622a
--- /dev/null
+++ b/.history/shells/android_20220301144552.nix
@@ -0,0 +1,6 @@
+
+
+
+
+7
+777
\ No newline at end of file
diff --git a/.history/shells/android_20220301144553.nix b/.history/shells/android_20220301144553.nix
new file mode 100644
index 0000000..1fa0131
--- /dev/null
+++ b/.history/shells/android_20220301144553.nix
@@ -0,0 +1,6 @@
+
+
+
+
+7
+77
\ No newline at end of file
diff --git a/.history/shells/android_20220301144555.nix b/.history/shells/android_20220301144555.nix
new file mode 100644
index 0000000..5de84fa
--- /dev/null
+++ b/.history/shells/android_20220301144555.nix
@@ -0,0 +1,6 @@
+
+
+
+
+7
+7
\ No newline at end of file
diff --git a/.history/shells/android_20220301144556.nix b/.history/shells/android_20220301144556.nix
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.history/shells/android_20220301144556.nix
diff --git a/.history/shells/android_20220301144558.nix b/.history/shells/android_20220301144558.nix
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.history/shells/android_20220301144558.nix
diff --git a/.history/shells/android_20220301144600.nix b/.history/shells/android_20220301144600.nix
new file mode 100644
index 0000000..492920e
--- /dev/null
+++ b/.history/shells/android_20220301144600.nix
@@ -0,0 +1 @@
+4=
\ No newline at end of file
diff --git a/.history/shells/android_20220301144603.nix b/.history/shells/android_20220301144603.nix
new file mode 100644
index 0000000..bf0d87a
--- /dev/null
+++ b/.history/shells/android_20220301144603.nix
@@ -0,0 +1 @@
+4
\ No newline at end of file
diff --git a/.history/shells/android_20220301144604.nix b/.history/shells/android_20220301144604.nix
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.history/shells/android_20220301144604.nix
diff --git a/.history/shells/android_20220301145620.nix b/.history/shells/android_20220301145620.nix
new file mode 100644
index 0000000..dd626a0
--- /dev/null
+++ b/.history/shells/android_20220301145620.nix
@@ -0,0 +1 @@
+()
\ No newline at end of file
diff --git a/.history/shells/android_20220301145621.nix b/.history/shells/android_20220301145621.nix
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/.history/shells/android_20220301145621.nix
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145622.nix b/.history/shells/android_20220301145622.nix
new file mode 100644
index 0000000..770cd3c
--- /dev/null
+++ b/.history/shells/android_20220301145622.nix
@@ -0,0 +1 @@
+{ plgkgs}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145623.nix b/.history/shells/android_20220301145623.nix
new file mode 100644
index 0000000..327e9ed
--- /dev/null
+++ b/.history/shells/android_20220301145623.nix
@@ -0,0 +1 @@
+{ pl}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145624.nix b/.history/shells/android_20220301145624.nix
new file mode 100644
index 0000000..bf0a8bd
--- /dev/null
+++ b/.history/shells/android_20220301145624.nix
@@ -0,0 +1 @@
+{ p}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145625.nix b/.history/shells/android_20220301145625.nix
new file mode 100644
index 0000000..e8d2fd9
--- /dev/null
+++ b/.history/shells/android_20220301145625.nix
@@ -0,0 +1 @@
+{ pkgs }
\ No newline at end of file
diff --git a/.history/shells/android_20220301145626.nix b/.history/shells/android_20220301145626.nix
new file mode 100644
index 0000000..9e1b704
--- /dev/null
+++ b/.history/shells/android_20220301145626.nix
@@ -0,0 +1 @@
+{ pkgs ? }
\ No newline at end of file
diff --git a/.history/shells/android_20220301145627.nix b/.history/shells/android_20220301145627.nix
new file mode 100644
index 0000000..ea8f02b
--- /dev/null
+++ b/.history/shells/android_20220301145627.nix
@@ -0,0 +1 @@
+{ pkgs ? mim}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145629.nix b/.history/shells/android_20220301145629.nix
new file mode 100644
index 0000000..d28f10d
--- /dev/null
+++ b/.history/shells/android_20220301145629.nix
@@ -0,0 +1 @@
+{ pkgs ? mi}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145630.nix b/.history/shells/android_20220301145630.nix
new file mode 100644
index 0000000..d4edc6d
--- /dev/null
+++ b/.history/shells/android_20220301145630.nix
@@ -0,0 +1 @@
+{ pkgs ? m}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145631.nix b/.history/shells/android_20220301145631.nix
new file mode 100644
index 0000000..9e1b704
--- /dev/null
+++ b/.history/shells/android_20220301145631.nix
@@ -0,0 +1 @@
+{ pkgs ? }
\ No newline at end of file
diff --git a/.history/shells/android_20220301145632.nix b/.history/shells/android_20220301145632.nix
new file mode 100644
index 0000000..57daf01
--- /dev/null
+++ b/.history/shells/android_20220301145632.nix
@@ -0,0 +1 @@
+{ pkgs ? i}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145633.nix b/.history/shells/android_20220301145633.nix
new file mode 100644
index 0000000..309833b
--- /dev/null
+++ b/.history/shells/android_20220301145633.nix
@@ -0,0 +1 @@
+{ pkgs ? import }
\ No newline at end of file
diff --git a/.history/shells/android_20220301145724.nix b/.history/shells/android_20220301145724.nix
new file mode 100644
index 0000000..d6ebe9a
--- /dev/null
+++ b/.history/shells/android_20220301145724.nix
@@ -0,0 +1 @@
+{ pkgs ? import <nixpkgs {} }
\ No newline at end of file
diff --git a/.history/shells/android_20220301145727.nix b/.history/shells/android_20220301145727.nix
new file mode 100644
index 0000000..fa57a56
--- /dev/null
+++ b/.history/shells/android_20220301145727.nix
@@ -0,0 +1 @@
+{ pkgs ? import <nixpkgs {} }:
diff --git a/.history/shells/android_20220301145737.nix b/.history/shells/android_20220301145737.nix
new file mode 100644
index 0000000..738b9da
--- /dev/null
+++ b/.history/shells/android_20220301145737.nix
@@ -0,0 +1,4 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145756.nix b/.history/shells/android_20220301145756.nix
new file mode 100644
index 0000000..999b711
--- /dev/null
+++ b/.history/shells/android_20220301145756.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import ./)
+  ]
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145801.nix b/.history/shells/android_20220301145801.nix
new file mode 100644
index 0000000..14e18d9
--- /dev/null
+++ b/.history/shells/android_20220301145801.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import ./packages/)
+  ]
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145805.nix b/.history/shells/android_20220301145805.nix
new file mode 100644
index 0000000..c87b636
--- /dev/null
+++ b/.history/shells/android_20220301145805.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import ./packages/com.googlesource.android.)
+  ]
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145817.nix b/.history/shells/android_20220301145817.nix
new file mode 100644
index 0000000..2fb4888
--- /dev/null
+++ b/.history/shells/android_20220301145817.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import com.googlesource.android.partition-tools.platform.system.extras.nix)
+  ]
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145837.nix b/.history/shells/android_20220301145837.nix
new file mode 100644
index 0000000..c899b8f
--- /dev/null
+++ b/.history/shells/android_20220301145837.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import /home/minion/nix/com.googlesource.android.partition-tools.platform.system.extras.nix)
+  ]
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145839.nix b/.history/shells/android_20220301145839.nix
new file mode 100644
index 0000000..4364738
--- /dev/null
+++ b/.history/shells/android_20220301145839.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import /home/minion/nix/shells/com.googlesource.android.partition-tools.platform.system.extras.nix)
+  ]
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145845.nix b/.history/shells/android_20220301145845.nix
new file mode 100644
index 0000000..5f5be0a
--- /dev/null
+++ b/.history/shells/android_20220301145845.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import /home/minion/nix/shells/packages/com.googlesource.android.partition-tools.platform.system.extras.nix)
+  ]
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145851.nix b/.history/shells/android_20220301145851.nix
new file mode 100644
index 0000000..b0bd0ad
--- /dev/null
+++ b/.history/shells/android_20220301145851.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import /home/minion/nix/shells/packages/com.googlesource.android.partition-tools.platform.system.extras.nix {inherit pkgs;})
+  ]
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145855.nix b/.history/shells/android_20220301145855.nix
new file mode 100644
index 0000000..1dacadd
--- /dev/null
+++ b/.history/shells/android_20220301145855.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import /home/minion/nix/shells/packages/com.googlesource.android.partition-tools.platform.system.extras.nix {inherit pkgs;})
+  ];
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145918.nix b/.history/shells/android_20220301145918.nix
new file mode 100644
index 0000000..6928b22
--- /dev/null
+++ b/.history/shells/android_20220301145918.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs> {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import /home/minion/nix/shells/packages/com.googlesource.android.partition-tools.platform.system.extras.nix {inherit pkgs;})
+  ];
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301145958.nix b/.history/shells/android_20220301145958.nix
new file mode 100644
index 0000000..16230a8
--- /dev/null
+++ b/.history/shells/android_20220301145958.nix
@@ -0,0 +1,7 @@
+{ pkgs ? import <nixpkgs> {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import /home/minion/Nix/shells/packages/com.googlesource.android.partition-tools.platform.system.extras.nix {inherit pkgs;})
+    (import /home/minion/Nix/shells/packages/com.googlesource.android.partition-tools.platform.system.extras.nix {inherit pkgs;})
+  ];
+}
\ No newline at end of file
diff --git a/.history/shells/android_20220301150001.nix b/.history/shells/android_20220301150001.nix
new file mode 100644
index 0000000..bd24134
--- /dev/null
+++ b/.history/shells/android_20220301150001.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs> {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import /home/minion/Nix/shells/packages/com.googlesource.android.partition-tools.platform.system.extras.nix {inherit pkgs;})
+  ];
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140746.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140746.nix
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140746.nix
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140811.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140811.nix
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140811.nix
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140813.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140813.nix
new file mode 100644
index 0000000..e041e2a
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140813.nix
@@ -0,0 +1 @@
+{}: 
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140814.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140814.nix
new file mode 100644
index 0000000..372d417
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301140814.nix
@@ -0,0 +1,3 @@
+{}: {
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141107.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141107.nix
new file mode 100644
index 0000000..8dc0048
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141107.nix
@@ -0,0 +1,3 @@
+{ pkgs }: {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141108.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141108.nix
new file mode 100644
index 0000000..81244ad
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141108.nix
@@ -0,0 +1,3 @@
+{ pkgs }: {
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141110.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141110.nix
new file mode 100644
index 0000000..43be7b5
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141110.nix
@@ -0,0 +1,4 @@
+{ pkgs }:
+ {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141112.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141112.nix
new file mode 100644
index 0000000..b79ae79
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141112.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+
+ {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141113.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141113.nix
new file mode 100644
index 0000000..e6e2bb4
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141113.nix
@@ -0,0 +1,6 @@
+{ pkgs }: let
+
+
+ {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141114.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141114.nix
new file mode 100644
index 0000000..72dab3b
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141114.nix
@@ -0,0 +1,6 @@
+{ pkgs }: let
+
+
+n {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141115.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141115.nix
new file mode 100644
index 0000000..29a3cee
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141115.nix
@@ -0,0 +1,6 @@
+{ pkgs }: let
+
+
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141116.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141116.nix
new file mode 100644
index 0000000..f254e77
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141116.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141117.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141117.nix
new file mode 100644
index 0000000..c6e7d2e
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141117.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    sr
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141118.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141118.nix
new file mode 100644
index 0000000..c955c77
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141118.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = 
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141122.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141122.nix
new file mode 100644
index 0000000..9f5cf4c
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141122.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs.
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141123.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141123.nix
new file mode 100644
index 0000000..9f2b53a
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141123.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs.fe
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141124.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141124.nix
new file mode 100644
index 0000000..797542f
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141124.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs.fetch
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141125.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141125.nix
new file mode 100644
index 0000000..295688e
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141125.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs.fetch       
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141126.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141126.nix
new file mode 100644
index 0000000..27bd174
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141126.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs.fetch 
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141127.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141127.nix
new file mode 100644
index 0000000..9f2b53a
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141127.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs.fe
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141128.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141128.nix
new file mode 100644
index 0000000..2823e2d
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141128.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141129.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141129.nix
new file mode 100644
index 0000000..9f5cf4c
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301141129.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs.
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142045.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142045.nix
new file mode 100644
index 0000000..2823e2d
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142045.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142046.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142046.nix
new file mode 100644
index 0000000..9f5cf4c
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142046.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pkgs.
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142106.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142106.nix
new file mode 100644
index 0000000..7566d59
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142106.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = p
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142107.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142107.nix
new file mode 100644
index 0000000..1ac7be5
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142107.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pbuit
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142108.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142108.nix
new file mode 100644
index 0000000..5c3585d
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142108.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = pbu
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142109.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142109.nix
new file mode 100644
index 0000000..c955c77
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142109.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = 
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142110.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142110.nix
new file mode 100644
index 0000000..5407d1e
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142110.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = b
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142111.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142111.nix
new file mode 100644
index 0000000..8081585
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142111.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = bui
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142112.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142112.nix
new file mode 100644
index 0000000..bcd28f0
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142112.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = buio
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142113.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142113.nix
new file mode 100644
index 0000000..57abeff
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142113.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = builtins.
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142115.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142115.nix
new file mode 100644
index 0000000..a2ab885
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142115.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = builtins.fetchT
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142116.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142116.nix
new file mode 100644
index 0000000..93e17a0
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142116.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = builtins.fetchTarb
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142117.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142117.nix
new file mode 100644
index 0000000..4d5377f
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142117.nix
@@ -0,0 +1,5 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {}
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142118.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142118.nix
new file mode 100644
index 0000000..afc71d7
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142118.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        u
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142119.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142119.nix
new file mode 100644
index 0000000..a92b0af
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142119.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        ulrl
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142120.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142120.nix
new file mode 100644
index 0000000..00f67ae
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142120.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142121.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142121.nix
new file mode 100644
index 0000000..afc71d7
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142121.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        u
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142122.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142122.nix
new file mode 100644
index 0000000..d2c2686
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142122.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = 
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142129.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142129.nix
new file mode 100644
index 0000000..a34cea2
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142129.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = ""
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142130.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142130.nix
new file mode 100644
index 0000000..b301ecf
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142130.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142131.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142131.nix
new file mode 100644
index 0000000..b301ecf
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142131.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz"
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142132.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142132.nix
new file mode 100644
index 0000000..39fa6d1
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142132.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142133.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142133.nix
new file mode 100644
index 0000000..8688841
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142133.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+        
+    }
+in {
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142916.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142916.nix
new file mode 100644
index 0000000..b3afe62
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301142916.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in {
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143458.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143458.nix
new file mode 100644
index 0000000..8d4d995
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143458.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in {
+    s
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143459.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143459.nix
new file mode 100644
index 0000000..b3afe62
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143459.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in {
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143500.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143500.nix
new file mode 100644
index 0000000..7f566f2
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143500.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in {
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143501.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143501.nix
new file mode 100644
index 0000000..4b89f02
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143501.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in s{
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143502.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143502.nix
new file mode 100644
index 0000000..d54565d
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143502.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in std{
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143503.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143503.nix
new file mode 100644
index 0000000..8cdca21
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143503.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.{
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143505.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143505.nix
new file mode 100644
index 0000000..7761f9c
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143505.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mk{
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143506.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143506.nix
new file mode 100644
index 0000000..0a02566
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143506.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkD{
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143507.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143507.nix
new file mode 100644
index 0000000..8cfaa27
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143507.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivati{
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143508.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143508.nix
new file mode 100644
index 0000000..ce0d2c1
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143508.nix
@@ -0,0 +1,7 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143509.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143509.nix
new file mode 100644
index 0000000..27adb03
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143509.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143945.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143945.nix
new file mode 100644
index 0000000..8914c5c
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143945.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    m
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143946.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143946.nix
new file mode 100644
index 0000000..124d7b7
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143946.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    mn
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143947.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143947.nix
new file mode 100644
index 0000000..124d7b7
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143947.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    mn
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143948.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143948.nix
new file mode 100644
index 0000000..a0aa267
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143948.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    n
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143949.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143949.nix
new file mode 100644
index 0000000..59c581b
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143949.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    nam
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143950.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143950.nix
new file mode 100644
index 0000000..e17537b
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143950.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    name = ""
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143955.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143955.nix
new file mode 100644
index 0000000..845c254
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143955.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    name = "pla"
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143956.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143956.nix
new file mode 100644
index 0000000..ae3a7d7
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143956.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    name = "plartiti"
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143957.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143957.nix
new file mode 100644
index 0000000..845c254
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143957.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    name = "pla"
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143958.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143958.nix
new file mode 100644
index 0000000..8ee2544
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143958.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    name = "p"
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143959.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143959.nix
new file mode 100644
index 0000000..00dd08e
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301143959.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    name = "partiti"
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144000.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144000.nix
new file mode 100644
index 0000000..fe530d4
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144000.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    name = "partition-t"
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144001.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144001.nix
new file mode 100644
index 0000000..e873185
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144001.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    name = "partition-tools";
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144002.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144002.nix
new file mode 100644
index 0000000..1ea476f
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144002.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    }
+in stdenv.mkDerivation {
+    name = "partition-tools";
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144013.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144013.nix
new file mode 100644
index 0000000..9cfacd8
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144013.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+
+    };
+in stdenv.mkDerivation {
+    name = "partition-tools";
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144014.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144014.nix
new file mode 100644
index 0000000..6a0ea35
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144014.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    name = "partition-tools";
+
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144016.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144016.nix
new file mode 100644
index 0000000..780f792
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144016.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    name = "partition-tools";
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144030.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144030.nix
new file mode 100644
index 0000000..9959092
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144030.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    name = "partition-tools";
+    src
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144031.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144031.nix
new file mode 100644
index 0000000..1eb336f
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144031.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    name = "partition-tools";
+    sr
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144032.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144032.nix
new file mode 100644
index 0000000..780f792
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144032.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    name = "partition-tools";
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144033.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144033.nix
new file mode 100644
index 0000000..989f6de
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144033.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    
+    name = "partition-tools";
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144034.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144034.nix
new file mode 100644
index 0000000..1735908
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144034.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inje
+    name = "partition-tools";
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144035.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144035.nix
new file mode 100644
index 0000000..1be8eec
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144035.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit 
+    name = "partition-tools";
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144036.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144036.nix
new file mode 100644
index 0000000..ce7674c
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144036.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144334.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144334.nix
new file mode 100644
index 0000000..5cbe8a8
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144334.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    b
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144335.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144335.nix
new file mode 100644
index 0000000..4b6ba1b
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144335.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    build
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144336.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144336.nix
new file mode 100644
index 0000000..4c21e5c
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144336.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs =
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144337.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144337.nix
new file mode 100644
index 0000000..e331ba4
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144337.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = "
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144338.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144338.nix
new file mode 100644
index 0000000..93f6f55
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144338.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = "gc
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144339.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144339.nix
new file mode 100644
index 0000000..e331ba4
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144339.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = "
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144340.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144340.nix
new file mode 100644
index 0000000..b057fae
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144340.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gc]
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144341.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144341.nix
new file mode 100644
index 0000000..f61e8b3
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144341.nix
@@ -0,0 +1,9 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gcc ];
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144343.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144343.nix
new file mode 100644
index 0000000..91bb88d
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144343.nix
@@ -0,0 +1,10 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gcc ];
+    
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144348.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144348.nix
new file mode 100644
index 0000000..c1ace90
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144348.nix
@@ -0,0 +1,10 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gcc ];
+    syst
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144349.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144349.nix
new file mode 100644
index 0000000..eaf50c7
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144349.nix
@@ -0,0 +1,10 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gcc ];
+    system = 
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144350.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144350.nix
new file mode 100644
index 0000000..334fee7
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144350.nix
@@ -0,0 +1,10 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gcc ];
+    system = builti
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144351.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144351.nix
new file mode 100644
index 0000000..191e9f7
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144351.nix
@@ -0,0 +1,10 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gcc ];
+    system = builtins.
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144352.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144352.nix
new file mode 100644
index 0000000..834e830
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144352.nix
@@ -0,0 +1,10 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gcc ];
+    system = builtins.curr
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144353.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144353.nix
new file mode 100644
index 0000000..a8c61ce
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144353.nix
@@ -0,0 +1,10 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gcc ];
+    system = builtins.currentSyste
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144354.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144354.nix
new file mode 100644
index 0000000..9be3a5e
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144354.nix
@@ -0,0 +1,10 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+    buildInputs = [ gcc ];
+    system = builtins.currentSystem;
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144418.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144418.nix
new file mode 100644
index 0000000..6251cb0
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301144418.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150014.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150014.nix
new file mode 100644
index 0000000..94d5dbb
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150014.nix
@@ -0,0 +1,8 @@
+{ pkgs, stdenv }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150022.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150022.nix
new file mode 100644
index 0000000..bc5fe5c
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150022.nix
@@ -0,0 +1,8 @@
+{ pkgs, stdenv }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in pkgs.stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150025.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150025.nix
new file mode 100644
index 0000000..8e9077d
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150025.nix
@@ -0,0 +1,8 @@
+{ pkg }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in pkgs.stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150026.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150026.nix
new file mode 100644
index 0000000..4a51801
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150026.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchTarball {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in pkgs.stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150453.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150453.nix
new file mode 100644
index 0000000..1ac0a48
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150453.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchUrl {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in pkgs.stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+}
\ No newline at end of file
diff --git a/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150503.nix b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150503.nix
new file mode 100644
index 0000000..468bf0c
--- /dev/null
+++ b/.history/shells/packages/com.googlesource.android.partition-tools.platform.system.extras_20220301150503.nix
@@ -0,0 +1,8 @@
+{ pkgs }: let
+    src = builtins.fetchurl {
+        url = "https://android.googlesource.com/platform/system/extras/+archive/master/partition_tools.tar.gz";
+    };
+in pkgs.stdenv.mkDerivation {
+    inherit src;
+    name = "partition-tools";
+}
\ No newline at end of file
diff --git a/.history/system/configuration_20220225100354.nix b/.history/system/configuration_20220225100354.nix
new file mode 100644
index 0000000..a65cfe5
--- /dev/null
+++ b/.history/system/configuration_20220225100354.nix
@@ -0,0 +1,347 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };
+
+  programs.qt5ct.enable = true;
+  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # 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" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220306222416.nix b/.history/system/configuration_20220306222416.nix
new file mode 100644
index 0000000..3156a5e
--- /dev/null
+++ b/.history/system/configuration_20220306222416.nix
@@ -0,0 +1,347 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };
+
+  programs.qt5ct.enable = true;
+  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # 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" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220306222421.nix b/.history/system/configuration_20220306222421.nix
new file mode 100644
index 0000000..fab96ec
--- /dev/null
+++ b/.history/system/configuration_20220306222421.nix
@@ -0,0 +1,347 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # 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" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220306222503.nix b/.history/system/configuration_20220306222503.nix
new file mode 100644
index 0000000..cd90138
--- /dev/null
+++ b/.history/system/configuration_20220306222503.nix
@@ -0,0 +1,347 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+  //programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # 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" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220306222504.nix b/.history/system/configuration_20220306222504.nix
new file mode 100644
index 0000000..fab96ec
--- /dev/null
+++ b/.history/system/configuration_20220306222504.nix
@@ -0,0 +1,347 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # 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" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220306222507.nix b/.history/system/configuration_20220306222507.nix
new file mode 100644
index 0000000..aa294ee
--- /dev/null
+++ b/.history/system/configuration_20220306222507.nix
@@ -0,0 +1,347 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+/  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # 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" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220306222513.nix b/.history/system/configuration_20220306222513.nix
new file mode 100644
index 0000000..aede5bc
--- /dev/null
+++ b/.history/system/configuration_20220306222513.nix
@@ -0,0 +1,347 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # 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" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220306222615.nix b/.history/system/configuration_20220306222615.nix
new file mode 100644
index 0000000..533eba1
--- /dev/null
+++ b/.history/system/configuration_20220306222615.nix
@@ -0,0 +1,347 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # 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" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220306222617.nix b/.history/system/configuration_20220306222617.nix
new file mode 100644
index 0000000..62c290d
--- /dev/null
+++ b/.history/system/configuration_20220306222617.nix
@@ -0,0 +1,347 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # 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" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093136.nix b/.history/system/configuration_20220309093136.nix
new file mode 100644
index 0000000..de796f3
--- /dev/null
+++ b/.history/system/configuration_20220309093136.nix
@@ -0,0 +1,357 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093200.nix b/.history/system/configuration_20220309093200.nix
new file mode 100644
index 0000000..e3007e7
--- /dev/null
+++ b/.history/system/configuration_20220309093200.nix
@@ -0,0 +1,360 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    
+  }
+  }
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093203.nix b/.history/system/configuration_20220309093203.nix
new file mode 100644
index 0000000..99a0e27
--- /dev/null
+++ b/.history/system/configuration_20220309093203.nix
@@ -0,0 +1,359 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+      
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093208.nix b/.history/system/configuration_20220309093208.nix
new file mode 100644
index 0000000..7e8beb7
--- /dev/null
+++ b/.history/system/configuration_20220309093208.nix
@@ -0,0 +1,359 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093211.nix b/.history/system/configuration_20220309093211.nix
new file mode 100644
index 0000000..cca550d
--- /dev/null
+++ b/.history/system/configuration_20220309093211.nix
@@ -0,0 +1,359 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    ""
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093219.nix b/.history/system/configuration_20220309093219.nix
new file mode 100644
index 0000000..6aedcb3
--- /dev/null
+++ b/.history/system/configuration_20220309093219.nix
@@ -0,0 +1,360 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = ''
+    ''
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093222.nix b/.history/system/configuration_20220309093222.nix
new file mode 100644
index 0000000..6aedcb3
--- /dev/null
+++ b/.history/system/configuration_20220309093222.nix
@@ -0,0 +1,360 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = ''
+    ''
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093224.nix b/.history/system/configuration_20220309093224.nix
new file mode 100644
index 0000000..7b41f81
--- /dev/null
+++ b/.history/system/configuration_20220309093224.nix
@@ -0,0 +1,361 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = ''
+    
+    ''
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093226.nix b/.history/system/configuration_20220309093226.nix
new file mode 100644
index 0000000..dbd0397
--- /dev/null
+++ b/.history/system/configuration_20220309093226.nix
@@ -0,0 +1,361 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = ''
+      auth include login
+    ''
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093306.nix b/.history/system/configuration_20220309093306.nix
new file mode 100644
index 0000000..c50a8d2
--- /dev/null
+++ b/.history/system/configuration_20220309093306.nix
@@ -0,0 +1,361 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock".text = ''
+      auth include login
+    ''
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093310.nix b/.history/system/configuration_20220309093310.nix
new file mode 100644
index 0000000..de0db70
--- /dev/null
+++ b/.history/system/configuration_20220309093310.nix
@@ -0,0 +1,361 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock"= ''
+      auth include login
+    ''
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093313.nix b/.history/system/configuration_20220309093313.nix
new file mode 100644
index 0000000..6c82dab
--- /dev/null
+++ b/.history/system/configuration_20220309093313.nix
@@ -0,0 +1,362 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      ''
+      auth include login
+    ''
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093317.nix b/.history/system/configuration_20220309093317.nix
new file mode 100644
index 0000000..264c22b
--- /dev/null
+++ b/.history/system/configuration_20220309093317.nix
@@ -0,0 +1,362 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      ''
+        auth include login
+      ''
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093320.nix b/.history/system/configuration_20220309093320.nix
new file mode 100644
index 0000000..ca85866
--- /dev/null
+++ b/.history/system/configuration_20220309093320.nix
@@ -0,0 +1,362 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      text = ''
+        auth include login
+      ''
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093323.nix b/.history/system/configuration_20220309093323.nix
new file mode 100644
index 0000000..d8d046b
--- /dev/null
+++ b/.history/system/configuration_20220309093323.nix
@@ -0,0 +1,363 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      text = ''
+        auth include login
+      ''
+    };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093327.nix b/.history/system/configuration_20220309093327.nix
new file mode 100644
index 0000000..32a1395
--- /dev/null
+++ b/.history/system/configuration_20220309093327.nix
@@ -0,0 +1,363 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      text = ''
+        auth include login
+      '';
+    };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093332.nix b/.history/system/configuration_20220309093332.nix
new file mode 100644
index 0000000..b4f0046
--- /dev/null
+++ b/.history/system/configuration_20220309093332.nix
@@ -0,0 +1,364 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      mode = 
+      text = ''
+        auth include login
+      '';
+    };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093414.nix b/.history/system/configuration_20220309093414.nix
new file mode 100644
index 0000000..a0ff802
--- /dev/null
+++ b/.history/system/configuration_20220309093414.nix
@@ -0,0 +1,364 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      mode = "";
+      text = ''
+        auth include login
+      '';
+    };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093523.nix b/.history/system/configuration_20220309093523.nix
new file mode 100644
index 0000000..10c1156
--- /dev/null
+++ b/.history/system/configuration_20220309093523.nix
@@ -0,0 +1,363 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {;
+      text = ''
+        auth include login
+      '';
+    };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093524.nix b/.history/system/configuration_20220309093524.nix
new file mode 100644
index 0000000..b9a67c9
--- /dev/null
+++ b/.history/system/configuration_20220309093524.nix
@@ -0,0 +1,364 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      
+      text = ''
+        auth include login
+      '';
+    };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093527.nix b/.history/system/configuration_20220309093527.nix
new file mode 100644
index 0000000..b4f0046
--- /dev/null
+++ b/.history/system/configuration_20220309093527.nix
@@ -0,0 +1,364 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      mode = 
+      text = ''
+        auth include login
+      '';
+    };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093530.nix b/.history/system/configuration_20220309093530.nix
new file mode 100644
index 0000000..cae4bbf
--- /dev/null
+++ b/.history/system/configuration_20220309093530.nix
@@ -0,0 +1,364 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      mode = "0777";
+      text = ''
+        auth include login
+      '';
+    };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/.history/system/configuration_20220309093909.nix b/.history/system/configuration_20220309093909.nix
new file mode 100644
index 0000000..445fe1f
--- /dev/null
+++ b/.history/system/configuration_20220309093909.nix
@@ -0,0 +1,364 @@
+# 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
+      ../secrets/networking-configuration.nix
+      ./packaging-configuration.nix
+      ./containerd/containerd.nix
+    ];
+
+  # Prepare nix flakes
+  nix = {
+    package = pkgs.nixFlakes;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+  boot.loader.grub.useOSProber = true;
+
+  # Enable emulated systems
+  boot.binfmt.emulatedSystems = [ "aarch64-linux" "armv6l-linux" ];
+
+  # 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.startx.enable = true;
+    # displayManager.sddm.enable = true;
+  };
+
+  services = {
+    syncthing = {
+        enable = true;
+        user = "minion";
+        dataDir = "/home/minion/Documents";    # Default folder for new synced folders
+        configDir = "/home/minion/.config/syncthing";   # Folder for Syncthing's settings and keys
+    };
+  };
+
+  # 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
+    ];
+  };*/
+
+  programs.qt5ct.enable = true;
+#  programs.waybar.enable = false; # true;
+
+  # Get screensharing to work
+  xdg = {
+    portal = {
+      enable = true;
+      extraPortals = with pkgs; [
+        xdg-desktop-portal-wlr
+        xdg-desktop-portal-gtk
+      ];
+      gtkUsePortal = true;
+      wlr.enable = true;
+      
+    };
+  };
+
+  systemd.user.services.xdg-desktop-portal = {
+    unitConfig = {
+      After = "graphical-session.target";
+    };
+  };
+
+  # Configure keymap in X11
+  services.xserver.layout = "gb";
+  # services.xserver.xkbOptions = "eurosign:e";
+  services.upower.enable = true;
+
+  # 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;
+    /*config.pipewire = {
+      "context.modules" = [
+        {
+          name = "libpipewire-module-filter-chain";
+          args = {
+            "node.name"        = "effect_output.virtual-surround-7.1-hesuvi";
+            "node.description" = "Virtual Surround Sink";
+            "media.name"       = "Virtual Surround Sink";
+            nodes = [
+              # duplicate inputs
+              { type = "builtin"; label = "copy"; name = "copyFL";  }
+              { type = "builtin"; label = "copy"; name = "copyFR";  }
+              { type = "builtin"; label = "copy"; name = "copyFC";  }
+              { type = "builtin"; label = "copy"; name = "copyRL";  }
+              { type = "builtin"; label = "copy"; name = "copyRR";  }
+              { type = "builtin"; label = "copy"; name = "copySL";  }
+              { type = "builtin"; label = "copy"; name = "copySR";  }
+              { type = "builtin"; label = "copy"; name = "copyLFE"; }
+
+              # apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: 44 in HeSuVi are the same, but resampled to 44100)
+              { type = "builtin"; label = "convolver"; name = "convFL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  0; }; }
+              { type = "builtin"; label = "convolver"; name = "convFL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  1; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  2; }; }
+              { type = "builtin"; label = "convolver"; name = "convSL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  3; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  4; }; }
+              { type = "builtin"; label = "convolver"; name = "convRL_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  5; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  7; }; }
+              { type = "builtin"; label = "convolver"; name = "convFR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  8; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  9; }; }
+              { type = "builtin"; label = "convolver"; name = "convSR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 10; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 11; }; }
+              { type = "builtin"; label = "convolver"; name = "convRR_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 12; }; }
+              { type = "builtin"; label = "convolver"; name = "convFC_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+
+              # treat LFE as FC
+              { type = "builtin"; label = "convolver"; name = "convLFE_R"; config = { filename = "hrir_hesuvi/hrir.wav"; channel = 13; }; }
+              { type = "builtin"; label = "convolver"; name = "convLFE_L"; config = { filename = "hrir_hesuvi/hrir.wav"; channel =  6; }; }
+
+              # stereo output
+              { type = "builtin"; label = "mixer"; name = "mixR"; }
+              { type = "builtin"; label = "mixer"; name = "mixL"; }
+            ];
+            links = [
+              # input
+              { output = "copyFL:Out";  input="convFL_L:In";  }
+              { output = "copyFL:Out";  input="convFL_R:In";  }
+              { output = "copySL:Out";  input="convSL_L:In";  }
+              { output = "copySL:Out";  input="convSL_R:In";  }
+              { output = "copyRL:Out";  input="convRL_L:In";  }
+              { output = "copyRL:Out";  input="convRL_R:In";  }
+              { output = "copyFC:Out";  input="convFC_L:In";  }
+              { output = "copyFR:Out";  input="convFR_R:In";  }
+              { output = "copyFR:Out";  input="convFR_L:In";  }
+              { output = "copySR:Out";  input="convSR_R:In";  }
+              { output = "copySR:Out";  input="convSR_L:In";  }
+              { output = "copyRR:Out";  input="convRR_R:In";  }
+              { output = "copyRR:Out";  input="convRR_L:In";  }
+              { output = "copyFC:Out";  input="convFC_R:In";  }
+              { output = "copyLFE:Out"; input="convLFE_L:In"; }
+              { output = "copyLFE:Out"; input="convLFE_R:In"; }
+
+              # output
+              { output = "convFL_L:Out";  input="mixL:In 1"; }
+              { output = "convFL_R:Out";  input="mixR:In 1"; }
+              { output = "convSL_L:Out";  input="mixL:In 2"; }
+              { output = "convSL_R:Out";  input="mixR:In 2"; }
+              { output = "convRL_L:Out";  input="mixL:In 3"; }
+              { output = "convRL_R:Out";  input="mixR:In 3"; }
+              { output = "convFC_L:Out";  input="mixL:In 4"; }
+              { output = "convFC_R:Out";  input="mixR:In 4"; }
+              { output = "convFR_R:Out";  input="mixR:In 5"; }
+              { output = "convFR_L:Out";  input="mixL:In 5"; }
+              { output = "convSR_R:Out";  input="mixR:In 6"; }
+              { output = "convSR_L:Out";  input="mixL:In 6"; }
+              { output = "convRR_R:Out";  input="mixR:In 7"; }
+              { output = "convRR_L:Out";  input="mixL:In 7"; }
+              { output = "convLFE_R:Out"; input="mixR:In 8"; }
+              { output = "convLFE_L:Out"; input="mixL:In 8"; }
+            ];
+            inputs  = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+            outputs = [ "mixL:Out" "mixR:Out" ];
+          };
+          "capture.props" = {
+              "media.class"    = "Audio/Sink";
+              "audio.channels" = 8;
+              "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+          };
+          "playback.props" = {
+              "node.passive"   = true;
+              "audio.channels" = 2;
+              "audio.position" = [ "FL" "FR" ];
+          };
+        }
+      ];
+    };*/
+  };
+  environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
+
+  hardware.openrazer.enable = true;
+  hardware.openrazer.users = [ "minion" ];
+
+  # Enable touchpad support (enabled default in most desktopManager).
+  services.xserver.libinput.enable = true;
+
+  programs.dconf.enable = true;
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.users.minion = {
+    isNormalUser = true;
+    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" ]; # Enable ‘sudo’ for the user.
+    shell = pkgs.zsh;
+  };
+
+  # 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-gui
+    bluez
+    macchanger
+    comic-relief
+    qemu_kvm
+    polkit_gnome
+    gtk-engine-murrine
+    gtk_engines
+    gsettings-desktop-schemas
+    lxappearance
+  ] ++ (import ./containerd/systemPackages.nix pkgs).systemPackages;
+
+#  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.kdeconnect.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.kbfs.enable = true;
+  services.kbfs.enableRedirector = true;
+  security.wrappers.keybase-redirector.owner = "root";
+  security.wrappers.keybase-redirector.group = "users";
+  services.gnome.gnome-keyring.enable = true;
+  services.i2p.enable = true;
+  services.tlp.enable = true;
+  virtualisation.docker.enable = true;
+  virtualisation.docker.enableOnBoot = false;
+
+  hardware.bluetooth.enable = true;
+
+  environment.pathsToLink = [ "/share/zsh" "/libexec" ];
+
+  virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm;
+  virtualisation.kvmgt.enable = true;
+
+  services.openvpn.servers = {
+    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; };
+  };
+
+  environment.etc = {
+    "pam.d/swaylock" = {
+      mode = "0644";
+      text = ''
+        auth include login
+      '';
+    };
+  };
+
+  nixpkgs.overlays = [
+    (self: super: {
+      polkit = super.polkit.overrideAttrs (oldAttrs: {
+        patches = oldAttrs.patches ++ [
+          (super.fetchpatch {
+            url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/716a273ce0af467968057f3e107156182bd290b0.patch";
+            sha256 = "sha256-hOJJhUmxXm87W1ZU9Y1NJ8GCyKvPjbIVtCHlhRGlN8k=";
+          })];
+      });
+    })
+  ];
+
+  xdg.mime.defaultApplications = {
+    "text/html" = "chromium-browser.desktop";
+    "x-scheme-handler/http" = "chromium-browser.desktop";
+    "x-scheme-handler/https" = "chromium-browser.desktop";
+    "x-scheme-handler/about" = "chromium-browser.desktop";
+    "x-scheme-handler/unknown" = "chromium-browser.desktop";
+  };
+
+  # environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
+
+
+  boot.supportedFilesystems = [ "kbfs" ];
+
+  # 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/packages/anytype/arnarg/anytype.nix b/packages/anytype/arnarg/anytype.nix
new file mode 100644
index 0000000..7b766a9
--- /dev/null
+++ b/packages/anytype/arnarg/anytype.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, appimageTools, makeDesktopItem, symlinkJoin }:
+let
+  version = "0.22.3";
+
+  extracted = appimageTools.extract {
+    name = "anytype2";
+    src = fetchurl {
+      url = "https://at9412003.fra1.cdn.digitaloceanspaces.com/Anytype-${version}.AppImage";
+      sha256 = "14pzzd4nmf6k53mrf0dl3yj091ryvv38ypv3228m1b4hc16s1jnv";
+    };
+  };
+
+  wrapped = appimageTools.wrapAppImage {
+    name = "anytype2";
+    src = extracted;
+    extraPkgs = pkgs: with pkgs; [libsecret];
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "anytype2";
+    desktopName = "anytype2";
+    icon = "${extracted}/anytype2.png";
+    comment = "operating system for life";
+    exec = "${wrapped}/bin/anytype2";
+    categories = "Utility";
+  };
+in symlinkJoin {
+  name = "anytype-${version}";
+  paths = [
+    wrapped
+    desktopItem
+  ];
+}
diff --git a/packages/anytype/arnarg/default.nix b/packages/anytype/arnarg/default.nix
new file mode 100644
index 0000000..f22fbfa
--- /dev/null
+++ b/packages/anytype/arnarg/default.nix
@@ -0,0 +1,11 @@
+{ pkgs, ... }:
+
+let
+  callPackage = pkgs.lib.callPackageWith pkgs;
+
+  lib = pkgs.lib;
+
+  self = {
+    anytype = callPackage ./anytype.nix { };
+  };
+in self
diff --git a/packages/anytype/arnarg/result b/packages/anytype/arnarg/result
new file mode 120000
index 0000000..889b810
--- /dev/null
+++ b/packages/anytype/arnarg/result
@@ -0,0 +1 @@
+/nix/store/nzx75xm4p6qh90n2xwr14sipqsq00679-anytype-0.22.3
\ No newline at end of file
diff --git a/packages/space/default.nix b/packages/space/default.nix
new file mode 100644
index 0000000..fe7a03a
--- /dev/null
+++ b/packages/space/default.nix
@@ -0,0 +1,15 @@
+let
+  version = "51995916";
+  buildNumber = "51995916";
+in { pkgs ? import <nixpkgs> {} }:
+pkgs.appimageTools.wrapType2 {
+  name = "Anytype";
+  version = version;
+  src = pkgs.fetchurl {
+    url = "https://download.anytype.io/?action=download&key=desktop&id=51995916";
+    sha256 = "sha256-28qgTWCQrFCREGNfj8bePocEpB+0AZfrKNO4akn7/5I=";
+    name = version + ".appimage";
+  };
+
+  extraPkgs = pkgs: with pkgs; [ libsecret xdg-desktop-portal hicolor-icon-theme ];
+}
diff --git a/packages/space/result b/packages/space/result
new file mode 120000
index 0000000..0399fef
--- /dev/null
+++ b/packages/space/result
@@ -0,0 +1 @@
+/nix/store/l1nr15d27mjdzrn0wi26ihdh3sjd3gdg-Anytype
\ No newline at end of file
diff --git a/result b/result
new file mode 120000
index 0000000..d8ecf7b
--- /dev/null
+++ b/result
@@ -0,0 +1 @@
+/nix/store/93ibymr70ikla4b56l4hjhjansz9ql5i-home-manager-generation
\ No newline at end of file
diff --git a/secrets/networking-configuration.wpa-old.nix b/secrets/networking-configuration.wpa-old.nix
new file mode 100644
index 0000000..53ca687
--- /dev/null
+++ b/secrets/networking-configuration.wpa-old.nix
Binary files differ
diff --git a/secrets/networking/eduroam.8021x b/secrets/networking/eduroam.8021x
new file mode 100644
index 0000000..46d30c2
--- /dev/null
+++ b/secrets/networking/eduroam.8021x
Binary files differ
diff --git a/secrets/networking/eduroam.pem b/secrets/networking/eduroam.pem
new file mode 100644
index 0000000..8ade6e4
--- /dev/null
+++ b/secrets/networking/eduroam.pem
Binary files differ
diff --git a/shell.nix b/shell.nix
new file mode 100644
index 0000000..a728c5a
--- /dev/null
+++ b/shell.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }:
+
+pkgs.mkShell {
+  buildInputs = with pkgs; [
+    rnix-lsp
+  ];
+}
\ No newline at end of file
diff --git a/shells/android.nix b/shells/android.nix
new file mode 100644
index 0000000..bd24134
--- /dev/null
+++ b/shells/android.nix
@@ -0,0 +1,6 @@
+{ pkgs ? import <nixpkgs> {} }:
+pkgs.mkShell {
+  buildInputs = [
+    (import /home/minion/Nix/shells/packages/com.googlesource.android.partition-tools.platform.system.extras.nix {inherit pkgs;})
+  ];
+}
\ No newline at end of file
diff --git a/users/minion/overlays/anytype.nix.save b/users/minion/overlays/anytype.nix.save
new file mode 100644
index 0000000..70fcd96
--- /dev/null
+++ b/users/minion/overlays/anytype.nix.save
@@ -0,0 +1,39 @@
+final: prev: let
+  build = "54367901";
+  sha = "sha256-kVM/F0LsIgMtur8jHZzUWkFIcfHe0i8y9Zxe3z5SkVM=";
+
+  pname = "anytype";
+  name = "${pname}-${build}";
+
+  src = final.fetchurl {
+    url = "https://download.anytype.io/?action=download&key=desktop&id=${build}";
+    sha256 = sha;
+    name = "AnyType-${build}.AppImage";
+  };
+
+  appimageContents = final.appimageTools.extractType2 { inherit name src; };
+in {
+  anytype-latest = prev.appimageTools.wrapType2 {
+    inherit name src;
+
+    extraPkgs = pkgs: (prev.appimageTools.defaultFhsEnvArgs.multiPkgs pkgs)
+      ++ [ pkgs.libsecret ];
+
+    extraInstallCommands = ''
+      mv $out/bin/${name} $out/bin/${pname}
+      install -m 444 -D ${appimageContents}/anytype2.desktop -t $out/share/applications
+      substituteInPlace $out/share/applications/anytype2.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+      install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/0x0/apps/anytype2.png \
+        $out/share/icons/hicolor/512x512/apps/anytype2.png
+    '';
+
+    meta = with prev.lib; {
+      description = "P2P note-taking tool";
+      homepage = "https://anytype.io/";
+      license = licenses.unfree;
+      maintainers = with maintainers; [ bbigras ];
+      platforms = [ "x86_64-linux" ];
+    };
+  };
+}
diff --git a/utils/fhs-env.nix b/utils/fhs-env.nix
new file mode 100644
index 0000000..8373dc6
--- /dev/null
+++ b/utils/fhs-env.nix
@@ -0,0 +1,20 @@
+{ pkgs ? import <nixpkgs> {} }:
+(pkgs.buildFHSUserEnv {
+  name = "fhs";
+  targetPkgs = pkgs: with pkgs; [
+    coreutils
+  ];
+  multiPkgs = pkgs: with pkgs; [
+    zlib
+    xorg.libXxf86vm
+    curl
+    openal
+    openssl
+    dict
+    xorg.libXext
+    xorg.libX11
+    xorg.libXrandr
+    mesa_glu
+  ];
+  runScript = "bash";
+}).env
