diff --git a/src/workgroups-keys.el b/src/workgroups-keys.el index fb25c133d07a9c43e4739070f35eed06598f67e7..2596b99504fbe16dcddd4fb62cf29553a7240c64 100644 --- a/src/workgroups-keys.el +++ b/src/workgroups-keys.el @@ -1,23 +1,41 @@ ;;; workgroups.keys.el --- Set default workgroups keys ;;; Commentary: +;; ;;; Code: (require 'workgroups-variables) +(require 'workgroups-utils-basic) + +(defcustom wg-prefix-key (kbd "C-c z") + "Workgroups' prefix key. +Setting this variable requires that `workgroups-mode' be turned +off and then on again to take effect." + :type 'string + :group 'workgroups) + +(defvar workgroups-mode-map nil + "Workgroups Mode's keymap.") (defvar wg-prefixed-map (wg-fill-keymap (make-sparse-keymap) - - ;; workgroup creation - + ;; workgroups (kbd "C-c") 'wg-create-workgroup (kbd "c") 'wg-create-workgroup (kbd "C") 'wg-clone-workgroup + (kbd "A") 'wg-rename-workgroup + (kbd "C-'") 'wg-switch-to-workgroup + (kbd "'") 'wg-switch-to-workgroup + (kbd "C-v") 'wg-switch-to-workgroup + (kbd "v") 'wg-switch-to-workgroup + ;; session + (kbd "C-s") 'wg-save-session + (kbd "C-w") 'wg-save-session-as + (kbd "C-f") 'wg-open-session ;; killing and yanking - (kbd "C-k") 'wg-kill-workgroup (kbd "k") 'wg-kill-workgroup (kbd "M-W") 'wg-kill-ring-save-base-wconfig @@ -28,20 +46,7 @@ (kbd "K") 'wg-delete-other-workgroups - ;; updating and reverting - - (kbd "C-r") 'wg-revert-workgroup - (kbd "r") 'wg-revert-workgroup - (kbd "C-S-r") 'wg-revert-all-workgroups - (kbd "R") 'wg-revert-all-workgroups - - ;; workgroup switching - - (kbd "C-'") 'wg-switch-to-workgroup - (kbd "'") 'wg-switch-to-workgroup - (kbd "C-v") 'wg-switch-to-workgroup - (kbd "v") 'wg-switch-to-workgroup (kbd "M-v") 'wg-switch-to-workgroup-other-frame (kbd "C-j") 'wg-switch-to-workgroup-at-index (kbd "j") 'wg-switch-to-workgroup-at-index @@ -59,14 +64,16 @@ (kbd "p") 'wg-switch-to-workgroup-left (kbd "C-n") 'wg-switch-to-workgroup-right (kbd "n") 'wg-switch-to-workgroup-right - (kbd "M-p") 'wg-switch-to-workgroup-left-other-frame - (kbd "M-n") 'wg-switch-to-workgroup-right-other-frame (kbd "C-a") 'wg-switch-to-previous-workgroup (kbd "a") 'wg-switch-to-previous-workgroup + ;; updating and reverting ;; wconfig undo/redo - + (kbd "C-r") 'wg-revert-workgroup + (kbd "r") 'wg-revert-workgroup + (kbd "C-S-r") 'wg-revert-all-workgroups + (kbd "R") 'wg-revert-all-workgroups (kbd "") 'wg-undo-wconfig-change (kbd "") 'wg-redo-wconfig-change (kbd "[") 'wg-undo-wconfig-change @@ -76,63 +83,35 @@ ;; wconfig save/restore - - ;; FIXME: come up with better keys for these: (kbd "C-d C-s") 'wg-save-wconfig (kbd "C-d C-'") 'wg-restore-saved-wconfig (kbd "C-d C-k") 'wg-kill-saved-wconfig ;; buffer-list - - (kbd "+") 'wg-associate-buffer-with-workgroup - (kbd "~") 'wg-associate-visible-buffers-with-workgroup - (kbd "-") 'wg-dissociate-buffer-from-workgroup - (kbd "=") 'wg-cycle-buffer-association-type - (kbd "*") 'wg-restore-workgroup-associated-buffers - (kbd "_") 'wg-dissociate-weakly-associated-buffers (kbd "(") 'wg-next-buffer (kbd ")") 'wg-previous-buffer ;; workgroup movement - (kbd "C-x") 'wg-swap-workgroups (kbd "C-,") 'wg-offset-workgroup-left (kbd "C-.") 'wg-offset-workgroup-right - ;; file and buffer - - (kbd "C-s") 'wg-save-session - (kbd "C-w") 'wg-write-session-file - (kbd "C-f") 'wg-find-session-file - (kbd "F") 'wg-find-file-in-new-workgroup - (kbd "M-F") 'wg-find-file-read-only-in-new-workgroup - (kbd "d") 'wg-dired-in-new-workgroup - (kbd "C-b") 'wg-switch-to-buffer - (kbd "b") 'wg-switch-to-buffer - - ;; window moving and frame reversal - - (kbd "<") 'wg-backward-transpose-window - (kbd ">") 'wg-transpose-window (kbd "|") 'wg-reverse-frame-horizontally (kbd "\\") 'wg-reverse-frame-vertically (kbd "/") 'wg-reverse-frame-horizontally-and-vertically ;; toggling - (kbd "C-t C-m") 'wg-toggle-mode-line-display (kbd "C-t C-b") 'wg-toggle-buffer-list-filtration (kbd "C-t C-d") 'wg-toggle-window-dedicated-p ;; misc - - (kbd "A") 'wg-rename-workgroup (kbd "!") 'wg-reset (kbd "?") 'wg-help @@ -146,55 +125,14 @@ as Workgroups' command remappings." (let ((map (make-sparse-keymap))) (define-key map wg-prefix-key wg-prefixed-map) - (when wg-remap-switch-to-buffer - (define-key map [remap switch-to-buffer] - 'wg-switch-to-buffer)) - (when wg-remap-switch-to-buffer-other-window - (define-key map [remap switch-to-buffer-other-window] - 'wg-switch-to-buffer-other-window)) - (when wg-remap-switch-to-buffer-other-frame - (define-key map [remap switch-to-buffer-other-frame] - 'wg-switch-to-buffer-other-frame)) - (when wg-remap-next-buffer - (define-key map [remap next-buffer] - 'wg-next-buffer)) - (when wg-remap-previous-buffer - (define-key map [remap previous-buffer] - 'wg-previous-buffer)) - (when wg-remap-kill-buffer - (define-key map [remap kill-buffer] - 'wg-kill-buffer)) - (when wg-remap-display-buffer - (define-key map [remap display-buffer] - 'wg-display-buffer)) - (when wg-remap-insert-buffer - (define-key map [remap insert-buffer] - 'wg-insert-buffer)) - (cond ((eq wg-remap-bury-buffer 'banish) - (define-key map [remap bury-buffer] - 'wg-banish-buffer)) - (wg-remap-bury-buffer - (define-key map [remap bury-buffer] - 'wg-bury-buffer))) + ;;(cond ((eq wg-remap-bury-buffer 'banish) + ;; (define-key map [remap bury-buffer] + ;; 'wg-banish-buffer)) + ;; (wg-remap-bury-buffer + ;; (define-key map [remap bury-buffer] + ;; 'wg-bury-buffer))) (setq workgroups-mode-map map))) -(defvar wg-minibuffer-mode-map - (wg-fill-keymap - (make-sparse-keymap) - (kbd "C-b") 'wg-backward-char-or-next-buffer-list-filter - (kbd "C-c n") 'wg-next-buffer-list-filter - (kbd "C-c C-n") 'wg-next-buffer-list-filter - (kbd "C-S-b") 'wg-backward-char-or-previous-buffer-list-filter - (kbd "C-c p") 'wg-previous-buffer-list-filter - (kbd "C-c C-p") 'wg-previous-buffer-list-filter - (kbd "C-c a") 'wg-associate-first-match - (kbd "C-c C-a") 'wg-associate-first-match - (kbd "C-c d") 'wg-dissociate-first-match - (kbd "C-c C-d") 'wg-dissociate-first-match - (kbd "C-c _") 'wg-minibuffer-mode-dissociate-weakly-associated-buffers - ) - "`wg-minibuffer-mode's keymap.") - (provide 'workgroups-keys) ;;; workgroups-keys.el ends here