{ osConfig, config, pkgs, inputs, lib, ... }: {
  config = lib.mkIf osConfig.custom.graphical.code.enable rec {
    #home.activation.makeVSCodeConfigWritable =
    #  let
    #    configDirName = {
    #      "vscode" = "Code";
    #      "vscode-insiders" = "Code - Insiders";
    #      "vscodium" = "VSCodium";
    #    }.${programs.vscode.package.pname};
    #    configPath =
    #      "${config.xdg.configHome}/${configDirName}/User/settings.json";
    #  in
    #  {
    #    after = [ "writeBoundary" ];
    #    before = [ ];
    #    data = ''
    #      if [ -e "$(readlink ${configPath})" ]; then
    #        install -m 0640 "$(readlink ${configPath})" ${configPath}
    #      fi
    #    '';
    #  };
    programs.vscode = {
      enable = true;
      package = pkgs.vscodium;
      #userSettings = { typst-lsp.exportPdf = "onType"; };
      profiles.default = {
        userSettings = {
          "Lua.workspace.library" = [
            "/home/kopatz/.vscode-oss/extensions/evaisa.vscode-noita-api-1.4.2/out/NoitaLua"
          ];
          "editor.mouseWheelZoom" = true;
          "files.autoSave" = "afterDelay";
          "clangd.path" = "/run/current-system/sw/bin/clangd";
        };
        extensions = with pkgs.vscode-extensions; [
          jnoortheen.nix-ide
          #rust-lang.rust-analyzer broken on unstable
          myriad-dreamin.tinymist
          #tomoki1207.pdf latex-workshop is faster to preview pdf
          james-yu.latex-workshop
          twxs.cmake
          llvm-vs-code-extensions.vscode-clangd
        ];
      };
    };
  };
}
