{
  config,
  lib,
  pkgs,
  vars,
  ...
}: let
in {
  programs.vscode = {
    enable = true;
    package = pkgs.vscodium;
    enableUpdateCheck = false;
    extensions = with pkgs.vscode-extensions;
      [
        catppuccin.catppuccin-vsc
        pkief.material-icon-theme
        vscodevim.vim
        bbenoist.nix
        ms-python.python
        ms-toolsai.jupyter
        ms-toolsai.jupyter-renderers
        ms-toolsai.jupyter-keymap
      ]
      ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
        {
          name = "remote-ssh-edit";
          publisher = "ms-vscode-remote";
          version = "0.47.2";
          sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
        }
      ];
    userSettings = {
      #Theming
      "workbench.colorTheme" = "Catppuccin Mocha";
      "catppuccin.accentColor" = "green";
      "workbench.iconTheme" = "material-icon-theme";
      "window.menuBarVisibility" = "toggle";
      "editor.minimap.autohide" = false;
      #Extensions - General
      "extensions.autoCheckUpdates" = false;
      "extensions.autoUpdate" = false;
      # Startup
      "workbench.startupEditor" = "none";
      # Vim
      "editor.lineNumbers" = "relative";
    };
    keybindings = [
      # Navigating Autosuggest and Quick Open entries
      {
        "key" = "ctrl+j";
        "command" = "selectNextSuggestion";
        "when" = "suggestWidgetVisible";
      }
      {
        "key" = "ctrl+k";
        "command" = "selectPrevSuggestion";
        "when" = "suggestWidgetVisible";
      }
      {
        "key" = "ctrl+j";
        "command" = "workbench.action.quickOpenSelectNext";
        "when" = "inQuickOpen";
      }
      {
        "key" = "ctrl+k";
        "command" = "workbench.action.quickOpenSelectPrevious";
        "when" = "inQuickOpen";
      }
    ];
  };
}