:ui workspaces
Tab emulation, persistence & separate workspaces
1. Description
This module adds support for workspaces, powered by persp-mode, as well as a API for manipulating them.
1.1. Maintainers
1.2. Module flags
This module has no flags.
1.3. Packages
1.4. TODO Hacks
- …
2. Prerequisites
This module has no external prerequisites.
3. Usage
There are many ways to use workspaces. I spawn a workspace per task. Say I’m working in the main workspace, when I realize there is a bug in another part of my project. I open a new workspace and deal with it in there. In the meantime, I need to check my email, so mu4e gets its own workspace.
Once I’ve completed the task, I close the workspace and return to main.
3.1. Isolated buffer-list
When persp-mode is active, doom-buffer-list
becomes workspace-restricted. You
can overcome this by using buffer-list
.
3.2. Automatic workspaces
A workspace is automatically created (and switched to) when you:
- Create a new frame (with make-frame; bound to M-N by default).
- Switch to a project using
projectile-switch-project
.
3.3. Session persistence
By default, your session is autosaved when you quit Emacs (or disable
persp-mode
). You can load a previous session with M-x
+workspace/load-session
or :sl[oad]
(ex command).
You can supply either a name to load a specific session to replace your current one.
3.4. Workspace persistence
If you’d like to save a specific workspace, use M-x +workspace/save
, which can
be loaded into the current session (as another workspace) with M-x
+workspace/load
.
3.5. Commands & Keybindings
Here is a list of available commands, their default keybindings (defined in the :config default module), and corresponding ex commands (if any – defined in the evil module):
Command | key / ex command | description |
---|---|---|
+workspace/new |
SPC TAB n | Create a new, blank workspace |
+workspace/display |
SPC TAB TAB | Display open workspaces in the mode-line |
+workspace/load |
SPC TAB l | Load a saved workspace into the current session |
+workspace/restore-last-session |
SPC TAB R | Restore last session |
+workspace/rename |
SPC TAB r | Rename the current workspace |
+workspace/save |
SPC TAB s | Save the current workspace to a file |
+workspace/switch-to |
SPC TAB . | Switch to an open workspace |
+workspace/other |
SPC TAB ` | Switch to last workspace |
+workspace/switch-left |
SPC TAB [ / [ w / gT | Switch to previous workspace |
+workspace/switch-right |
SPC TAB ] / ] w / gt | Switch to next workspace |
+workspace/delete |
SPC TAB d | Delete the current workspace |
+workspace/kill-session |
SPC TAB x / :sclear | Clears the current session (kills all windows and buffers) |
4. TODO Configuration
This module has no configuration documentation yet. Write some?
5. Troubleshooting
There are no known problems with this module. Report one?
6. Appendix
6.1. API
+workspace-list
-> list<Struct>+workspace-list-names
-> list<string>+workspace-buffer-list &optional PERSP
-> bool+workspace-p OBJ
-> bool+workspace-exists-p NAME
-> bool+workspace-get NAME &optional NOERROR
-> Struct+workspace-current &optional FRAME WINDOW
-> Struct+workspace-current-name
-> string+workspace-load NAME
+workspace-load-session NAME
+workspace-save NAME
+workspace-save-session NAME
+workspace-new NAME
+workspace-rename NAME NEW-NAME
+workspace-delete NAME &optional INHIBIT-KILL-P
+workspace-switch NAME &optional AUTO-CREATE-P
+workspace-protected-p NAME
-> bool