{pkgs, ...}: 
{
  programs.vscode = {
    enable = true;

    # profiles = {
    #   default = {
    extensions = with pkgs.vscode-extensions; [
      # QOL
      mhutchie.git-graph
      redhat.vscode-yaml
      github.copilot

      # python
      ms-python.python
      ms-python.isort
      ms-python.debugpy
      ms-python.vscode-pylance

      # Nix language
      jnoortheen.nix-ide
    ];
      # };

    keybindings = [
      {
        key = "ctrl+#";
        command = "editor.action.commentLine";
        when = "editorTextFocus";
      }
    ];

    userSettings = {
      # visual
      "editor.fontFamily" = "'FiraCode Nerd Font Mono', 'monospace', monospace";
      "terminal.integrated.fontFamily" = "FiraCode Nerd Font Mono";
      "workbench.iconTheme" = "vs-seti";

      # telemetry
      "telemetry.enableCrashReporter" = false;
      "telemetry.enableTelemetry" = false;
      "redhat.telemetry.enabled" = false;


      # editor QOL
      "security.workspace.trust.untrustedFiles" = "open";
      "editor.wordWrap" = "on";
      "files.autoSave" = "onWindowChange";
      "files.autoSaveDelay" = 1000;
      "files.insertFinalNewline" = true;
      "files.trimTrailingWhitespace" = true;
      "git.ignoreMissingGitWarning" = true;
      "editor.suggestSelection" = "first";
      "workbench.startupEditor" = "newUntitledFile";
      "editor.renderWhitespace" = "none";
      "editor.acceptSuggestionOnEnter" = "off";
      "explorer.confirmDelete" = false;
      "git.confirmSync" = false;
      "git.enableSmartCommit" = true;
      "editor.fontLigatures" = true;
      "explorer.confirmDragAndDrop" = false;
      "editor.inlineSuggest.enabled" = true;
      "diffEditor.renderSideBySide" = false;
      "github.copilot.enable" = {
          "*" = true;
          "plaintext" = true;
          "markdown" = true;
          "scminput" = false;
          "yaml" = true;
      };
      "editor.bracketPairColorization.enabled" = true;
      "git.autofetch" = true;
      "terminal.integrated.enableMultiLinePasteWarning" = false;
      "editor.unicodeHighlight.nonBasicASCII" = false;
      "jupyter.disableJupyterAutoStart" = true;
      "editor.unicodeHighlight.invisibleCharacters" = false;
      "editor.unicodeHighlight.ambiguousCharacters" = false;
      "diffEditor.ignoreTrimWhitespace" = false;
      "update.showReleaseNotes" = false;
      "terminal.external.linuxExec" = "kitty";
      "window.dialogStyle" = "custom";
      "window.titleBarStyle" = "custom";
      "github.copilot.editor.enableAutoCompletions" = true;
      "window.menuBarVisibility" = "compact";
      "workbench.colorTheme" = "Default Light+";
      "github.copilot.advanced" = {};
      "git.openRepositoryInParentFolders" = "never";
      "terminal.integrated.commandsToSkipShell" = [
          "language-julia.interrupt"
      ];
      "diffEditor.hideUnchangedRegions.enabled" = true;

      # Python
      "jupyter.askForKernelRestart" = false;
      "workbench.editorAssociations" = {
          "*.ipynb" = "jupyter-notebook";
      };
      "notebook.cellToolbarLocation" = {
          "default" = "right";
          "jupyter-notebook" = "left";
      };
      "jupyter.widgetScriptSources" = [
          "jsdelivr.com"
          "unpkg.com"
      ];


      # Typst
      "[typst]" = {
          "editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?";
      };
      "[typst-code]" = {
          "editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?";
      };
      "tinymist.fontPaths" = [
          "./font"
      ];
    };
  };

}