Final commit; switching to new branch
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