# SwitchToWorkspace *Since: 20220319-142410-0fcdea07* Switch to a different workspace, creating it if it doesn't already exist. `SwitchToWorkspace` accepts two optional parameters: * `name` - the name of the workspace. If omitted, a randomly generated name will be chosen. * `spawn` - a [SpawnCommand](../SpawnCommand.md) describing the command that should be started in the workspace if it doesn't already exist. If omitted, the default program will be spawned in the newly created workspace. ```lua local wezterm = require 'wezterm' wezterm.on("update-right-status", function(window, pane) window:set_right_status(window:active_workspace()) end) return { keys = { -- Switch to the default workspace {key="y", mods="CTRL|SHIFT", action=wezterm.action{SwitchToWorkspace={ name = "default" }}}, -- Switch to a monitoring workspace, which will have `top` launched into it {key="u", mods="CTRL|SHIFT", action=wezterm.action{SwitchToWorkspace={ name = "monitoring", spawn = { args = {"top"}, } }}}, -- Create a new workspace with a random name and switch to it {key="i", mods="CTRL|SHIFT", action=wezterm.action{SwitchToWorkspace={}}}, -- Show the launcher in fuzzy selection mode and have it list all workspaces -- and allow activating one. {key="9", mods="ALT", action=wezterm.action{ShowLauncherArgs={ flags="FUZZY|WORKSPACES" }}}, }, } ```