git Use ID
workgroups2
Download as zip
Sergey Pashinin 13bb2288bcc4
11 years ago
Sergey Pashinin 0de77f828b0d
11 years ago
Sergey Pashinin 03fca578fbdc
11 years ago
Sergey Pashinin 7f246ecd74b9
11 years ago
Sergey Pashinin a1fbffbb967f
11 years ago
Sergey Pashinin 412d81a62c59
11 years ago
Sergey Pashinin 1d0d5d635273
11 years ago
Sergey Pashinin d0274b1cb10e
11 years ago
Sergey Pashinin 0f280ca956ef
11 years ago
Sergey Pashinin 2771a82b6d45
11 years ago

License Documentation Build Status Gittip

Workgroups for Emacs

Workgroups is a session manager for Emacs.

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

You can also restore such buffers as: org-agenda, shell, magit-status, help.

Fork it, add more special buffers support. Or even better - fix bugs.

Install

Just install "workgroups2" from Melpa and activate it with

(require 'workgroups2)
;; Change some settings
(workgroups-mode 1)        ; put this one at the bottom of .emacs

Use

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

By default prefix is: "C-c z" (To change it - see settings below)

<prefix> <key>
<prefix> c    - create workgroup
<prefix> A    - rename workgroup
<prefix> k    - kill workgroup
<prefix> v    - switch to workgroup
<prefix> C-s  - save session
<prefix> C-f  - load session

Configure

If you want to change some settings - here is an example:

(require 'workgroups2)
;; Your settings here

;;(setq wg-session-load-on-start t)    ; default: (not (daemonp))

;; Change prefix key (before activating WG)
(setq wg-prefix-key (kbd "C-c z"))

;; Change workgroups session file
(setq wg-session-file "~/.emacs.d/.emacs_workgroups")

;; Set your own keyboard shortcuts to reload/save/switch WGs:
;; "s" == "Super" or "Win"-key, "S" == Shift, "C" == Control
(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)

(workgroups-mode 1)   ; put this one at the bottom of .emacs

More options

You can use M-x customize-group workgroups to see all variables and faces to change.

;; What to do on Emacs exit / workgroups-mode exit?
(setq wg-emacs-exit-save-behavior           'save)      ; Options: 'save 'ask nil
(setq wg-workgroups-mode-exit-save-behavior 'save)      ; Options: 'save 'ask nil

;; Mode Line changes
;; Display workgroups in Mode Line?
(setq wg-mode-line-display-on t)          ; Default: (not (featurep 'powerline))
(setq wg-flag-modified t)                 ; Display modified flags as well
(setq wg-mode-line-decor-left-brace "["
      wg-mode-line-decor-right-brace "]"  ; how to surround it
      wg-mode-line-decor-divider ":")

Hooks

Hooks' names can tell when they are executed

workgroups-mode-hook                    ; when `workgroups-mode' is turned on
workgroups-mode-exit-hook               ; `workgroups-mode' is turned off
wg-before-switch-to-workgroup-hook
wg-after-switch-to-workgroup-hook

Help

For you:

  1. <prefix> ? or (wg-help) - help buffer listing all the commands and their bindings.
  2. M-x customize-group RET workgroups RET - all customization options

For me:

  1. Reporting a bug - give me full (backtrace) of what happened and how you did it.
  2. Requesting a major-mode support - write how you install, configure and run yours.
  3. Make pull-requests
  4. Ask questions (if you don't know how to hack it). Personally I found the code very complex at first

License

GPL. This extension is based on experimental branch of the original repo.