{ config, pkgs, lib, user, host, rice, allowed, ... }:
{
  config = lib.mkIf (host != "NxACE") {
    home.packages = [
      pkgs.vscodium
      pkgs.nixpkgs-fmt
    ];
    programs.vscode = {
      enable = true;
      package = pkgs.vscodium;
      extensions = with pkgs.vscode-extensions; [
        jnoortheen.nix-ide
        ms-python.python
        ms-python.black-formatter
        redhat.vscode-yaml
        redhat.vscode-xml
        ms-python.python
        mhutchie.git-graph
        github.vscode-pull-request-github
        esbenp.prettier-vscode
        gencer.html-slim-scss-css-class-completion
        donjayamanne.githistory
        mads-hartmann.bash-ide-vscode
        bungcip.better-toml
        arrterian.nix-env-selector
        # ms-vscode-remote.remote-ssh
  
      ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
        {
          name = "just-black";
          publisher = "nur";
          version = "3.1.1";
          sha256 = "sha256-fatJZquCDsLDFGVzBol2D6LIZUbZ6GzqcVEFAwLodW0=";
        }
        {
          name = "vscode-sshfs";
          publisher = "Kelvin";
          version = "1.26.1";
          sha256 = "sha256-WO9vYELNvwmuNeI05sUBE969KAiKYtrJ1fRfdZx3OYU=";
        }
        {
          name = "color-highlight";
          publisher = "naumovs";
          version = "2.8.0";
          sha256 = "sha256-mT2P1lEdW66YkDRN6fi0rmmvvyBfXiJjAUHns8a8ipE=";
        }
        {
          name = "dancehelix";
          publisher = "silverquark";
          version = "0.5.16";
          sha256 = "sha256-oHwtlbB18ctEnfStDOpJ+2/Kq41JZog8FVhTa1/s7m0=";
        }
        # {
        #   name = "remote-ssh-edit";
        #   publisher = "ms-vscode-remote";
        #   version = "0.86.0";
        #   sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
        # }
        # {
        #   name = "remote-ssh";
        #   publisher = "ms-vscode-remote";
        #   version = "0.110.2024030715";
        #   sha256 = "sha256-gkxrBwPRDdLFaxc1/vYFBsv4Z0JOhDzb8LrLhkToC/g=";
        # }
      ];
      userSettings = {
        workbench.colorTheme = "Just Black";
        editor.fontFamily = "'${rice.font.code.name2}', 'monospace', monospace";
        remote.SSH.useLocalServer = false;
      };
      enableUpdateCheck = false;
      enableExtensionUpdateCheck = false;
      keybindings = [
        {
          key = "ctrl+d";
          command = "editor.action.deleteLines";
          when = "textInputFocus";
        }
        {
          key = "ctrl+shift+d";
          command = "editor.action.duplicateSelection";
          when = "textInputFocus";
        }
        {
          # unset so that ctrl d is not set twice
          key = "";
          command = "editor.action.addSelectionToNextFindMatch";
          when = "editorFocus";
        }
        {
          # unset so that ctrl shift d is not set twice
          key = "";
          command = "workbench.view.debug";
        }
      ];
    };
  };
  
  imports = if host != "NxACE" then [
    # Make vscode settings writable
    (import
      (builtins.fetchurl {
        url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/mutability.nix";
        sha256 = "4b5ca670c1ac865927e98ac5bf5c131eca46cc20abf0bd0612db955bfc979de8";
      })
      { inherit config lib; })

    (import
      (builtins.fetchurl {
        url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/vscode.nix";
        sha256 = "fed877fa1eefd94bc4806641cea87138df78a47af89c7818ac5e76ebacbd025f";
      })
      { inherit config lib pkgs; })
  ] else [];
}
