diff --git a/.sops.yaml b/.sops.yaml
new file mode 100644
index 0000000..99051e3
--- /dev/null
+++ b/.sops.yaml
@@ -0,0 +1,9 @@
+keys:
+    - &skyler D520 AC8D 7C96 9212 5B2B  BD3A 1AFD 1025 6B3C 714D
+    - &python_laptop 2a81f40686eccb845b763c438a8cf3c0fff331b6
+creation_rules:
+    - path_regex: secrets/.*
+      key_groups:
+          - pgp:
+              - *skyler
+              - *python_laptop
diff --git a/flake.lock b/flake.lock
index c067a83..4b20649 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,6 +144,37 @@
         "type": "github"
       }
     },
+    "nixpkgs-22_05": {
+      "locked": {
+        "lastModified": 1660410996,
+        "narHash": "sha256-arkfX1YYFmwMyDTCguzoOI4epABC41FGQU4J1/G3/9M=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "70b6236f3cbc815f2cae8d597418c714cf83d1c8",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "release-22.05",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "nixpkgs-minion": {
+      "locked": {
+        "lastModified": 1654036137,
+        "narHash": "sha256-9qB2rqwRRTWF6QESxhJA9Xs+f9F91CjAddbOS19Khv8=",
+        "owner": "minion3665",
+        "repo": "nixpkgs",
+        "rev": "44aa79022d197f21d1b584a2b445065e5c08fecd",
+        "type": "github"
+      },
+      "original": {
+        "owner": "minion3665",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "nixpkgs-unstable": {
       "locked": {
         "lastModified": 1658290795,
@@ -215,9 +246,33 @@
         "home-manager": "home-manager",
         "nixpkgs": "nixpkgs_2",
         "nixpkgs-21-11": "nixpkgs-21-11",
+        "nixpkgs-minion": "nixpkgs-minion",
         "nixpkgs-unstable": "nixpkgs-unstable",
         "nurpkgs": "nurpkgs",
-        "registry": "registry"
+        "registry": "registry",
+        "sops-nix": "sops-nix",
+        "vim-ctrlspace": "vim-ctrlspace"
+      }
+    },
+    "sops-nix": {
+      "inputs": {
+        "nixpkgs": [
+          "nixpkgs"
+        ],
+        "nixpkgs-22_05": "nixpkgs-22_05"
+      },
+      "locked": {
+        "lastModified": 1660540143,
+        "narHash": "sha256-oqeOdJH0ey/UyG1G31BV6Lk8qjI+VKboTpTJB317OhM=",
+        "owner": "Mic92",
+        "repo": "sops-nix",
+        "rev": "773365016f5202a199f5aff72cac75c64add4528",
+        "type": "github"
+      },
+      "original": {
+        "owner": "Mic92",
+        "repo": "sops-nix",
+        "type": "github"
       }
     },
     "utils": {
@@ -234,6 +289,22 @@
         "repo": "flake-utils",
         "type": "github"
       }
+    },
+    "vim-ctrlspace": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1649840914,
+        "narHash": "sha256-wQuQTNmU1qujQJ3oU2pSTQaVDa4ZChr1fkjFbILLt+w=",
+        "owner": "vim-ctrlspace",
+        "repo": "vim-ctrlspace",
+        "rev": "05b58e916cea62577462d36bbb88933e8454f2d3",
+        "type": "github"
+      },
+      "original": {
+        "owner": "vim-ctrlspace",
+        "repo": "vim-ctrlspace",
+        "type": "github"
+      }
     }
   },
   "root": "root",
diff --git a/flake.nix b/flake.nix
index c3936cb..9542af5 100644
--- a/flake.nix
+++ b/flake.nix
@@ -12,6 +12,7 @@
         home-manager.url = "github:nix-community/home-manager/release-22.05";
         nurpkgs.url = "github:nix-community/NUR";
         comma.url = "github:nix-community/comma";
+        nixpkgs-minion.url = "github:minion3665/nixpkgs";
         fzf-tab = {
             url = "github:Aloxaf/fzf-tab";
             flake = false;
@@ -20,12 +21,18 @@
             url = "github:pimterry/git-confirm";
             flake = false;
         };
+        vim-ctrlspace = {
+            url = "github:vim-ctrlspace/vim-ctrlspace";
+            flake = false;
+        };
+        sops-nix.url = "github:Mic92/sops-nix";
 
         # Make sure flakes we depend on use the same version of nixpkgs as we do
         home-manager.inputs.nixpkgs.follows = "nixpkgs";
+        sops-nix.inputs.nixpkgs.follows = "nixpkgs";
     };
 
-    outputs = extraInputs@{ self, nixpkgs, nixpkgs-unstable, nixpkgs-21-11, home-manager, ... }:
+    outputs = extraInputs@{ self, nixpkgs, nixpkgs-unstable, nixpkgs-21-11, nixpkgs-minion, home-manager, ... }:
     let
         system = "x86_64-linux";  # TOOD: Add options for MacOS
 
@@ -50,6 +57,12 @@
             config = { allowUnfree = true; };
         };
 
+        pkgs-minion = import nixpkgs-minion {
+            inherit system;
+
+            config = { allowUnfree = true; };
+        };
+
         variables = import ./src/common/variables.nix;
     in {
         nixosConfigurations = {
@@ -57,11 +70,12 @@
                 inherit system;
 
                 specialArgs = extraInputs // {
-                  inherit nixpkgs nixpkgs-unstable home-manager pkgs-unstable pkgs-21-11 system;
+                  inherit nixpkgs nixpkgs-unstable home-manager pkgs-unstable pkgs-21-11 pkgs-minion system;
                 };
 
                 modules = [
                     src/system.nix
+                    extraInputs.sops-nix.nixosModules.sops
                 ];
             };
         };
@@ -70,7 +84,7 @@
             "${variables.username}" = home-manager.lib.homeManagerConfiguration rec {
                 inherit system pkgs;
 
-                extraSpecialArgs = extraInputs // { inherit nixpkgs nixpkgs-unstable home-manager pkgs-unstable pkgs-21-11 system; };
+                extraSpecialArgs = extraInputs // { inherit nixpkgs nixpkgs-unstable home-manager pkgs-unstable pkgs-21-11 pkgs-minion system; };
 
                 username = variables.username;
                 homeDirectory = "/home/${username}";
diff --git a/secrets/secrets.json b/secrets/secrets.json
new file mode 100644
index 0000000..863ed81
--- /dev/null
+++ b/secrets/secrets.json
@@ -0,0 +1,26 @@
+{
+	"collabora-password": "ENC[AES256_GCM,data:/pQqX2DJutNwWVUo6aCq6SRc/0lEfvEj,iv:LZ3RMxzCpY8dsSlmj/G+0yFG3Blp7aJ4vWF0eQi7I2Y=,tag:CR6E2nDcLg3rz88lE5Zj3A==,type:str]",
+	"sops": {
+		"kms": null,
+		"gcp_kms": null,
+		"azure_kv": null,
+		"hc_vault": null,
+		"age": null,
+		"lastmodified": "2022-08-18T22:24:12Z",
+		"mac": "ENC[AES256_GCM,data:xvRUMD0q0W5uerh27WtSitlUc2E0b0T0gCzMTI6eMTZKf0flzgA6WChFyN6xeglHgqKzom2uIgFghuuJJM2pvXxZQcUf7LnUxsfC+kLdm1HlnwxNMwT+Hg/xKVKnyXveljzMVfTX+wps3TSxwyirq0lnBsWXZd9meABKuP1v6og=,iv:I8PXJ5jlQg7ig4StOKWPwWC/x9m0dlvsTYB01s+l6Qc=,tag:BUBAHx0O2zlWZxZGsK9p+A==,type:str]",
+		"pgp": [
+			{
+				"created_at": "2022-08-18T21:04:35Z",
+				"enc": "-----BEGIN PGP MESSAGE-----\n\nwcFMA4vnwRU2nlKhARAAk4QGBf3JjCRs17Z2WncVGOeRa44oZvJmK6QHMk6ltBCD\najoFU4rQAto9fVv638tmdALZ8Mpw23QQismjNS2+rha3IHDZmnDDOUPfLzMfSD2h\nkJUCCISTWPUJhecJNaTpfjyBUyNcG2rkFPvRp64jXHVg6dF/HrjjU8bdd4HTH8FE\nL19E/Dz968K8AzDyUvEdhaDxOP9vBRdIYWqbV7p3vdseH2HAhmL+o2yla1HclK9g\nNA40J+Z288rApnUkkiZJxVaEjZtCq/1FIfZWrWgiGT4KmgsoFDblTYWBMag8P3cf\na76RhGyvRqH8AiWkbTp3l1iSezDjRfqUViAt3RoPFX5FTCDP5igrlJQddc621EhW\n4kSs9Aj2QfqZNfkixgE61b5W9HmS4l2i+PiwsyxJo5zZHM7SbP9YU2mn2yD2BlUj\nM1d5Ql9ZTDG2jYv8W715Mv7aKwc9jP7H/WUsxN2u+ZvmpYHITBBLnlK6WqrNeBOo\nODWfJQNY1OxLNkjGtpEgnqdYazuHYb9BWgDovgqb/EpO1gdjiCp80Sd9VygrB2Xy\nbQGKrvvMiip1eEXg2UEH3cZNSFQe/rKVSuRow4slQfCH1erLygqrJM7lNy/qptmJ\nzUPGqJyip1WJiJBeVO9UP7wL1k5PCLXowFwdo6/st83y3foS3x6cxBR7KvW9DKvS\nUQHWOO5EKJtU9uT3YWlpsFPlqaf9xuGf/Aes5cb0eW8TZT+J/7NAQdhUzGueDdOR\n+wMI6en3DfZBGMQEYw4rTcUdD/OG8bP0JVkJ3Mvg7qR5Sw==\n=ekop\n-----END PGP MESSAGE-----",
+				"fp": "D520AC8D7C9692125B2BBD3A1AFD10256B3C714D"
+			},
+			{
+				"created_at": "2022-08-18T21:04:35Z",
+				"enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMA4qM88D/8zG2AQ//Qh0uzPOOzgfrz6Ub/XN6MxyNOaNUev3KVL18U8fQa9hT\nHosL6ah2+6dUpohVTfEuQmjuGM4qchUoGpGS9oo2cyEAzhGk6WX1jnL9czghWU+k\n2WZChsxyIU3w7oFBSek3GNcAID2QXooQONuiiq4MVrovkiXlcT3K1L78EOdMCj5T\npv4gXrNOIwz4A28m2keYU7rHkSSYdxhrH38NUsEcAnihFMWLaZzyup2FCvGMbbkP\n/00U/QBUSZYYusrG0whiMszsuLnk889bLo7mtF6OeH/eubHIQgotYmdimHWNbGI6\nz1kNYnMKIpNyWLmn4yj2MiVKa2cEa8w8SWBUXw3k55oJC6XDOV/uMXkDD7Ik/kJD\nTkLYhnWzQd85wyv0MWBrxVoPEZ24GBSJcWk0FJFexpPE1wT0r83PPamoegFPtUYZ\n9Tex3YNu6qm4G78hJZxyU69PS4kPFc0gb0bpUyIHjJR+bRGHkFFk1NgRIdeMGA/O\nnZQOgNHWvA39cVY9rAbbnmtPQ/2G2zS7+87R+1ygPvJyf+mWdOsKAz+dkZBcdWAR\nuP8EoLizPFLO6jrbNgteprsKO/n1cc9/1A+nqP4KJjepHOg+B4w2H9V7kagKixo+\n22PTZaPpPDVTy+FUGnkVH7Fxl371SvQSUaMYAebNNuDUyg/AAdqGYARp9y/ebLHS\nWAHKxS2V0kZ3jiGPS4yKM3JTBHUbGX6e6w2ePNNRc2v6NNZuKIpwcll4wrnbCffS\ngP7bEfhDXndAubsj9dMH8BUej2mnJJeARHBka/q3gPOCP7JFA6P9BMI=\n=DM4A\n-----END PGP MESSAGE-----\n",
+				"fp": "2a81f40686eccb845b763c438a8cf3c0fff331b6"
+			}
+		],
+		"unencrypted_suffix": "_unencrypted",
+		"version": "3.7.3"
+	}
+}
\ No newline at end of file
diff --git a/src/apps/personal/element.nix b/src/apps/personal/element.nix
index 9278df0..ced87ce 100644
--- a/src/apps/personal/element.nix
+++ b/src/apps/personal/element.nix
@@ -1,5 +1,6 @@
 { pkgs, ... }: {
     home.packages = with pkgs; [
         element-desktop-wayland
+        cinny
     ];
 }
diff --git a/src/apps/personal/email.nix b/src/apps/personal/email.nix
new file mode 100644
index 0000000..45c2d5f
--- /dev/null
+++ b/src/apps/personal/email.nix
@@ -0,0 +1,66 @@
+{ pkgs, ... }: {
+    accounts.email.accounts = {
+        collabora = {
+            astroid = {
+                enable = true;
+                sendMailCommand = "${pkgs.msmtp}/bin/msmtpq --read-envelope-from --read-recipients";
+            };
+            msmtp.enable = true;
+            himalaya.enable = true;
+            neomutt.enable = true;
+            mbsync = {
+                enable = true;
+                create = "maildir";
+            };
+            notmuch.enable = true;
+            address = "skyler.grey@collabora.com";
+            imap = {
+                host = "mail.collabora.com";
+                port = 143;
+                tls.useStartTls = true;
+            };
+            smtp = {
+                host = "mail.collabora.com";
+                port = 587;
+                tls.useStartTls = true;
+            };
+            userName = "skyler";
+            realName = "Skyler Grey";
+            primary = true;
+            signature = {
+                showSignature = "append";
+                text = ''
+                Miss Skyler Grey
+                Intern
+
+                Collabora Ltd.
+                Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
+                Registered in England & Wales, no. 5513718'';
+            };
+            passwordCommand = "${pkgs.coreutils}/bin/cat /run/secrets/collabora-password";
+        };
+    };
+    programs.astroid.enable = true;
+    programs.msmtp.enable = true;
+    services.mbsync = {
+        enable = true;
+        postExec = "${pkgs.notmuch}/bin/notmuch new";
+    };
+    programs.mbsync.enable = true;
+    programs.himalaya.enable = true;
+    programs.neomutt = {
+        enable = true;
+        sidebar.enable = true;
+        settings = {
+            preferred_languages = "en";
+        };
+        extraConfig = ''
+        auto_view text/html
+        '';
+    };
+    programs.notmuch.enable = true;
+    home.packages = [ pkgs.lynx ];
+    home.file.".mailcap".text = ''
+    text/html; ${pkgs.lynx}/bin/lynx -force_html -dump %s; copiousoutput
+    '';
+}
diff --git a/src/apps/personal/gpg.nix b/src/apps/personal/gpg.nix
index 58d57ca..9c8f74f 100644
--- a/src/apps/personal/gpg.nix
+++ b/src/apps/personal/gpg.nix
@@ -1,6 +1,6 @@
 { pkgs, ... }: let
     pinentry-multiplexed = pkgs.writeScriptBin "pinentry-multiplexed" ''
-        case $PINENTRY_USER_DATA in
+        case "$${PINENTRY_USER_DATA-}" in
         tty)
             exec ${pkgs.pinentry.tty}/bin/pinentry "$@"
             ;;
diff --git a/src/apps/personal/grep.nix b/src/apps/personal/grep.nix
index 4fc02a1..fe29812 100644
--- a/src/apps/personal/grep.nix
+++ b/src/apps/personal/grep.nix
@@ -1,11 +1,12 @@
 { pkgs, ... }: {
-  home.packages = [
-    pkgs.ripgrep
-    pkgs.gnugrep
-  ];
+    home.packages = [
+        pkgs.ripgrep
+        pkgs.gnugrep
+    ];
 
-  home.shellAliases = {
-    "git-todo" = "${pkgs.git}/bin/git log | ${pkgs.gnugrep}/bin/grep 'TODO\|DONE'";
-    todo = "${pkgs.ripgrep}/bin/rg TODO:";
-  };
+    home.shellAliases = {
+        "git-todo" = "${pkgs.git}/bin/git log | ${pkgs.gnugrep}/bin/grep 'TODO\|DONE'";
+        todo = "${pkgs.ripgrep}/bin/rg TODO:";
+        rg = "${pkgs.ripgrep}/bin/rg -S";
+    };
 }
diff --git a/src/apps/personal/ssh.nix b/src/apps/personal/ssh.nix
index 3ab03fc..a912f0f 100644
--- a/src/apps/personal/ssh.nix
+++ b/src/apps/personal/ssh.nix
@@ -8,6 +8,10 @@
                 port = 29418;
                 user = "Minion3665";
             };
+            transplace = {
+                hostname = "95.217.87.112";
+                identityFile = "~/.ssh/id_transplace";
+            };
         };
     };
 
diff --git a/src/apps/personal/timetracking.nix b/src/apps/personal/timetracking.nix
index b7d0f2f..52220e3 100644
--- a/src/apps/personal/timetracking.nix
+++ b/src/apps/personal/timetracking.nix
@@ -1,6 +1,11 @@
 { pkgs, ... }: {
     home.packages = [
         pkgs.gtimelog
+# pkgs.gtimelog.overrideAttrs(prev: {
+        #     src = fetchGit {
+        #         url = "git@gitlab.collabora.com:
+        #     };
+        # })
         pkgs.haskellPackages.arbtt
     ];
 }
diff --git a/src/apps/personal/vim.nix b/src/apps/personal/vim.nix
index ccd3434..145b8c7 100644
--- a/src/apps/personal/vim.nix
+++ b/src/apps/personal/vim.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }: {
+{ pkgs, vim-ctrlspace, ... }: {
     home.file.".config/nvim/autoload/airline/themes/onehalf.vim".text = ''
     let g:airline#themes#onehalf#palette = {}
     function! airline#themes#onehalf#refresh()
@@ -31,21 +31,24 @@
     let g:airline#themes#onehalf#palette.visual      = s:generateAirlinePalette(s:purple)
     let g:airline#themes#onehalf#palette.select      = s:generateAirlinePalette(s:purple)
     let g:airline#themes#onehalf#palette.multi       = s:generateAirlinePalette(s:purple)
-    let g:airline#themes#onehalf#palette.insert      = s:generateAirlinePalette(s:blue)
+    let g:airline#themes#onehalf#palette.insert      = s:generateAirlinePalette(s:yellow)
     let g:airline#themes#onehalf#palette.commandline = s:generateAirlinePalette(s:red)
     let g:airline#themes#onehalf#palette.terminal    = s:generateAirlinePalette(s:cyan)
-    let g:airline#themes#onehalf#palette.replace     = s:generateAirlinePalette(s:yellow)
-    let g:airline#themes#onehalf#palette.ctrlp       = s:generateAirlinePalette(s:white)
-    let g:airline#themes#onehalf#palette.inactive    = s:generateAirlinePalette(s:lightgrey)
+    let g:airline#themes#onehalf#palette.replace     = s:generateAirlinePalette(s:blue)
+    let g:airline#themes#onehalf#palette.inactive    = s:generateAirlinePalette(s:white)
     let g:airline#themes#onehalf#palette.normal_modified      = s:generateAirlinePalette(s:green)
     let g:airline#themes#onehalf#palette.visual_modified      = s:generateAirlinePalette(s:purple)
     let g:airline#themes#onehalf#palette.select_modified      = s:generateAirlinePalette(s:purple)
     let g:airline#themes#onehalf#palette.multi_modified       = s:generateAirlinePalette(s:purple)
-    let g:airline#themes#onehalf#palette.insert_modified      = s:generateAirlinePalette(s:blue)
+    let g:airline#themes#onehalf#palette.insert_modified      = s:generateAirlinePalette(s:yellow)
     let g:airline#themes#onehalf#palette.commandline_modified = s:generateAirlinePalette(s:red)
     let g:airline#themes#onehalf#palette.terminal_modified    = s:generateAirlinePalette(s:cyan)
-    let g:airline#themes#onehalf#palette.replace_modified     = s:generateAirlinePalette(s:yellow)
-    let g:airline#themes#onehalf#palette.ctrlp_modified       = s:generateAirlinePalette(s:white)
+    let g:airline#themes#onehalf#palette.replace_modified     = s:generateAirlinePalette(s:blue)
+
+
+    let g:airline#themes#onehalf#palette.tabline = {
+        \ 'airline_tabtype' : [s:white.gui, s:lightgrey.gui, s:white.cterm, s:lightgrey.cterm]}
+
     endfunction
 
     call airline#themes#onehalf#refresh()
@@ -57,7 +60,9 @@
             settings = {
                 "suggest.noselect" = false;
                 "cSpell.checkOnlyEnabledFileTypes" = false;
+                "rust-analyzer.serverPath" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
             };
+
         };
         viAlias = true;
         vimAlias = true;
@@ -80,10 +85,14 @@
         set nocompatible
         set hidden
         set encoding=utf-8
-        set scrolloff=5
+        set scrolloff=3
         set signcolumn=yes
+        set guicursor=v-r-cr:hor50,i:ver50
         colorscheme onehalfdark
 
+        hi clear SpellBad
+        hi SpellBad cterm=undercurl gui=undercurl
+
         command W w
         command Wq wq
 
@@ -138,8 +147,12 @@
         nmap <leader>+ <Plug>AirlineSelectNextTab
         let g:airline_skip_empty_sections = 1
 
-        let g:ctrlp_map = '<c-p>'
-        let g:ctrlp_cmd = 'CtrlP'
+        let g:CtrlSpaceDefaultMappingKey = "<C-space> "
+        let g:CtrlSpaceGlobCommand = 'rg --color=never --files'
+        let g:CtrlSpaceSearchTiming = 500
+        let g:CtrlSpaceLoadLastWorkspaceOnStart = 1
+        let g:CtrlSpaceSaveWorkspaceOnSwitch = 1
+        let g:CtrlSpaceSaveWorkspaceOnExit = 1
 
         nmap <silent> ]c :call CocAction('diagnosticNext')<cr>
         nmap <silent> [c :call CocAction('diagnosticPrevious')<cr>
@@ -179,7 +192,25 @@
 
         nnoremap <silent> K :call <SID>show_documentation()<CR>
 
-        autocmd BufWritePre * Neoformat
+        function FormatChangedHunks()
+        let formattedLines = 0
+        let formattedHunks = 0
+
+        for hunk in gitgutter#hunk#hunks(bufnr(""))
+            let line1 = hunk[2] - 1
+            let line2 = hunk[2] + hunk[3]
+            let formattedLines = formattedLines + line2 - line1
+            let formattedHunks = formattedHunks + 1
+            silent call neoformat#Neoformat(0, "", line1, line2)
+        endfor
+
+        echomsg "Reformatted " . string(formattedLines) . " changed lines in " . string(formattedHunks) . " hunks"
+        endfunction
+
+        autocmd BufWritePre * undojoin | try | undojoin | Neoformat | catch /^Vim\%((\a\+)\)\=:E790/ | finally | silent Neoformat | endtry
+        " call FormatChangedHunks()
+        autocmd CursorHoldI,CursorHold,BufLeave ?* silent! update
+        let g:cursorhold_updatetime = 1000
 
         let g:neoformat_try_node_exe = 1
 
@@ -191,7 +222,42 @@
         endif
         endfunction
 
+        let s:darkred     = { "gui": "#844C55", "cterm": "167" }
+        let s:darkyellow  = { "gui": "#877658", "cterm": "136" }
+        let s:darkgreen   = { "gui": "#607857", "cterm": "71"  }
+        let s:darkcyan    = { "gui": "#3F717B", "cterm": "31"  }
+        let s:darkblue    = { "gui": "#456E92", "cterm": "31"  }
+        let s:darkpurple  = { "gui": "#775289", "cterm": "127" }
+        let s:white       = { "gui": "#dcdfe4", "cterm": "188" }
+
+        exec "highlight IndentBlanklineContextChar ctermfg=" . s:white.cterm . " guifg=" . s:white.gui . " ctermbg=NONE guibg=NONE"
+        exec "highlight IndentBlanklineContextStart ctermfg=NONE guifg=NONE guisp=white ctermbg=NONE guibg=NONE gui=underline term=underline"
+        exec "highlight IndentBlanklineIndent1 ctermfg=" . s:darkred.cterm . " guifg=" . s:darkred.gui . " ctermbg=NONE guibg=NONE"
+        exec "highlight IndentBlanklineIndent2 ctermfg=" . s:darkyellow.cterm . " guifg=" . s:darkyellow.gui . " ctermbg=NONE guibg=NONE"
+        exec "highlight IndentBlanklineIndent3 ctermfg=" . s:darkgreen.cterm . " guifg=" . s:darkgreen.gui . " ctermbg=NONE guibg=NONE"
+        exec "highlight IndentBlanklineIndent4 ctermfg=" . s:darkcyan.cterm . " guifg=" . s:darkcyan.gui . " ctermbg=NONE guibg=NONE"
+        exec "highlight IndentBlanklineIndent5 ctermfg=" . s:darkblue.cterm . " guifg=" . s:darkblue.gui . " ctermbg=NONE guibg=NONE"
+        exec "highlight IndentBlanklineIndent6 ctermfg=" . s:darkpurple.cterm . " guifg=" . s:darkpurple.gui . " ctermbg=NONE guibg=NONE"
+
         lua << EOF
+        vim.opt.list = true
+        vim.opt.listchars:append "space:⋅"
+        vim.opt.listchars:append "eol:↴"
+
+        require("indent_blankline").setup {
+            space_char_blankline = " ",
+            show_current_context = true,
+            show_current_context_start = true,
+            char_highlight_list = {
+                "IndentBlanklineIndent1",
+                "IndentBlanklineIndent2",
+                "IndentBlanklineIndent3",
+                "IndentBlanklineIndent4",
+                "IndentBlanklineIndent5",
+                "IndentBlanklineIndent6",
+            },
+        }
+
         require('neorg').setup {
             load = {
                 ["core.defaults"] = {}
@@ -209,6 +275,23 @@
                 enable = true,
                 extended_mode = true,
                 max_file_lines = nil,
+                colors = {
+                    "#e06c75",
+                    "#e5c07b",
+                    "#98c379",
+                    "#56b6c2",
+                    "#61afef",
+                    "#c678dd",
+
+                },
+                termcolors = {
+                    "168",
+                    "180",
+                    "114",
+                    "73",
+                    "75",
+                    "176",
+                },
             },
             incremental_selection = {
                 enable = true,
@@ -231,8 +314,7 @@
         set foldexpr=nvim_treesitter#foldexpr()
 
         set viewoptions-=options
-        autocmd BufWinLeave ?* mkview!
-        autocmd BufWinEnter ?* normal zR
+        autocmd BufWinLeave ?* silent! mkview!
 
         function! s:loadViewOrUnfold()
         try
@@ -244,10 +326,41 @@
 
         autocmd BufWinEnter ?* call s:loadViewOrUnfold()
 
-
         let g:airline_highlighting_cache = 1
         let g:airline_theme = "onehalf"
         autocmd VimEnter * call vista#RunForNearestMethodOrFunction()
+
+        let g:list_of_disabled_keys = ["<UP>", "<DOWN>", "<LEFT>", "<RIGHT>"]
+
+        let g:hardtime_default_on = 1
+        let g:hardtime_allow_different_key = 1
+        let g:hardtime_motion_with_count_resets = 1
+
+        let g:himalaya_mailbox_picker = 'telescope'
+
+        nnoremap <leader>tf <cmd>Telescope find_files<cr>
+        nnoremap <leader>tc <cmd>Telescope coc<cr>
+        nnoremap <leader>ts <cmd>Telescope ultisnips<cr>
+        nnoremap <leader>tg <cmd>Telescope live_grep<cr>
+        nnoremap <leader>tb <cmd>Telescope buffers<cr>
+        nnoremap <leader>th <cmd>Telescope help_tags<cr>
+
+        lua << EOF
+        require("telescope").setup({
+
+        });
+
+        require("telescope").load_extension("coc");
+        require("telescope").load_extension("ui-select");
+        require("telescope").load_extension("ultisnips");
+        require("telescope").load_extension("zoxide");
+        require("telescope").load_extension("fzf");
+        require("telescope").load_extension("file_browser");
+        EOF
+
+        lua << EOF
+        require("colorizer").setup();
+        EOF
         '';
 
         plugins = with pkgs.vimPlugins; [
@@ -257,7 +370,7 @@
             coc-tsserver
             coc-eslint
             coc-rust-analyzer
-            coc-spell-checker
+            # pkgs-minion.coc-spell-checker
             coc-json
             coc-jest
             coc-css
@@ -279,16 +392,41 @@
             airline
             vista-vim
             vim-gitgutter
-            ctrlp-vim
             vim-airline-clock
             lazygit-nvim
+            FixCursorHold-nvim
+            indent-blankline-nvim
+            vim-hardtime
+            vim-commentary
+            coc-snippets
+            ultisnips
+            vim-surround
+            himalaya-vim
+            telescope-ui-select-nvim
+            telescope-ultisnips-nvim
+            telescope-symbols-nvim
+            telescope-zoxide
+            telescope-fzf-native-nvim
+            telescope-coc-nvim
+            telescope-file-browser-nvim
+            telescope-nvim
+            nvim-colorizer-lua
+            (pkgs.vimUtils.buildVimPlugin {
+                name = "vim-ctrlspace";
+                src = vim-ctrlspace;
+            })
             (nvim-treesitter.withPlugins (plugins: pkgs.tree-sitter.allGrammars))
         ];
+
+        extraPackages = with pkgs; [
+            rust-analyzer
+        ];
     };
 
     home.packages = with pkgs; [
         universal-ctags
         nodePackages.cspell
+        fd
     ];
 
     home.sessionVariables.EDITOR = "${pkgs.neovim}/bin/nvim";
diff --git a/src/apps/personal/waybar.nix b/src/apps/personal/waybar.nix
index c67beea..db1d7f2 100644
--- a/src/apps/personal/waybar.nix
+++ b/src/apps/personal/waybar.nix
@@ -22,9 +22,9 @@
                         tooltip = false;
                         format = "{icon}";
                         format-icons = {
-                            notification = "<span foreground='red'><sup></sup></span>";
+                            notification = "<span foreground='red'><sup>*</sup></span>";
                             none = "";
-                            dnd-notification = "<span foreground='red'><sup></sup></span>";
+                            dnd-notification = "<span foreground='red'><sup>*</sup></span>";
                             dnd-none = "";
                         };
                         "return-type" = "json";
diff --git a/src/apps/personal/zsh.nix b/src/apps/personal/zsh.nix
index ad970ab..ef2eaaa 100644
--- a/src/apps/personal/zsh.nix
+++ b/src/apps/personal/zsh.nix
@@ -14,40 +14,74 @@
             extended = true;
         };
         initExtra = ''
-            bindkey -v
-            bindkey "\'\'$\{key[Up]}" up-line-or-search
+        bindkey -v
+        bindkey "\'\'$\{key[Up]}" up-line-or-search
 
-            command_not_found_handler ()
-            {
-                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
-            }
+        command_not_found_handler ()
+        {
+            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
+        }
 
-            ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=243';
-            ZSH_HIGHLIGHT_STYLES[comment]='fg=248';
+        ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=243';
+        ZSH_HIGHLIGHT_STYLES[comment]='fg=248';
 
-            if [[ $SHLVL != "1" ]]; then
-                export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%}'
-                fi
 
-            function TRAPINT {
-                print -n "$fg_bold[red]^C$fg_no_bold[default]"
-                return $(( 128 + $1 ))
-            }
+        function task_indicator {
+            if [ `task +READY +OVERDUE count 2> /dev/null` -gt "0" ]  ; then
+            printf "%%{\\033[38;5;248m%%}(%%{$fg[magenta]%%}$(task +READY +OVERDUE count) OVERDUE%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+            elif [ `task +READY +DUETODAY count 2> /dev/null` -gt "0" ]  ; then
+            printf "%%{\\033[38;5;248m%%}(%%{$fg[red]%%}$(task +READY +DUETODAY count) DUE TODAY%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+            elif [ `task +READY +DUETomorrow count 2> /dev/null` -gt "0" ]  ; then
+            printf "%%{\\033[38;5;248m%%}(%%{$fg[yellow]%%}$(task +READY +DUETomorrow count) DUE TOMORROW%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+            elif [ `task +READY urgency \> 10 count 2> /dev/null` -gt "0" ]  ; then
+            printf "%%{\\033[38;5;248m%%}(%%{$fg[red]%%}$(task +READY urgency \\\> 10 count) URGENT%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+            elif [ `task +READY count 2> /dev/null` -gt "0" ]  ; then
+            printf "%%{\\033[38;5;248m%%}(%%{$fg[cyan]%%}$(task +READY count) TASKS%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+            else
+            printf "%%{\\033[38;5;248m%%}(%%{$fg[green]%%}NO TASKS%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+            fi
+        }
 
-            function tempd {
-                cd "$(mktemp -d)"
-            }
+        if [[ $SHLVL != "1" ]]; then
+        export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%} '
+        fi
+
+        RPS1+='$(task_indicator)'
+
+        function TRAPINT {
+            print -n "$fg_bold[red]^C$fg_no_bold[default]"
+            return $(( 128 + $1 ))
+        }
+
+        # function zle-line-init {
+        #     if [[ -n $ZLE_LINE_ABORTED ]]; then
+        #     MY_LINE_ABORTED="$ZLE_LINE_ABORTED"
+        #     fi
+
+        #     if [[ -n $MY_LINE_ABORTED ]]; then
+        #     local savebuf="$BUFFER" savecur="$CURSOR"
+        #     BUFFER="$MY_LINE_ABORTED"
+        #     CURSOR="$#BUFFER"
+        #     zle split-undo
+        #     BUFFER="$savebuf" CURSOR="$savecur"
+        #     fi
+        # }
+        # zle -N zle-line-init
+
+        function tempd {
+            cd "$(mktemp -d)"
+        }
 
             # disable sort when completing `git checkout`
             zstyle ':completion:*:git-checkout:*' sort false
@@ -63,14 +97,18 @@
 
             alias compinit="true"
             source ${./zsh/completions}/*
-        '';
-        enableSyntaxHighlighting = true;
-        enableAutosuggestions = true;
-        autocd = true;
-        dotDir = ".local/share/zsh";
-    };
+            '';
+            enableSyntaxHighlighting = true;
+            enableAutosuggestions = true;
+            autocd = true;
+            dotDir = ".local/share/zsh";
+        };
 
-    home.packages = [
-        pkgs.fzf
-    ];
-}
+        home.packages = [
+            pkgs.fzf
+        ];
+
+        home.shellAliases = {
+            ":q" = "exit";
+        };
+    }
diff --git a/src/apps/system/grocy.nix b/src/apps/system/grocy.nix
index 44c92a2..e705967 100644
--- a/src/apps/system/grocy.nix
+++ b/src/apps/system/grocy.nix
@@ -17,4 +17,7 @@
   };
 
   networking.firewall.allowedTCPPorts = [ 80 ];
+  networking.hosts = {
+    "127.0.0.1" = [ "grocy.services.local" ];
+  };
 }
diff --git a/src/overlays/electron-screenshare.nix b/src/overlays/electron-screenshare.nix
index 41a288b..158400a 100644
--- a/src/overlays/electron-screenshare.nix
+++ b/src/overlays/electron-screenshare.nix
@@ -25,7 +25,7 @@
 */
 # Therefore, this file is also copyable under MIT as it represents a "substantial portion" of the original code
 
-final: prev: {}
+final: prev: {
 /*
   discord = final.makeDesktopItem {
     name = "Discord";
@@ -48,5 +48,17 @@
     type = "Application";
     categories = [ "Network" "InstantMessaging" ];
     terminal = false;
-  };
-}*/
+    };
+    */
+
+    cinny = final.makeDesktopItem {
+        name = "Cinny";
+        desktopName = "Cinny";
+        genericName = "An alternative matrix client to Element";
+        exec="sh -c \"${final.chromium}/bin/chromium --app=\\\"file://${prev.cinny}/index.html\\\" --autoplay-policy=no-user-gesture-required --enable-features=WebUIDarkMode --force-dark-mode --allow-file-access-from-files --user-data-dir=\\\${XDG_CONFIG_HOME:-\\\$HOME/.config}/cinny\"";
+        icon = "${prev.cinny}/assets/favicon-48x48.png";
+        type = "Application";
+        categories = [ "Network" "InstantMessaging" ];
+        terminal = false;
+    };
+}
diff --git a/src/system.nix b/src/system.nix
index 29781ee..ac743fb 100644
--- a/src/system.nix
+++ b/src/system.nix
@@ -10,22 +10,22 @@
 
   # Prepare nix flakes
   nix = {
-    package = pkgs-unstable.nixFlakes;
-    settings = {
-      experimental-features = [ "nix-command" "flakes" ];
-      auto-optimise-store = true;
-      keep-outputs = true;
-      flake-registry = "${registry}/flake-registry.json";
-      extra-sandbox-paths = [ "/homeless-shelter/.ccache" ];
-    };
-    gc.automatic = true;
-    gc.options = "--delete-older-than 7d";
+      package = pkgs-unstable.nixFlakes;
+      settings = {
+          experimental-features = [ "nix-command" "flakes" ];
+          auto-optimise-store = true;
+          keep-outputs = true;
+          flake-registry = "${registry}/flake-registry.json";
+          extra-sandbox-paths = [ "/homeless-shelter/.ccache" ];
+      };
+      gc.automatic = true;
+      gc.options = "--delete-older-than 7d";
   };
 
   programs.ccache = {
-    enable = true;
+      enable = true;
 #    packageNames = [ "nix" ];
-    cacheDir = "/homeless-shelter/.ccache";
+cacheDir = "/homeless-shelter/.ccache";
   };
 
   # Use the systemd-boot EFI boot loader.
@@ -48,70 +48,70 @@
   # Select internationalisation properties.
   i18n.defaultLocale = "en_US.UTF-8";
   console = {
-    font = "Lat2-Terminus16";
-    keyMap = "uk";
+      font = "Lat2-Terminus16";
+      keyMap = "uk";
   };
 
   # Enable the X11 windowing system.
   services.xserver = {
-    enable = true;
-    desktopManager = {
-      xterm.enable = false;
+      enable = true;
+      desktopManager = {
+          xterm.enable = false;
       # xfce.enable = true;
-    };
-    displayManager.startx.enable = true;
-    # displayManager.sddm.enable = true;
   };
+  displayManager.startx.enable = true;
+    # displayManager.sddm.enable = true;
+};
 
-  services.zeronet.enable = true;
-  services.zeronet.package = pkgs.zeronet-conservancy;
+services.zeronet.enable = true;
+services.zeronet.package = pkgs.zeronet-conservancy;
 
-  services.arbtt = {
+services.arbtt = {
     enable = true;
     sampleRate = 30;
-  };
+};
 
-  services = {
+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.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.light.enable = true; # Needs udev rules to properly work
 
   programs.qt5ct = {
-    enable = true;
+      enable = true;
   };
 #  programs.waybar.enable = false; # true;
 
   # Get screensharing to work
   xdg = {
-    portal = {
-      enable = true;
-      wlr.enable = true;
-    };
+      portal = {
+          enable = true;
+          wlr.enable = true;
+      };
   };
 
   systemd.user.services.xdg-desktop-portal = {
-    unitConfig = {
-      After = "graphical-session.target";
-    };
+      unitConfig = {
+          After = "graphical-session.target";
+      };
   };
 
   # Configure keymap in X11
@@ -121,12 +121,12 @@
 
   # Permit and install steam
   nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
-    "steam"
-    "steam-original"
-    "steam-runtime"
-    "mongodb"
-    "nvidia-x11"
-    "nvidia-settings"
+      "steam"
+      "steam-original"
+      "steam-runtime"
+      "mongodb"
+      "nvidia-x11"
+      "nvidia-settings"
   ];
 
   programs.steam.enable = true;
@@ -139,21 +139,21 @@
   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 = [
+      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";  }
@@ -187,8 +187,8 @@
               # stereo output
               { type = "builtin"; label = "mixer"; name = "mixR"; }
               { type = "builtin"; label = "mixer"; name = "mixL"; }
-            ];
-            links = [
+          ];
+          links = [
               # input
               { output = "copyFL:Out";  input="convFL_L:In";  }
               { output = "copyFL:Out";  input="convFL_R:In";  }
@@ -224,23 +224,23 @@
               { 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" ];
-          };
-        }
+          ];
+          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;
 
@@ -256,102 +256,107 @@
 
   # Define a user account. Don't forget to set a password with ‘passwd’.
   users.users.minion = {
-    isNormalUser = true;
-    extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" "libvirtd" "video" ]; # Enable ‘sudo’ for the user.
-    shell = pkgs.zsh;
+      isNormalUser = true;
+      extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" "libvirtd" "video" config.users.groups.keys.name ]; # Enable ‘sudo’ for the user.
+      shell = pkgs.zsh;
   };
 
   programs.zsh.enable = true;
 
   environment.variables = {
-    EDITOR = "${pkgs.vim}/bin/vim";
+      EDITOR = "${pkgs.vim}/bin/vim";
   };
   environment.defaultPackages = [
-    pkgs.perl
-    pkgs.rsync
-    pkgs.strace
-    pkgs.vim  # I'm installing vim here even though it isn't normally a default package, as I've removed nano
+      pkgs.perl
+      pkgs.rsync
+      pkgs.strace
+      pkgs.vim  # I'm installing vim here even though it isn't normally a default package, as I've removed nano
   ];  # The basic default packages, although without nano
 
   # 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.
-    ((emacsPackagesFor 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
-    gtk-engine-murrine
-    gtk_engines
-    gsettings-desktop-schemas
-    lxappearance
-    libsForQt5.qt5.qtwayland
-    qt6.qtwayland
-    texworks
-    wlogout
-    wob
-    wlsunset
-    cni-plugins
-    ccache
+      vim  # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
+      ((emacsPackagesFor 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
+      gtk-engine-murrine
+      gtk_engines
+      gsettings-desktop-schemas
+      lxappearance
+      libsForQt5.qt5.qtwayland
+      qt6.qtwayland
+      texworks
+      wlogout
+      wob
+      wlsunset
+      cni-plugins
+      ccache
+      sops
   ];
 
 #  environment.systemPackages = [
 #    import /scripts/jetbrains.rider.nix
 #  ];
 
-  nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebUIDarkMode --force-dark-mode --enable-features=WebRTCPipeWireCapturer"; # --enable-gpu";
+nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebUIDarkMode --force-dark-mode --enable-features=WebRTCPipeWireCapturer"; # --enable-gpu";
 
 
-  fonts = {
+fonts = {
     fonts = with pkgs; [
-      nerdfonts
-      noto-fonts
-      noto-fonts-cjk
-      noto-fonts-emoji
-      liberation_ttf
-      fira-code
-      fira-code-symbols
-      mplus-outline-fonts.githubRelease
-      dina-font
-      proggyfonts
-      roboto
-      roboto-mono
-      roboto-slab
-      twitter-color-emoji
-      twemoji-color-font
-      ubuntu_font_family
-      powerline-symbols
+        font-awesome
+        line-awesome
+        material-design-icons
+        weather-icons
+        emacs-all-the-icons-fonts
+        powerline-symbols
+        noto-fonts
+        noto-fonts-cjk
+        noto-fonts-emoji
+        liberation_ttf
+        fira-code
+        fira-code-symbols
+        mplus-outline-fonts.githubRelease
+        dina-font
+        proggyfonts
+        roboto
+        roboto-mono
+        roboto-slab
+        twitter-color-emoji
+        twemoji-color-font
+        ubuntu_font_family
     ];
 
     enableDefaultFonts = true;
     fontDir.enable = true;
 
     fontconfig = {
-      defaultFonts = {
-        serif = [ "Roboto Slab" ];
-        sansSerif = [ "Roboto" "Ubuntu" ];
-        monospace = [ "Roboto Mono" "Ubuntu Mono" ];
-        emoji = [ "Twitter Color Emoji" ];
-      };
+        defaultFonts = {
+            serif = [ "Roboto Slab" ];
+            sansSerif = [ "Roboto" "Ubuntu" ];
+            monospace = [ "Roboto Mono" "Ubuntu Mono" ];
+            emoji = [ "Twitter Color Emoji" ];
+        };
     };
-  };
+};
 
   # 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;
+      enable = true;
+      enableSSHSupport = true;
   };
 
   # List services that you want to enable:
@@ -377,26 +382,26 @@
   virtualisation.kvmgt.enable = true;
 
   services.openvpn.servers = {
-    clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; autoStart = false; };
+      clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; autoStart = false; };
   };
 
   environment.etc = {
-    "pam.d/swaylock" = {
-      mode = "0644";
-      text = ''
-        auth include login
-      '';
-    };
+      "pam.d/swaylock" = {
+          mode = "0644";
+          text = ''
+          auth include login
+          '';
+      };
   };
 
   nixpkgs.overlays = [
-    (self: super: {
-       steam = super.steam.override {
-         extraPkgs = pkgs: with pkgs; [
-           cups
-           libxml2
-         ];
-       };
+      (self: super: {
+          steam = super.steam.override {
+              extraPkgs = pkgs: with pkgs; [
+                  cups
+                  libxml2
+              ];
+          };
 #      polkit = super.polkit.overrideAttrs (oldAttrs: {
 #        patches = oldAttrs.patches ++ [
 #          (super.fetchpatch {
@@ -405,23 +410,23 @@
 #          })];
 #      });
     })
-  ] ++ map (f: import f) overlays ++ [
+] ++ map (f: import f) overlays ++ [
     (self: (super: builtins.listToAttrs (
-      map (f: {
-        name = builtins.elemAt (builtins.match "^(.*/)*(.*)\\.nix$" (toString f)) 1;
-        value = super.lib.callPackageWith (self) (import f) {};
-      }) packages
-    )))
-    nurpkgs.overlay
-  ];
+        map (f: {
+            name = builtins.elemAt (builtins.match "^(.*/)*(.*)\\.nix$" (toString f)) 1;
+            value = super.lib.callPackageWith (self) (import f) {};
+        }) packages
+        )))
+        nurpkgs.overlay
+    ];
 
-  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";
-  };
+    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";
 
@@ -436,55 +441,65 @@
   # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
   system.stateVersion = "21.11"; # Did you read the comment?
 
-    boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ];
+  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ];
   boot.initrd.kernelModules = [ ];
   boot.kernelModules = [ "kvm-intel" "usbcore" ];
 #  boot.extraModulePackages = [ config.boot.kernelPackages.exfat-nofuse ];  # Broken in nixpkgs; seems to be mountable and usable anyway
-  boot.extraModprobeConfig = ''
-    options usbcore use_both_schemes=y
-  '';
+boot.extraModprobeConfig = ''
+options usbcore use_both_schemes=y
+'';
 
-  fileSystems."/" =
+fileSystems."/" =
     { device = "/dev/disk/by-label/nixos";
-      fsType = "ext4";
-    };
+    fsType = "ext4";
+};
 
-  fileSystems."/boot" =
+fileSystems."/boot" =
     { device = "/dev/disk/by-label/boot";
-      fsType = "vfat";
-    };
+    fsType = "vfat";
+};
 
-  swapDevices =
+swapDevices =
     [ { device = "/dev/disk/by-label/swap"; }
-    ];
+];
 
-  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
-  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 
 #  hardware.nvidia.modesetting.enable = true;
 #  services.xserver.videoDrivers = [ "nvidia" ];
 
 #  hardware.opentabletdriver.enable = true;
 
-  virtualisation.containerd.enable = true;
+virtualisation.containerd.enable = true;
 
-  virtualisation.containerd.settings = {
+virtualisation.containerd.settings = {
     version = 2;
 #    grpc = {
 #      uid = 1000;
 #    };
   };
 
+  sops.defaultSopsFile = ../secrets/secrets.json;
+
+  sops.secrets = {
+      collabora-password = {
+          mode = "0400";
+          owner = config.users.users.minion.name;
+          group = config.users.users.nobody.group;
+      };
+  };
+
   networking.hostName = "python";
 
   networking.wireless.iwd.enable = true;
   networking.wireless.iwd.settings = {
-    Settings = {
-      AutoConnect = true;
-      AlwaysRandomizeAddress = true;
-    };
+      Settings = {
+          AutoConnect = true;
+          AlwaysRandomizeAddress = true;
+      };
   };
   networking.search = [
-    "python.local"
+      "python.local"
   ];
 }
