Ctrl K

VS Code Workflow

Keyboard-driven VS Code workflow with a clean UI, visible editor tabs, Explorer navigation, and a small custom shortcut set.

Keyboard-driven workflows for VS Code. This page documents the clean UI settings, custom tab shortcuts, Explorer tree navigation, and daily editing shortcuts used for a minimal development setup.

Overview

  • Use visible editor tabs instead of a single-tab workflow.
  • Use Ctrl+, and Ctrl+. to move between open tabs.
  • Use Ctrl+Shift+E to focus the Explorer tree.
  • Use Ctrl+1 to return from the Explorer tree to the editor.
  • Use the Explorer tree for file selection, rename, delete, copy, cut, paste, and folder navigation.
  • Use a minimal VS Code UI so i3 handles the window environment and VS Code stays focused on editing.
  • Keep the shortcut set small so the workflow is easy to remember.

Open user settings

Open the command palette and edit user settings directly as JSON.

Ctrl+Shift+P
Preferences: Open User Settings (JSON)

On Linux, the file is usually stored here.

~/.config/Code/User/settings.json

For Code OSS, the path may be different.

~/.config/Code - OSS/User/settings.json

Open keyboard shortcuts

Use the keyboard shortcuts UI for searching command names and checking existing bindings.

Ctrl+K Ctrl+S

Open the raw keyboard shortcuts JSON when the final configuration should be edited directly.

Ctrl+Shift+P
Preferences: Open Keyboard Shortcuts (JSON)

On Linux, the file is usually stored here.

~/.config/Code/User/keybindings.json

For Code OSS, the path may be different.

~/.config/Code - OSS/User/keybindings.json

User settings JSON

Use this user settings file for the clean VS Code view. It keeps editor tabs visible, disables preview tabs, hides the title/menu/status/activity UI, disables the command center, and keeps the editor focused.

{
  // Theme
  "workbench.colorTheme": "Visual Studio Dark",

  // Editor basics
  "editor.minimap.enabled": false,
  "editor.stickyScroll.enabled": false,
  "files.autoSave": "afterDelay",

  // Extension behavior
  "extensions.ignoreRecommendations": true,
  "extensions.autoUpdate": false,
  "update.mode": "none",

  // TypeScript / JavaScript
  "js/ts.updateImportsOnFileMove.enabled": "never",

  // Telemetry
  "redhat.telemetry.enabled": false,

  // GitHub Copilot disabled
  "github.copilot.enable": {
    "*": false,
    "plaintext": false,
    "markdown": false,
    "scminput": false
  },

  // Minimal UI
  "window.titleBarStyle": "native",
  "window.customTitleBarVisibility": "never",
  "window.menuBarVisibility": "hidden",
  "window.commandCenter": false,
  "workbench.layoutControl.enabled": false,
  "workbench.statusBar.visible": false,
  "workbench.activityBar.location": "hidden",
  "workbench.activityBar.compact": true,
  "workbench.navigationControl.enabled": false,
  "workbench.browser.showInTitleBar": false,

  // Tabs
  "workbench.editor.showTabs": "multiple",
  "workbench.editor.enablePreview": false,
  "workbench.editor.enablePreviewFromQuickOpen": false,

  // Chat layout
  "chat.viewSessions.orientation": "stacked",

  // Confirmations
  "window.confirmSaveUntitledWorkspace": false,
  "explorer.confirmPasteNative": false,

  // Turkish locale allowed for unicode highlighting
  "editor.unicodeHighlight.allowedLocales": {
    "tr": true
  }
}
  • window.titleBarStyle sets VS Code to use the native title bar mode.
  • window.customTitleBarVisibility removes the remaining custom title bar strip.
  • window.menuBarVisibility hides the File, Edit, Selection, View, Go, Run, Terminal, Help row.
  • workbench.layoutControl.enabled removes the layout control icon area.
  • window.commandCenter disables the command center in the title area.
  • workbench.statusBar.visible hides the bottom status bar.
  • workbench.activityBar.location hides the left activity icon strip.
  • workbench.editor.showTabs keeps the normal tab row visible.
  • workbench.editor.enablePreview disables preview tabs so opened files stay as real tabs.
  • workbench.editor.enablePreviewFromQuickOpen disables preview behavior from quick open.

Keyboard shortcuts JSON

Use this small keyboard shortcuts file. It keeps only the custom shortcuts used in the workflow.

// Place your key bindings in this file to override the defaults
[
  {
    "key": "ctrl+n",
    "command": "explorer.newFile",
    "when": "filesExplorerFocus && !inputFocus"
  },
  {
    "key": "ctrl+shift+n",
    "command": "explorer.newFolder",
    "when": "filesExplorerFocus && !inputFocus"
  },
  {
    "key": "ctrl+,",
    "command": "workbench.action.previousEditor"
  },
  {
    "key": "ctrl+.",
    "command": "workbench.action.nextEditor"
  }
]
  • Ctrl+, moves to the previous open editor tab.
  • Ctrl+. moves to the next open editor tab.
  • Ctrl+N creates a new file only when the Explorer tree is focused.
  • Ctrl+Shift+N creates a new folder only when the Explorer tree is focused.
  • The when condition keeps file and folder creation scoped to the Explorer tree.

Reload VS Code after settings changes

Some UI settings apply only after the VS Code window reloads. Use the command palette to reload the window.

Ctrl+Shift+P
Developer: Reload Window

A full restart also works.

pkill code
code

Effective daily shortcut set

This is the small set used in daily work.

ShortcutAction
Ctrl+Shift+EFocus Explorer tree
Ctrl+1Focus editor
Ctrl+,Previous open tab
Ctrl+.Next open tab
Ctrl+NNew file when Explorer is focused
Ctrl+Shift+NNew folder when Explorer is focused
Up / DownMove inside Explorer tree
Left / RightCollapse or expand folders in Explorer
EnterOpen selected file
F2Rename selected file or folder
DeleteDelete selected file or folder
Ctrl+CCopy selected file or folder
Ctrl+XCut selected file or folder
Ctrl+VPaste selected file or folder

Tab workflow

Tabs are visible and preview mode is disabled. Opening a file keeps it as a real tab instead of replacing the previous file.

Ctrl+,        # previous open tab
Ctrl+.        # next open tab
Ctrl+W        # close current tab
Ctrl+Shift+T  # reopen closed tab
  • Ctrl+, and Ctrl+. move between open tabs, not code history.
  • Go Back and Go Forward are not part of this workflow.
  • The goal is predictable tab switching, not navigation history.

Explorer tree workflow

Use the Explorer tree when navigating the project structure or managing files and folders.

Ctrl+Shift+E  # focus Explorer tree
Ctrl+1        # return to editor

Up / Down     # move selection
Right         # expand selected folder
Left          # collapse selected folder
Enter         # open selected file

Ctrl+N        # new file when Explorer is focused
Ctrl+Shift+N  # new folder when Explorer is focused
F2            # rename selected file or folder
Delete        # delete selected file or folder
Ctrl+C        # copy selected file or folder
Ctrl+X        # cut selected file or folder
Ctrl+V        # paste selected file or folder
  • The Explorer must be focused before Ctrl+N creates a project file.
  • The Explorer must be focused before Ctrl+Shift+N creates a project folder.
  • Use Ctrl+Shift+E first when file or folder creation does not trigger.
  • Use Ctrl+1 to leave the tree and return to the editor.

Open files quickly

Use quick open when the file name is known. This is faster than expanding the tree deeply.

Ctrl+P        # open file by name
Ctrl+Shift+F  # search across the project
Ctrl+F        # search current file
Ctrl+G        # go to line
Ctrl+Shift+O  # go to symbol in current file
Ctrl+T        # go to symbol in workspace
  • Use Ctrl+P for direct file navigation.
  • Use Ctrl+Shift+F when the file is unknown but the text is known.
  • Use Ctrl+F for local search inside the current file.

Editor groups and splits

VS Code arranges open files into editor groups. Splits create additional groups either side by side or stacked, and each group can be focused directly by position.

Ctrl+\           # split active editor into a second group
Ctrl+K Ctrl+\    # split active editor downward
Ctrl+1           # focus editor group 1
Ctrl+2           # focus editor group 2
Ctrl+3           # focus editor group 3
Ctrl+K <arrow>   # move current editor to another group

Create a 2x2 layout

First split side by side, then split one of the groups downward.

Ctrl+\          # left and right split
Ctrl+K Ctrl+\  # split the active group downward

Text editing shortcuts

These are the useful editing shortcuts to keep. They cover comments, line movement, selection, and common save or undo actions.

ShortcutAction
Ctrl+SSave
Ctrl+ZUndo
Ctrl+Shift+ZRedo
Ctrl+/Toggle line comment
Ctrl+DSelect next occurrence
Alt+Up / Alt+DownMove current line up or down
Shift+Alt+Up / Shift+Alt+DownDuplicate current line
Ctrl+Shift+KDelete current line
Ctrl+Left / Ctrl+RightMove word by word
Ctrl+Shift+Left / Ctrl+Shift+RightSelect word by word

Troubleshooting settings save errors

If VS Code reports an error while saving settings, check that the JSON is valid and that the file is owned by the current user.

ls -l ~/.config/Code/User/settings.json
ls -l ~/.config/Code/User/keybindings.json

Fix ownership if the files are owned by root or another user.

sudo chown "$USER:$USER" ~/.config/Code/User/settings.json
sudo chown "$USER:$USER" ~/.config/Code/User/keybindings.json

File locations

  • User settings: ~/.config/Code/User/settings.json
  • Keyboard shortcuts: ~/.config/Code/User/keybindings.json
  • Code OSS user settings: ~/.config/Code - OSS/User/settings.json
  • Code OSS keyboard shortcuts: ~/.config/Code - OSS/User/keybindings.json