Tested on: Linux x64, arm64 and x86
- Keep your VS Code settings, keybindings, snippets and extensions under version control.
- One-command bootstrap on a fresh machine: run
setup.shand start coding. - Portable: works alongside your package-manager, Flatpak or manual VS Code installation.
- No sudo required – everything lives in
$HOME.
| Path inside repo | Symlink target on disk |
|---|---|
settings.json |
~/.config/Code - OSS/User/settings.json and ~/.config/VSCodium/User/settings.json |
keybindings.json |
~/.config/Code - OSS/User/keybindings.json and ~/.config/VSCodium/User/keybindings.json |
snippets/ |
~/.config/Code - OSS/User/snippets/ and ~/.config/VSCodium/User/snippets/ |
- Clone the repo:
git clone https://github.com/void-land/vscode-dots.git ~/.vscode-dots
cd ~/.vscode-dots- Link the configurations:
Run the
stow.shscript to securely symlink the configs from this repository into your system's VS Code / VSCodium directories.
./stow.sh -s- Install extensions:
Install your offline
.vsixextensions using the extension manager.
./extension.sh -v- Restart VS Code. Your personalized environment is ready!
The stow.sh script manages the symlinking of configuration files (settings, snippets, keybindings) from the repository's configs/ folder directly to the application config directories for VS Code OSS and VSCodium.
Link (Stow) Configurations:
./stow.sh -sThis creates the necessary directories in ~/.config/ and symlinks the files.
Unlink (Unstow) Configurations:
./stow.sh -uThis removes the symlinks from your system, detaching VS Code from this repository.
The extension.sh script is a powerful utility for fetching, downloading, and installing VS Code extensions from Open VSX, especially useful for offline setups or avoiding rate limits. It reads the desired extensions from oss-extensions.txt.
Before downloading extensions, ensure you have the required dependencies installed on your system:
curljq
If you already have .vsix files downloaded in the downloads/ directory, you can install them locally without needing an internet connection:
./extension.sh -vThis detects your VS Code binary (code, code-insiders, or codium) and installs the extensions, creating an install.log.
To fetch extension info and download the .vsix files from scratch:
Concurrent Download (Recommended - Faster)
Downloads up to 20 files in parallel using curl:
./extension.sh -pSequential Download (Fallback)
./extension.sh -dComplete Automated Setup Fetches info, downloads concurrently, installs locally, and lists summaries in one go:
./extension.sh -cIf you are behind a restricted network, you can route the script's curl requests through a proxy using environment variables.
Using an HTTP/HTTPS Proxy:
http_proxy=http://127.0.0.1:8080 https_proxy=http://127.0.0.1:8080 ./extension.sh -pUsing a SOCKS5 Proxy:
(The socks5h:// scheme forces DNS resolution through the proxy, which is often necessary)
ALL_PROXY=socks5h://127.0.0.1:1080 ./extension.sh -p