Skip to content

Latest commit

 

History

History
125 lines (100 loc) · 5.46 KB

README.org

File metadata and controls

125 lines (100 loc) · 5.46 KB

:ui workspaces

Description

This module adds support for workspaces, powered by doom-package:persp-mode, as well as a API for manipulating them.

💡 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.

Maintainers

  • @hlissner

Become a maintainer?

Module flags

This module has no flags.

Packages

  • doom-package:persp-mode

Hacks

󱌣 This module’s hacks haven’t been documented yet. Document them?

Changelog

This module does not have a changelog yet.

Installation

Enable this module in your doom! block.

This module has no external requirements.

Usage

󱌣 This module’s usage documentation is incomplete. Complete it?

Isolated buffer-list

When persp-mode is active, doom-buffer-list becomes workspace-restricted. You can overcome this by using buffer-list.

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.

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.

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.

Commands & Keybindings

Here is a list of available commands, their default keybindings (defined in config/default/+bindings.el), and corresponding ex commands (if any – defined in config/default/+evil-commands.el).

commandkey / ex commanddescription
+workspace/newSPC TAB nCreate a new, blank workspace
+workspace/displaySPC TAB TABDisplay open workspaces in the mode-line
+workspace/loadSPC TAB lLoad a saved workspace into the current session
+workspace/restore-last-sessionSPC TAB RRestore last session
+workspace/renameSPC TAB rRename the current workspace
+workspace/saveSPC TAB sSave the current workspace to a file
+workspace/switch-toSPC TAB .Switch to an open workspace
+workspace/otherSPC TAB `Switch to last workspace
+workspace/switch-left[[kbd:][SPC TAB []] / [[kbd:] w / gTSwitch to previous workspace
+workspace/switch-rightSPC TAB ] / [[kbd:][] w]] / gtSwitch to next workspace
+workspace/deleteSPC TAB dDelete the current workspace
+workspace/kill-sessionSPC TAB x / :sclearClears the current session (kills all windows and buffers)

Configuration

󱌣 This module has no configuration documentation yet. Write some?

Troubleshooting

There are no known problems with this module. Report one?

Frequently asked questions

This module has no FAQs yet. Ask one?

Appendix

󱌣 This module’s appendix is incomplete. Write more?

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