Install vscode with plugins

- Declarative plugin config lets us keep VSC config not imperatively writable
  while having useful plugins
- For now, I'll only install VSLS and the onehalf theme to match with everything
  else
diff --git a/modules/vscode.nix b/modules/vscode.nix
new file mode 100644
index 0000000..4a4c6d4
--- /dev/null
+++ b/modules/vscode.nix
@@ -0,0 +1,22 @@
+{
+  pkgs,
+  vscode-extensions,
+  system,
+  ...
+}: {
+  home.programs.vscode = {
+    enable = true;
+    package = pkgs.vscodium;
+    extensions = with vscode-extensions.packages.${system}; [
+      vscode.quandinh.onehalf-dark
+      pkgs.vscode-extensions.ms-vsliveshare.vsliveshare
+    ];
+    mutableExtensionsDir = false;
+    userSettings = {
+      "update.channel" = "none";
+      "workbench.colorTheme" = "onehalf-dark";
+      "workbench.startupEditor" = "none";
+    };
+  };
+  config.internal.allowUnfree = ["vscode-extension-ms-vsliveshare-vsliveshare"];
+}