Introducing Zed's new panel system

May 31st, 2023

Zed's new panel system

Zed's panel system has been reworked to allow for more customization and flexibility. Previously, Zed's project panel was fixed to the left side of the application, and what was previously referred to as the "dock" (a place where terminal tabs lived) could be placed on the right side of the application, along the bottom, or opened up in a modal window. As of v0.88.0, Zed now has three docks: a left dock, a right dock, and a bottom dock. The project panel can be placed in the left or right dock, and what is now called the "terminal panel" can be placed in any of the docks.

Screenshot showing the project panel on the right and the terminal panel on the bottom.
Screenshot showing the project panel on the right and the terminal panel on the bottom.

New actions have been added for toggling each dock's visibility:

  • workspace::ToggleLeftDock
  • workspace::ToggleRightDock
  • workspace::ToggleBottomDock

As before, focus can be moved to either panel with the following actions:

  • project_panel::ToggleFocus
  • terminal_panel::ToggleFocus

Note that toggling focus onto either panel will automatically toggle their respective docks open if they are closed.

Astute users will quickly realize that they can place both the terminal panel and the project panel in the same dock. In this configuration, only one of the panels can be open at a time, but using one of the aforementioned focus-toggling commands, or clicking on one of the panel icons, allows for swapping to the other panel.

To change the location for either the project panel or the terminal panel, right-click on their respective panel icon and select the desired dock.

Screenshot showing the options for docking the terminal panel.
Screenshot showing the options for docking the terminal panel.

Doing so will automatically update the associated settings in settings.json:

"project_panel": {
  "dock": "right"
},
"terminal": {
  "dock": "bottom"
}

Lastly, we've added workspace::ToggleZoom. In previous versions of Zed, the terminal dock had an anchor mode called expanded, which would open the dock in a full-screen modal window when the dock was focused. This feature is now called "zoom" and now works on panes, in addition to the dock containing the terminal panel.

Screenshot showing the zoom operating on a pane containing editor tabs.
Screenshot showing the zoom operating on a pane containing editor tabs.

Zoom can be activated through the command palette or by clicking on the zoom icon in the tab bar.

Screenshot showing the zoom button in the tab bar of a pane.
Screenshot showing the zoom button in the tab bar of a pane.

๐Ÿšจ Breaking changes and surprises ๐Ÿšจ

keymap.json

  • dock::FocusDock and dock::HideDock have been removed
  • workspace::ToggleLeftSidebar has been removed

settings.json

  • default_dock_anchor has been removed

Terminal panel

  • The terminal panel can no longer hold non-terminal tabs

Workspace restoration

  • Workspaces (open editors, panels, etc.) will not be restored correctly in v0.88.0. Restoration should work as expected after updating.