Workspace Quick Shifter
VS Code extension to manage and switch between different workspaces with a custom tagging system.
Features
- 🏷️ Custom tags: Organize your workspaces with colored tags
- 🔍 Advanced filtering: Filter workspaces by name or tags
- ⚡ Quick switching: Switch between workspaces quickly
- 📝 Simple configuration: Easy-to-edit JSON file
Usage
1. Initial configuration
Use the command Workspace Quick Shifter: Edit Workspace Configuration to open the configuration file.
The configuration file has the following structure:
{
"tags": [
{ "name": "work", "color": "#007ACC" },
{ "name": "personal", "color": "#28A745" },
{ "name": "learning", "color": "#FFC107" },
{ "name": "archived", "color": "#6C757D" }
],
"workspaces": [
{
"name": "My Main Project",
"path": "/Users/nom/Projects/mon-projet",
"tags": ["work"]
},
{
"name": "Personal Project",
"path": "/Users/nom/Projects/perso",
"tags": ["personal", "learning"]
}
]
}
Tags are defined in the tags array with:
name: Tag name
color: Hex color for display
3. Adding workspaces
Each workspace contains:
name: Display name
path: Full path to the folder
tags: (optional) List of associated tag names
4. Switching workspaces
Use the command Workspace Quick Shifter: Switch Workspace (or Cmd+Shift+P and search for "Switch Workspace") to:
- See all your workspaces
- Filter by tags (click a tag to enable/disable it)
- Search by name
- Open in a new window or the current window
Commands
Workspace Quick Shifter: Switch Workspace: Opens the workspace selection interface
Workspace Quick Shifter: Edit Workspace Configuration: Opens the configuration file
Configuration File Location
The configuration file is always located at .vscode/workspaces.json in your workspace root. This ensures each project has its own workspace configuration.
Full configuration example
{
"tags": [
{ "name": "frontend", "color": "#61DAFB" },
{ "name": "backend", "color": "#68A063" },
{ "name": "mobile", "color": "#3DDC84" },
{ "name": "client-A", "color": "#FF6B6B" },
{ "name": "client-B", "color": "#4ECDC4" },
{ "name": "archived", "color": "#95A5A6" }
],
"workspaces": [
{
"name": "Client A Website",
"path": "/Users/nom/Projects/clientA-website",
"tags": ["frontend", "client-A"]
},
{
"name": "Client A API",
"path": "/Users/nom/Projects/clientA-api",
"tags": ["backend", "client-A"]
},
{
"name": "Client B Mobile App",
"path": "/Users/nom/Projects/clientB-mobile",
"tags": ["mobile", "client-B"]
}
]
}