my VSCode setup

my VSCode setup

February 25, 2026

i run a VS Code setup that is customized to feel cleaner and closer to zed.

this post is the exact setup, with links to the real config.

setup at a glance

why this setup

i like zed's UI, but i still want VS Code's ecosystem and remote workflow.

so instead of switching editors, i customized VS Code.

the biggest difference is the custom UI layer, not the extension count.

how the custom ui started

while scrolling twitter, i found stumbled upon a github discussion with a lot of VS Code custom styles.

the original extension in that thread was deprecated, but i kept the ideas i liked and recreated the look using Custom UI Style.

config

settings.json
{
  // Behaviour
  "diffEditor.ignoreTrimWhitespace": false,
  "editor.formatOnPaste": false,
  "editor.formatOnSave": true,
  "security.workspace.trust.untrustedFiles": "open",
  "security.promptForRemoteFileProtocolHandling": false,

  "workbench.activityBar.location": "bottom",
  "workbench.editor.highlightModifiedTabs": true,
  "workbench.startupEditor": "readme",
  "workbench.editor.showIcons": false,
  "outline.collapseItems": "alwaysCollapse",
  "outline.showVariables": false,
  "outline.showProperties": false,

  "window.titleBarStyle": "native",
  "window.commandCenter": false,

  "typescript.updateImportsOnFileMove.enabled": "never",
  "javascript.updateImportsOnFileMove.enabled": "never",

  "files.autoSave": "afterDelay",
  "files.autoSaveDelay": 100,

  "explorer.confirmDelete": false,
  "explorer.confirmDragAndDrop": false,

  "editor.inlineSuggest.enabled": true,

  "git.autofetch": true,
  "github.copilot.enable": {
    "*": true,
    "plaintext": true,
    "markdown": false,
    "scminput": false
  },
  "github.copilot.nextEditSuggestions.enabled": true,

  // Terminal
  "terminal.integrated.allowChords": false,
  "terminal.integrated.macOptionIsMeta": true,
  "terminal.integrated.enableMultiLinePasteWarning": "never",
  "terminal.integrated.cursorBlinking": true,
  "terminal.integrated.cursorStyle": "line",
  "terminal.integrated.fontFamily": "JetBrainsMono Nerd Font, JetBrainsMono Nerd Font Mono, JetBrains Mono, monospace",
  "terminal.integrated.fontSize": 13,
  "terminal.integrated.lineHeight": 1.2,
  "terminal.integrated.sendKeybindingsToShell": true,
  "terminal.integrated.suggest.enabled": false,
  "terminal.integrated.defaultProfile.linux": "zsh",
  "terminal.integrated.profiles.linux": {
    "zsh": {
      "path": "zsh"
    }
  },

  // Editor
  "editor.fontLigatures": true,
  "editor.fontSize": 14,
  "chat.editor.fontSize": 14,
  "editor.lineHeight": 1.6,
  "editor.fontFamily": "JetBrainsMono Nerd Font, JetBrainsMono Nerd Font Mono, JetBrains Mono, monospace",
  "editor.minimap.enabled": false,
  "editor.wordWrap": "on",
  "editor.cursorStyle": "line",
  "editor.cursorBlinking": "smooth",
  "editor.cursorSmoothCaretAnimation": "on",

  // Scrollbars
  "editor.scrollbar.vertical": "visible",
  "editor.scrollbar.verticalScrollbarSize": 9,
  "editor.scrollbar.horizontalScrollbarSize": 9,

  // Theme
  "window.autoDetectColorScheme": true,

  "workbench.iconTheme": "quill-icons",
  "workbench.preferredDarkColorTheme": "Cursor Dark",
  "workbench.preferredLightColorTheme": "Cursor Light",

  // UI Styles
  "custom-ui-style.reloadWithoutPrompting": true,

  "custom-ui-style.font.monospace": "JetBrainsMono Nerd Font, JetBrainsMono Nerd Font Mono, JetBrains Mono, monospace",
  "custom-ui-style.font.sansSerif": "JetBrains Mono, -apple-system",

  "custom-ui-style.electron": {
    "titleBarStyle": "hiddenInset",
    "trafficLightPosition": { "x": 12, "y": 12 }
  },

  "custom-ui-style.stylesheet": {
    ".monaco-workbench": {
      "--activitybar-width": "84px",
      "--titlebar-height": "38px"
    },

    ".editor .decorationsOverviewRuler": {
      "display": "none !important"
    },

    // Scrollbar
    "div.visible.scrollbar.vertical .slider, div.invisible.scrollbar.vertical .slider": {
      "border-radius": "10px !important",
      "left": "-4px !important"
    },
    "div.visible.scrollbar.horizontal .slider, div.invisible.scrollbar.horizontal .slider": {
      "border-radius": "10px !important",
      "top": "-4px !important"
    },

    // Breadcrumbs
    ".monaco-breadcrumbs": {
      "font-size": "10px"
    },

    // Hide editor title text
    ".monaco-workbench .part > .title > .title-label h2": {
      "display": "none"
    },

    // Wide Action Bar
    ".part.sidebar.left .composite-bar": {
      "min-width": "100% !important",
      ".monaco-action-bar .actions-container": {
        "justify-content": "space-between !important"
      }
    },

    // Titlebar
    ".part.sidebar.left .composite.title": {
      "-webkit-app-region": "drag",
      "&, .title-actions, .global-actions, .monaco-toolbar": {
        "height": "var(--titlebar-height)"
      },

      ".title-label": {
        "line-height": "var(--titlebar-height)"
      },

      "border-bottom": "1px solid var(--vscode-sideBar-border)"
    },

    ".title.tabs": {
      "--editor-group-tab-height": "var(--titlebar-height) !important"
    },

    // Make line numbers a bit smaller.
    ".editor .margin-view-overlays .line-numbers": {
      "font-size": "85%"
    },

    // Search inputs / Results in monospaced font.
    ".search-widget textarea, .find-widget textarea, .search-view .results .match": {
      "font-family": "var(--cus-monospace-font) !important"
    },

    ".monaco-workbench.nosidebar .part.editor > .content .editor-group-container > .title .tabs-container": {
      "padding-left": "var(--activitybar-width) !important"
    },

    ".monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container, .monaco-workbench .part.statusbar": {
      "-webkit-app-region": "drag",

      // Allow interaction on tabs and action items
      ".tab, .monaco-action-bar, .statusbar-item, .title-actions .action-label": {
        "-webkit-app-region": "no-drag"
      }
    },

    ".monaco-workbench .part.sidebar > .title": {
      "-webkit-app-region": "drag",

      // Allow interaction on tabs and action items
      ".statusbar-item, .title-actions .action-label": {
        "-webkit-app-region": "no-drag"
      }
    }
  },
  "window.customTitleBarVisibility": "never",
  "claudeCode.preferredLocation": "sidebar",
  "claudeCode.allowDangerouslySkipPermissions": true,
  "claudeCode.initialPermissionMode": "bypassPermissions",
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}

screenshot

My VS Code setup

extensions

this list is intentionally simple:

thanks again for reading!

Leave comment

Written by

Anirudh

Created At

Wed Feb 25 2026

Updated At

Wed May 13 2026