{ pkgs, pkgs-unstable, lib, ... }: {
  nixpkgs.config.allowUnfree = true;
  
  programs.vscode = {
    enable = true;
    package = pkgs-unstable.vscode;
    mutableExtensionsDir = true; 
    
    profiles.default = {
      enableExtensionUpdateCheck = true;
      enableUpdateCheck = true;
      
      extensions = with pkgs-unstable.vscode-extensions; [
      bbenoist.nix
      jeff-hykin.better-nix-syntax
      ms-vscode.cpptools-extension-pack
      vscodevim.vim # Vim emulation
      mads-hartmann.bash-ide-vscode
      tamasfe.even-better-toml
      zainchen.json
      shd101wyy.markdown-preview-enhanced
      # Copilot
      github.copilot
      github.copilot-chat


      # Programming languages
      golang.go
      ziglang.vscode-zig
      ms-python.python
      ms-python.vscode-pylance
      # Jupyter notebooks
      ms-toolsai.jupyter
      ms-toolsai.jupyter-keymap
      ms-toolsai.jupyter-renderers
      # Icons
      catppuccin.catppuccin-vsc-icons
    ];
      
      userSettings = {
      "workbench.sideBar.location" = "right";
      "workbench.iconTheme" = "catppuccin-macchiato";
      "github.copilot.enable" = {
        "*" = false;
        "plaintext" = false;
        "markdown" = false;
        "scminput" = false;
      };
      "workbench.panel.defaultLocation" = "left";
      "editor.fontFamily" = lib.mkForce "JetBrainsMono Nerd Font, FiraCode Nerd Font, monospace";
      "editor.fontLigatures" = true;
      "editor.fontSize" = lib.mkForce 12;
      "terminal.integrated.fontFamily" = lib.mkForce "JetBrainsMono Nerd Font, FiraCode Nerd Font, monospace";
      };
    };
  };
}
