{ config, pkgs, ... }: {
  programs.vscode = {
    enable = true;
    package = pkgs.vscodium;
    enableUpdateCheck = false;
    enableExtensionUpdateCheck = false;
    extensions = with pkgs.vscode-extensions; [
        waderyan.gitblame       # See Git Blame info in status bar
        vscodevim.vim           # Vim keybinds
        oderwat.indent-rainbow  # Colorise indents
        naumovs.color-highlight # Highlight HTML color codes

        # Themes 
        jdinhlife.gruvbox
        github.github-vscode-theme
        enkia.tokyo-night
        dracula-theme.theme-dracula
    ];
    userSettings = {
      # Theming:
      "window.autoDetectColorScheme" = true;
      "workbench.preferredLightColorTheme" = "GitHub Light Default";
      "workbench.preferredDarkColorTheme" = "Github Dark Dimmed";
      "workbench.colorTheme" = "Github Dark Dimmed";
      "workbench.iconTheme" = "";

      # Workbench
      "workbench.startupEditor" = "none";
      "diffEditor.ignoreTrimWhitespace" = false;
      "workbench.editor.autoLockGroups" = {
          "mainThreadWebview-markdown.preview" = true;
      };
      "editor.fontFamily" = "JetBrainsMono Regular";
      "editor.fontLigatures" = true;

      # Telemetry
      "redhat.telemetry.enabled" = false;
      "telemetry.telemetryLevel" = "off";

      # Git
      "git.enableSmartCommit" = true;
      "git.confirmSync" = false;
      "git.autofetch" = true;

      # Language Specific
      # Python
      "python.diagnostics.sourceMapsEnabled" = true;
      "python.linting.pylintEnabled" = true;
      "python.linting.pylintArgs" = [
          "--rcfile=~/.config/pylintrc"
      ];

      # Rust
      "rust-analyzer.cargo.buildScripts.overrideCommand" = null;
    };
  };
}