From bab7a08fc4255833f23accb2608af476dd0d3a60 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 16 Aug 2020 14:07:13 +0100 Subject: [PATCH] chore(workspaces): create siren-workspace-map to handle C-z prefix Previously I've always kinda "hacked" things to get C-z prefixes for various workspace-related packages to work. Now it's finally setup correctly with a custom siren-workspace-map keymap bound to C-z, and relevant packages adding keybindings to it. --- modules/windows/siren-zoom-window.el | 13 ++-- modules/workspaces/siren-persp-mode.el | 87 ++++++++++++----------- modules/workspaces/siren-workspace-map.el | 19 +++++ 3 files changed, 69 insertions(+), 50 deletions(-) create mode 100644 modules/workspaces/siren-workspace-map.el diff --git a/modules/windows/siren-zoom-window.el b/modules/windows/siren-zoom-window.el index 2d5f15b..9941a79 100644 --- a/modules/windows/siren-zoom-window.el +++ b/modules/windows/siren-zoom-window.el @@ -6,15 +6,14 @@ ;;; Code: +(require 'siren-workspace-map) + (use-package zoom-window :bind - ("C-x C-" . zoom-window-zoom) - ("C-z " . zoom-window-zoom) - ("C-z C-" . zoom-window-zoom) - - :init - ;; Allow C-z to be used as a key prefix. - (global-set-key (kbd "C-z") nil) + ("C-x C-RET" . zoom-window-zoom) + (:map siren-workspace-map + ("RET" . zoom-window-zoom) + ("C-RET" . zoom-window-zoom)) :config (with-eval-after-load "persp-mode" diff --git a/modules/workspaces/siren-persp-mode.el b/modules/workspaces/siren-persp-mode.el index ef9e151..c705abf 100644 --- a/modules/workspaces/siren-persp-mode.el +++ b/modules/workspaces/siren-persp-mode.el @@ -7,6 +7,7 @@ ;;; Code: (require 'siren-refine) +(require 'siren-workspace-map) (use-package persp-mode :hook @@ -15,49 +16,49 @@ :bind ("s-}" . persp-next) ("s-{" . persp-prev) - (:map persp-mode-map - ("C-z n" . persp-next) - ("C-z C-n" . persp-next) - ("C-z p" . persp-prev) - ("C-z C-p" . persp-prev) - ("C-z s" . persp-frame-switch) - ("C-z C-s" . persp-frame-switch) - ("C-z S" . persp-window-switch) - ("C-z r" . persp-rename) - ("C-z C-r" . persp-rename) - ("C-z c" . persp-copy) - ("C-z C-c" . persp-copy) - ("C-z C" . persp-kill) - ("C-z z" . persp-save-and-kill) - ("C-z a" . persp-add-buffer) - ("C-z C-a" . persp-add-buffer) - ("C-z b" . persp-switch-to-buffer) - ("C-z C-b" . siren-persp-mode-ibuffer) - ("C-z t" . persp-temporarily-display-buffer) - ("C-z i" . persp-import-buffers) - ("C-z I" . persp-import-win-conf) - ("C-z k" . persp-remove-buffer) - ("C-z C-k" . persp-remove-buffer) - ("C-z K" . persp-kill-buffer) - ("C-z w" . persp-save-state-to-file) - ("C-z W" . persp-save-to-file-by-names) - ("C-z C-l" . siren-persp-mode-switch-to-most-recent) - ("C-z l" . persp-load-state-from-file) - ("C-z L" . persp-load-from-file-by-names) - ("C-z ;" . siren-persp-mode-show-current-perspective-name) - ("C-z C-;" . siren-persp-mode-show-current-perspective-name) - ("C-z e" . siren-persp-mode-edit-names-cache) - ("C-z C-e" . siren-persp-mode-edit-names-cache) - ("C-z 0" . siren-persp-switch-to-index) - ("C-z 1" . siren-persp-switch-to-index) - ("C-z 2" . siren-persp-switch-to-index) - ("C-z 3" . siren-persp-switch-to-index) - ("C-z 4" . siren-persp-switch-to-index) - ("C-z 5" . siren-persp-switch-to-index) - ("C-z 6" . siren-persp-switch-to-index) - ("C-z 7" . siren-persp-switch-to-index) - ("C-z 8" . siren-persp-switch-to-index) - ("C-z 9" . siren-persp-switch-to-index)) + (:map siren-workspace-map + ("n" . persp-next) + ("C-n" . persp-next) + ("p" . persp-prev) + ("C-p" . persp-prev) + ("s" . persp-frame-switch) + ("C-s" . persp-frame-switch) + ("S" . persp-window-switch) + ("r" . persp-rename) + ("C-r" . persp-rename) + ("c" . persp-copy) + ("C-c" . persp-copy) + ("C" . persp-kill) + ("z" . persp-save-and-kill) + ("a" . persp-add-buffer) + ("C-a" . persp-add-buffer) + ("b" . persp-switch-to-buffer) + ("C-b" . siren-persp-mode-ibuffer) + ("t" . persp-temporarily-display-buffer) + ("i" . persp-import-buffers) + ("I" . persp-import-win-conf) + ("k" . persp-remove-buffer) + ("C-k" . persp-remove-buffer) + ("K" . persp-kill-buffer) + ("w" . persp-save-state-to-file) + ("W" . persp-save-to-file-by-names) + ("C-l" . siren-persp-mode-switch-to-most-recent) + ("l" . persp-load-state-from-file) + ("L" . persp-load-from-file-by-names) + (";" . siren-persp-mode-show-current-perspective-name) + ("C-;" . siren-persp-mode-show-current-perspective-name) + ("e" . siren-persp-mode-edit-names-cache) + ("C-e" . siren-persp-mode-edit-names-cache) + ("0" . siren-persp-switch-to-index) + ("1" . siren-persp-switch-to-index) + ("2" . siren-persp-switch-to-index) + ("3" . siren-persp-switch-to-index) + ("4" . siren-persp-switch-to-index) + ("5" . siren-persp-switch-to-index) + ("6" . siren-persp-switch-to-index) + ("7" . siren-persp-switch-to-index) + ("8" . siren-persp-switch-to-index) + ("9" . siren-persp-switch-to-index)) :custom (persp-auto-save-num-of-backups 10) diff --git a/modules/workspaces/siren-workspace-map.el b/modules/workspaces/siren-workspace-map.el new file mode 100644 index 0000000..876a887 --- /dev/null +++ b/modules/workspaces/siren-workspace-map.el @@ -0,0 +1,19 @@ +;;; siren-workspace-map.el --- jimeh's Emacs Siren: workspaces-map setup. + +;;; Commentary: + +;; Setup of siren-workspace-map which other workspace modules can add +;; keybindings to. + +;;; Code: + +(use-package siren-workspace-map + :straight (:type built-in) + :no-require t + + :bind + (:prefix-map siren-workspace-map + :prefix "C-z")) + +(provide 'siren-workspace-map) +;;; siren-workspace-map.el ends here