merge: rewrite-docs

I've omitted docs/*.org from this merge, as there is still work left to
do there, but I am pushing the module docs early so folks can benefit
from the new docs sooner.
This commit is contained in:
Henrik Lissner 2022-08-03 03:23:34 +02:00
commit 1f8bf7accb
No known key found for this signature in database
GPG key ID: B60957CA074D39A3
179 changed files with 13125 additions and 8630 deletions

View file

@ -1,45 +1,52 @@
#+TITLE: ui/workspaces
#+DATE: February 4, 2017
#+SINCE: v1.3
#+STARTUP: inlineimages
# -*- mode: doom-docs-org -*-
#+title: :ui workspaces
#+subtitle: Tab emulation, persistence, & separate workspaces
#+created: February 20, 2017
#+since: 2.0.0
* Table of Contents :TOC:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#packages][Packages]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#isolated-buffer-list][Isolated buffer-list]]
- [[#automatic-workspaces][Automatic workspaces]]
- [[#session-persistence][Session persistence]]
- [[#workspace-persistence][Workspace persistence]]
- [[#appendix][Appendix]]
- [[#commands--keybindings][Commands & Keybindings]]
- [[#api][API]]
* Description
This module adds support for workspaces, powered by persp_mode, as well as a API
* Description :unfold:
This module adds support for workspaces, powered by [[doom-package:][persp-mode]], as well as a API
for manipulating them.
#+begin_quote
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.
💡 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.
Once I've completed the task, I close the workspace and return to main.
#+end_quote
** Module Flags
This module provides no flags.
** Maintainers
- [[doom-user:][@hlissner]]
[[doom-contrib-maintainer:][Become a maintainer?]]
** Module flags
/This module has no flags./
** Packages
+ [[https://github.com/Bad-ptr/persp-mode.el][persp-mode]]
- [[doom-package:][persp-mode]]
* Prerequisites
This module has no additional dependencies.
** TODO Hacks
#+begin_quote
🔨 This module's hacks haven't been documented yet. [[doom-contrib-module:][Document them?]]
#+end_quote
** TODO Changelog
# This section will be machine generated. Don't edit it by hand.
/This module does not have a changelog yet./
* Installation
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
/This module has no external requirements./
* TODO Usage
#+begin_quote
🔨 /This module's usage documentation is incomplete./ [[doom-contrib-module:][Complete it?]]
#+end_quote
* Features
** Isolated buffer-list
When persp-mode is active, ~doom-buffer-list~ becomes workspace-restricted. You
can overcome this by using ~buffer-list~.
@ -47,8 +54,8 @@ 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~.
- Create a new frame (with =make-frame=; bound to [[kbd:][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
@ -63,26 +70,41 @@ 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~.
* Appendix
** Commands & Keybindings
Here is a list of available commands, their default keybindings (defined in
[[../../config/default/+evil-bindings.el][private/default/+bindings.el]]), and corresponding ex commands (if any -- defined
in [[../../editor/evil/+commands.el][private/default/+evil-commands.el]]).
[[../../config/default/+evil-bindings.el][config/default/+bindings.el]]), and corresponding ex commands (if any -- defined
in [[../../editor/evil/+commands.el][config/default/+evil-commands.el]]).
| 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) |
| command | key / ex command | description |
|-----------------------------------+----------------------+------------------------------------------------------------|
| ~+workspace/new~ | [[kbd:][SPC TAB n]] | Create a new, blank workspace |
| ~+workspace/display~ | [[kbd:][SPC TAB TAB]] | Display open workspaces in the mode-line |
| ~+workspace/load~ | [[kbd:][SPC TAB l]] | Load a saved workspace into the current session |
| ~+workspace/restore-last-session~ | [[kbd:][SPC TAB R]] | Restore last session |
| ~+workspace/rename~ | [[kbd:][SPC TAB r]] | Rename the current workspace |
| ~+workspace/save~ | [[kbd:][SPC TAB s]] | Save the current workspace to a file |
| ~+workspace/switch-to~ | [[kbd:][SPC TAB .]] | Switch to an open workspace |
| ~+workspace/other~ | [[kbd:][SPC TAB `]] | Switch to last workspace |
| ~+workspace/switch-left~ | [[kbd:][SPC TAB []] / [[kbd:][[ w]] / [[kbd:][gT]] | Switch to previous workspace |
| ~+workspace/switch-right~ | [[kbd:][SPC TAB ]]] / [[kbd:][] w]] / [[kbd:][gt]] | Switch to next workspace |
| ~+workspace/delete~ | [[kbd:][SPC TAB d]] | Delete the current workspace |
| ~+workspace/kill-session~ | [[kbd:][SPC TAB x]] / [[kbd:][:sclear]] | Clears the current session (kills all windows and buffers) |
* TODO Configuration
#+begin_quote
🔨 This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
#+end_quote
* Troubleshooting
/There are no known problems with this module./ [[doom-report:][Report one?]]
* Frequently asked questions
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
* TODO Appendix
#+begin_quote
🔨 /This module's appendix is incomplete./ [[doom-contrib-module:][Write more?]]
#+end_quote
** API
+ ~+workspace-list~ -> list<Struct>