File diff 957bbaa40147 → 39c60dfa7be0
README.md
Show inline comments
 
# Workgroups for Emacs
 
## What it does?
 
## What is it?
 

	
 
Workgroups is a session manager for Emacs.
 

	
 
- It saves all your opened buffers, their location and sizes on disk to restore later.
 
- You also can create several workspaces.
 

	
 
Isn't it enough?
 

	
 
## Usage
 
## Install
 

	
 
### Getting Workgroups
 
1. Just install "workgroups2" from Melpa.
 

	
 
See [github repo](http://github.com/tlh/workgroups.el).
 
OR
 

	
 
- Put `workgroups` somewhere on your Emacs load path
 
2. use git and put `workgroups2` somewhere on your Emacs load path
 

	
 
        cd ~/.emacs.d/extensions
 
        git clone git://github.com/pashinin/workgroups2.git
 
        git pull
 

	
 
### Installing
 

	
 
- Byte-compile it if you want. This isn't required, but it'll speed some
 
  things up:
 

	
 
        C-u 0 M-x byte-recompile-directory <RET> ~/.emacs.d/extensions/workgroups2/
 

	
 
- Load a module:
 
## Configure
 

	
 
- Load a module (if you installed it not from Melpa):
 

	
 
        (add-to-list 'load-path "~/.emacs.d/extensions/workgroups2")
 
        (require 'workgroups2)
 
@@ -35,104 +36,46 @@ See [github repo](http://github.com/tlh/workgroups.el).
 
        ;; Settings:
 
        (desktop-save-mode t)                ; save opened files
 
        (setq wg-prefix-key (kbd "C-c z")
 
              wg-no-confirm t
 
              wg-file "~/.emacs_files/workgroups"
 
              wg-use-default-session-file nil ; turn off for "emacs --daemon"
 
              wg-default-session-file "~/.emacs_files/workgroups"
 
              wg-use-faces nil
 
              wg-morph-on nil                ; animation off
 
              wg-switch-on-load t)           ; load first on start
 
        (workgroups-mode 1)                  ; Activate workgroups
 

	
 
        ;; Keyboard shortcuts
 
        ;; Load workgroups:
 
        (global-set-key (kbd "<pause>") (lambda () (interactive)
 
                                      (wg-find-session-file wg-file)))
 
        ;; Save workgroups:
 
        (global-set-key (kbd "C-S-<pause>") 'wg-save-session)    ; Ctrl-Shift-pause
 
        ;; Switch:
 
        (global-set-key (kbd "s-z")  'wg-switch-to-workgroup)
 
        (global-set-key (kbd "s-/")  'wg-switch-to-previous-workgroup)
 
        ;; s-z == super + z == Win + z
 

	
 
## Tutorial
 

	
 
Most commands are bound to both `<prefix> <key>` and `<prefix> C-<key>`.
 

	
 
### Help
 

	
 
To bring up a help buffer listing all the commands and their bindings, hit
 
`<prefix> ?` (`wg-help`).
 

	
 
- There are many other customization options.  See the customization section in
 
  the source for details, or use:
 

	
 
        M-x customize-group RET workgroups RET
 

	
 
### Workgroup Creation
 
              wg-morph-on nil)               ; animation off
 

	
 
To start off, add a few workgroups.  Hit `<prefix> c` to issue the command
 
`wg-create-workgroup`, give it a name, hit `RET`, and a new workgroup is
 
created.  Maybe split the screen a few times with `C-x 2` and `C-x 3`, and
 
switch to different buffers in some of the windows to make it unique.  Repeat
 
this process a few times to create some different workgroups.
 
        ;; Keyboard shortcuts - load, save, switch
 
        (global-set-key (kbd "<pause>")     'wg-reload-session)
 
        (global-set-key (kbd "C-S-<pause>") 'wg-save-session)
 
        (global-set-key (kbd "s-z")         'wg-switch-to-workgroup)
 
        (global-set-key (kbd "s-/")         'wg-switch-to-previous-workgroup)
 

	
 
Every workgroup must have a unique name.  You can rename workgroups after
 
they've been created with `<prefix> A` (`wg-rename-workgroup`).
 
        (workgroups-mode 1)     ; Activate workgroups
 

	
 
### Saving and Loading
 

	
 
Saving and loading was the original motivation for writing Workgroups.  You can
 
save your workgroups to a file with `<prefix> C-s` (`wg-save-session`)
 
and you can load workgroups from a file with `(wg-find-session-file wg-file)`.
 

	
 
Once you have a file of saved workgroups, it's convenient to load it on
 
Emacs startup. To do so you can add a line like this to your`.emacs`:
 

	
 
    (wg-find-session-file "~/.emacs_files/workgroups")
 

	
 
### Killing and Yanking
 

	
 
You can kill workgroups with `<prefix> k` (`wg-kill-workgroup`).  Killing a
 
workgroup deletes it from the list of workgroups, and copies its working config
 
to the kill ring.  You can yank killed wconfigs into the current frame with
 
`<prefix> y` (`wg-yank-config`).  If the last command was `wg-yank-config`,
 
calling it again will yank the *next* wconfig in the kill ring, and so on, much
 
like Emacs' own kill ring.
 

	
 
You can save a wconfig to the kill ring without killing its workgroup with the
 
kill-ring-save commands.  `<prefix> M-w` (`wg-kill-ring-save-working-config`)
 
saves the working config to the kill ring, and `<prefix> M-W`
 
(`wg-kill-ring-save-base-config`) saves the base config to the kill ring.
 

	
 
`<prefix> M-k` (`wg-kill-workgroup-and-buffers`) kills a workgroup, and all the
 
buffers visible in it, and `<prefix> K` (`wg-delete-other-workgroups`) deletes
 
all but the current workgroup.
 
## Use
 

	
 
Most commands are bound to both `<prefix> <key>` and `<prefix> C-<key>`.
 

	
 
### Cloning
 
    <prefix> <key>
 
    <prefix> c    - create workgroup
 
    <prefix> k    - kill workgroup
 
    <prefix> v    - switch to workgroup
 
    <prefix> C-z  - save session
 
    <prefix> C-f  - load session
 

	
 
Cloning a workgroup creates a new workgroup under a different name with the a
 
copy of the current workgroup's base and working configs.  `<prefix> C`
 
(`wg-clone-workgroup`) will clone the current workgroup.
 
## Help
 
----------------------
 

	
 
Type `<prefix> ?` (Eval `(wg-help)`) for more help.
 

	
 
### Offsetting and Swapping
 
This will bring up a help buffer listing all the commands and their bindings.
 

	
 
You can move a workgroup leftward or rightward in the workgroups list with
 
`<prefix> ,` (`wg-offset-left`) and `<prefix> .` (`wg-offset-right`)
 
respectively.  These commands work cyclically, so when you offset a workgroup
 
leftward or rightward when it's already on the far left or right of the list, it
 
will wrap around to the other side.
 
See the customization section in the source for details, or use:
 

	
 
`<prefix> x` (`wg-swap-workgroups`) will swap the position in the workgroups
 
list of the previously selected workgroup with that of the current workgroup.
 
    M-x customize-group RET workgroups RET
 

	
 

	
 
## Original Workgroups
 

	
 
There is a package on Melpa called "workgroups".
 
This extension is based on experimental branch of the original repo:
 

	
 
https://github.com/tlh/workgroups.el
 
This extension is based on experimental branch of the [original repo](http://github.com/tlh/workgroups.el).
 

	
 
So great respect to the author. But it has not been updated for more
 
than 2 years and experimental branch was not released.