summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--flake.lock72
-rw-r--r--flake.nix12
-rw-r--r--modules/code.nix21
3 files changed, 98 insertions, 7 deletions
diff --git a/flake.lock b/flake.lock
index 623405e..7de322e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -62,6 +62,40 @@
         "type": "github"
       }
     },
+    "flake-compat_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1696426674,
+        "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
+        "owner": "edolstra",
+        "repo": "flake-compat",
+        "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
+        "type": "github"
+      },
+      "original": {
+        "owner": "edolstra",
+        "repo": "flake-compat",
+        "type": "github"
+      }
+    },
+    "flake-utils": {
+      "inputs": {
+        "systems": "systems_2"
+      },
+      "locked": {
+        "lastModified": 1710146030,
+        "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
     "home-manager": {
       "inputs": {
         "nixpkgs": [
@@ -83,6 +117,28 @@
         "type": "github"
       }
     },
+    "nix-vscode-extensions": {
+      "inputs": {
+        "flake-compat": "flake-compat_2",
+        "flake-utils": "flake-utils",
+        "nixpkgs": [
+          "nixpkgs-unstable"
+        ]
+      },
+      "locked": {
+        "lastModified": 1736473789,
+        "narHash": "sha256-euzobfF3ZGZS2r7RP+eUbZTdZ7NnsSZdEHf4iZICs7Y=",
+        "owner": "nix-community",
+        "repo": "nix-vscode-extensions",
+        "rev": "435ca21d3a971c11f5007ba7adfd2b88eda2dfe9",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "repo": "nix-vscode-extensions",
+        "type": "github"
+      }
+    },
     "nixpkgs": {
       "locked": {
         "lastModified": 1736200483,
@@ -120,6 +176,7 @@
         "agenix": "agenix",
         "flake-compat": "flake-compat",
         "home-manager": "home-manager",
+        "nix-vscode-extensions": "nix-vscode-extensions",
         "nixpkgs": "nixpkgs",
         "nixpkgs-unstable": "nixpkgs-unstable"
       }
@@ -138,6 +195,21 @@
         "repo": "default",
         "type": "github"
       }
+    },
+    "systems_2": {
+      "locked": {
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-systems",
+        "repo": "default",
+        "type": "github"
+      }
     }
   },
   "root": "root",
diff --git a/flake.nix b/flake.nix
index ff0f11f..0e2c00d 100644
--- a/flake.nix
+++ b/flake.nix
@@ -15,10 +15,15 @@
       inputs.home-manager.follows = "home-manager";
     };
 
+    nix-vscode-extensions = {
+      url = "github:nix-community/nix-vscode-extensions";
+      inputs.nixpkgs.follows = "nixpkgs-unstable";
+    };
+
     flake-compat.url = "github:edolstra/flake-compat";
   };
 
-  outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, agenix, home-manager, ... }:
+  outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, agenix, home-manager, nix-vscode-extensions, ... }:
   let
     system = "x86_64-linux";
 
@@ -27,7 +32,10 @@
       "bismuth"
     ];
 
-    overlays = [ agenix.overlays.default ];
+    overlays = [
+      agenix.overlays.default
+      nix-vscode-extensions.overlays.default
+    ];
 
     packageSets = let
       commonPkgsInputs = { inherit system; config = import ./config.nix; };
diff --git a/modules/code.nix b/modules/code.nix
index 2a34bcf..506e0bd 100644
--- a/modules/code.nix
+++ b/modules/code.nix
@@ -1,15 +1,13 @@
-{ unstablePkgs, ... }:
+{ pkgs, unstablePkgs, ... }:
 
 let
   extensions = with unstablePkgs.vscode-extensions; [
-    # Microsoft Extensions
+    # Microsoft vendor extensions
     ms-vscode.hexeditor
     ms-vscode-remote.remote-containers
     ms-vscode-remote.remote-ssh
     ms-azuretools.vscode-docker
     github.codespaces
-    github.copilot
-    github.copilot-chat
 
     # Usability
     vscodevim.vim
@@ -38,11 +36,24 @@ let
     jdinhlife.gruvbox
   ];
 
+  externalExtensions = with pkgs.open-vsx; [
+    # Small extensions that aren't included in nixpkgs
+    geequlim.godot-tools
+    miguelsolorio.fluent-icons
+    tonybaloney.vscode-pets
+  ];
+
+  newVendorExtensions = with pkgs.vscode-marketplace; [
+    # Quick editing and viewing of ad-hoc repos and pull request
+    ms-vscode.remote-repositories
+    github.remotehub
+  ];
+
   code =
     with unstablePkgs;
     vscode-with-extensions.override {
       vscode = vscodium;
-      vscodeExtensions = extensions;
+      vscodeExtensions = extensions ++ externalExtensions ++ newVendorExtensions;
     };
 in
 {