git Use ID
workgroups2
Download as zip
Sergey Pashinin 9c215a5adae2
11 years ago
Sergey Pashinin 77112612b77d
11 years ago
Sergey Pashinin 669ad29a3fcc
11 years ago
Sergey Pashinin d49e33f7e3f1
11 years ago
Sergey Pashinin d5e702a7dfc1
11 years ago
Sergey Pashinin 79d172403441
11 years ago
Sergey Pashinin 6a5bc02bf190
11 years ago
Sergey Pashinin 297b2a992f10
11 years ago
Sergey Pashinin 3f3cde006b0a
11 years ago
Sergey Pashinin 576ae43b0f31
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.