summary refs log tree commit diff
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2025-01-11 03:05:39 +0100
committerMel <einebeere@gmail.com>2025-01-11 03:05:39 +0100
commit955e83bd5fba137e1bb9fb171938e6d486ba21a0 (patch)
treef18b6fcc548f7747b9a1c01d09851f13a00f2262
parentd1661c1537713a1c3bcec702ba7fede5da4789d8 (diff)
downloadminerals-955e83bd5fba137e1bb9fb171938e6d486ba21a0.tar.zst
minerals-955e83bd5fba137e1bb9fb171938e6d486ba21a0.zip
Replace stateful VSCode with declarative VSCodium configuration
Signed-off-by: Mel <einebeere@gmail.com>
-rw-r--r--modules/code.nix50
-rw-r--r--modules/common.nix1
-rw-r--r--modules/user.nix1
-rw-r--r--pkgs/default.nix1
-rw-r--r--pkgs/electron-wayland-wrappers.nix3
5 files changed, 52 insertions, 4 deletions
diff --git a/modules/code.nix b/modules/code.nix
new file mode 100644
index 0000000..2a34bcf
--- /dev/null
+++ b/modules/code.nix
@@ -0,0 +1,50 @@
+{ unstablePkgs, ... }:
+
+let
+  extensions = with unstablePkgs.vscode-extensions; [
+    # Microsoft 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
+    waderyan.gitblame
+    mkhl.direnv
+    alefragnani.bookmarks
+
+    # Language support
+    ms-vscode.makefile-tools
+    ms-vscode.cpptools-extension-pack
+    mesonbuild.mesonbuild
+    ms-python.python
+    ms-python.debugpy
+    charliermarsh.ruff
+    golang.go
+    jnoortheen.nix-ide
+    rust-lang.rust-analyzer
+    haskell.haskell
+    justusadam.language-haskell
+    elixir-lsp.vscode-elixir-ls
+
+    # Pretty :3
+    aaron-bond.better-comments
+    catppuccin.catppuccin-vsc-icons
+    catppuccin.catppuccin-vsc
+    jdinhlife.gruvbox
+  ];
+
+  code =
+    with unstablePkgs;
+    vscode-with-extensions.override {
+      vscode = vscodium;
+      vscodeExtensions = extensions;
+    };
+in
+{
+  environment.systemPackages = [ code ];
+}
diff --git a/modules/common.nix b/modules/common.nix
index 9628921..2557816 100644
--- a/modules/common.nix
+++ b/modules/common.nix
@@ -5,6 +5,7 @@
     ./nix.nix
     ./user.nix
     ./locale.nix
+    ./code.nix
     ./vim.nix
     ./tmux.nix
     ./gnome.nix
diff --git a/modules/user.nix b/modules/user.nix
index 37941cf..7c5553c 100644
--- a/modules/user.nix
+++ b/modules/user.nix
@@ -20,7 +20,6 @@
       discord
       element-desktop
       obsidian
-      vscode
     ]);
   };
 }
diff --git a/pkgs/default.nix b/pkgs/default.nix
index d98a640..642ebc9 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -4,7 +4,6 @@
   inherit (pkgs.callPackages ./electron-wayland-wrappers.nix { })
     discord
     obsidian
-    vscode
     element-desktop
     ;
 
diff --git a/pkgs/electron-wayland-wrappers.nix b/pkgs/electron-wayland-wrappers.nix
index b83f258..7b92b39 100644
--- a/pkgs/electron-wayland-wrappers.nix
+++ b/pkgs/electron-wayland-wrappers.nix
@@ -1,7 +1,7 @@
 {
   symlinkJoin, makeWrapper,
   
-  discord, obsidian, vscode, element-desktop
+  discord, obsidian, element-desktop
 }:
 
 let
@@ -37,6 +37,5 @@ in
 {
   discord = makeElectronWrapper { name = "Discord"; package = discord; bad = true; };
   obsidian = makeElectronWrapper { name = "obsidian"; package = obsidian; };
-  vscode = makeElectronWrapper { name = "vscode"; binary = "code"; package = vscode.fhs; };
   element-desktop = makeElectronWrapper { name = "element-desktop"; package = element-desktop; };
 }