diff --git a/dotfiles/neovim/README.md b/dotfiles/neovim/README.md
index dc807c7..1fd001a 100644
--- a/dotfiles/neovim/README.md
+++ b/dotfiles/neovim/README.md
@@ -7,28 +7,28 @@ Table of my own keybinds. Here as documentation for myself. I am yet to include
 > Things written using italics are chords
 > (aka all the keys need to be pressed at the same time)
 
-| Keybind          | Description                                 | Plugins            |
-| ---------------- | ------------------------------------------- | ------------------ |
-| vv               | Create vertical split                       |                    |
-| \<Space>\<Space> | Save                                        |                    |
-| _jk_             | Exit insert mode                            |                    |
-| _\<leader>k_     | Insert digraph                              |                    |
-| _\<leader>a_     | Swap last 2 used buffers                    |                    |
-| C-n              | Open tree                                   | nvim-tree          |
-| _vp_             | Run command in another tmux pane            | vimux              |
-| _sk_             | Move to previous lh-bracket marker          | lh-brackets        |
-| _sj_             | Move to next lh-bracket marker              | lh-brackets        |
-| _mo_             | Move outside the current brackets           | lh-brackets        |
-| _ml_             | Remove all markers and move to the last one | lh-brackets        |
-| C-hjkl           | Navigation between vim & tmux panes         | vim-tmux-navigator |
-| J                | Show line diagnostics                       | lspconfig          |
-| K                | Show hover info                             | lspconfig          |
-| L                | Signature help (?)                          | lspconfig          |
-| gD               | Go to declaration                           | lspconfig          |
-| gd               | Go to definition                            | lspconfig          |
-| gi               | Go to implementation                        | lspconfig          |
-| \<leader>rn      | Rename                                      | lspconfig          |
-| \<leader>f       | format                                      | lspconfig          |
+| Keybind      | Description                                 | Plugins            |
+| ------------ | ------------------------------------------- | ------------------ |
+| vv           | Create vertical split                       |                    |
+| _jl_         | Save                                        |                    |
+| _jk_         | Exit insert mode                            |                    |
+| _\<leader>k_ | Insert digraph                              |                    |
+| _\<leader>a_ | Swap last 2 used buffers                    |                    |
+| C-n          | Open tree                                   | nvim-tree          |
+| _vp_         | Run command in another tmux pane            | vimux              |
+| _sk_         | Move to previous lh-bracket marker          | lh-brackets        |
+| _sj_         | Move to next lh-bracket marker              | lh-brackets        |
+| _mo_         | Move outside the current brackets           | lh-brackets        |
+| _ml_         | Remove all markers and move to the last one | lh-brackets        |
+| C-hjkl       | Navigation between vim & tmux panes         | vim-tmux-navigator |
+| J            | Show line diagnostics                       | lspconfig          |
+| K            | Show hover info                             | lspconfig          |
+| L            | Signature help (?)                          | lspconfig          |
+| gD           | Go to declaration                           | lspconfig          |
+| gd           | Go to definition                            | lspconfig          |
+| gi           | Go to implementation                        | lspconfig          |
+| \<leader>rn  | Rename                                      | lspconfig          |
+| \<leader>f   | format                                      | lspconfig          |
 
 ### Lh-brackets
 
@@ -47,7 +47,7 @@ The default brackets I load in each buffer are (), [], "", '', {} and \`\`. Diff
 | \<leader>s  | Show symbols using tree-sitter |                        |
 | \<leader>gj | List git commits               |                        |
 | \<leader>gk | List git branches              |                        |
-| \<leader>p  | Interactive file broswer       | telescope-file-browser |
+| _jp_        | Interactive file broswer       | telescope-file-browser |
 | _ui_        | Insert unicode char            |                        |
 
 ### Idris
diff --git a/dotfiles/neovim/lua/my/plugins/telescope.lua b/dotfiles/neovim/lua/my/plugins/telescope.lua
index ab7be4c..b6c51f7 100644
--- a/dotfiles/neovim/lua/my/plugins/telescope.lua
+++ b/dotfiles/neovim/lua/my/plugins/telescope.lua
@@ -26,7 +26,7 @@ local bindings = {
         git_commits = "<Leader>gj",
         git_branches = "<Leader>gk"
     },
-    ["extensions.file_browser.file_browser"] = "<Leader>p",
+    ["extensions.file_browser.file_browser"] = {chord = 1, key = "jp"},
     extensions = {
         unicode = {
             picker = {mode = "i", kind = "dropdown", key = "ui", chord = 1}
diff --git a/flake.lock b/flake.lock
index 2b1a675..8891a9d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -383,7 +383,7 @@
     "home-manager": {
       "inputs": {
         "nixpkgs": [
-          "nixpkgs"
+          "nixpkgs-unstable"
         ]
       },
       "locked": {
diff --git a/flake.nix b/flake.nix
index 342f05e..c2f1148 100644
--- a/flake.nix
+++ b/flake.nix
@@ -8,7 +8,7 @@
 
     home-manager = {
       url = "github:nix-community/home-manager";
-      inputs.nixpkgs.follows = "nixpkgs";
+      inputs.nixpkgs.follows = "nixpkgs-unstable";
     };
 
     # keyboard layout configuration
diff --git a/modules/applications/direnv.nix b/modules/applications/direnv.nix
index 755155c..c8eb5a7 100644
--- a/modules/applications/direnv.nix
+++ b/modules/applications/direnv.nix
@@ -3,8 +3,6 @@
   home-manager.users.adrielus = {
     programs.direnv.enable = true;
     programs.direnv.nix-direnv.enable = true;
-
-    # optional for nix flakes support in home-manager 21.11, not required in home-manager unstable or 22.05
     programs.direnv.nix-direnv.enableFlakes = true;
   };
 }
diff --git a/modules/nix.nix b/modules/nix.nix
index 7cdafc4..c8d61e4 100644
--- a/modules/nix.nix
+++ b/modules/nix.nix
@@ -1,13 +1,19 @@
 { pkgs, ... }: {
   nix = {
-    trustedUsers = [ "root" "adrielus" "@wheel" ];
-    autoOptimiseStore = true;
-    optimise.automatic = true;
-    gc.automatic = false;
-
     # Emanble nix flakes
     package = pkgs.nixFlakes;
+
+    trustedUsers = [ "root" "adrielus" "@wheel" ];
+
+    autoOptimiseStore = true;
+    optimise.automatic = true;
+    gc.automatic = true;
+
+    # Protect nix-shell from garbage collection
+    # TODO: look into whether this is still needed when using nix flakes
     extraOptions = ''
+      keep-outputs = true
+      keep-derivations = true
       experimental-features = nix-command flakes
     '';