replace eyebrowse with persp

This commit is contained in:
2023-05-16 14:06:53 +02:00
parent 98ccb528ea
commit 48d6eb7528
4 changed files with 111 additions and 46 deletions

View File

@@ -86,6 +86,7 @@
;; bootstrap emacs
(add-to-list 'load-path tvd-lisp-dir)
(require 'init-display)
(require 'init-modeline)
(require 'init-elget)
(require 'init-system)
(require 'init-windowmgmt)

View File

@@ -18,6 +18,7 @@
"Flag macro recording in mode-line"
:group 'tvd-mode-line-faces)
;; custom modeline
(setq-default mode-line-format
(list
@@ -46,5 +47,5 @@
mode-line-end-spaces))
(provide 'init-moine.el)
(provide 'init-modeline)
;;; init-modeline.el ends here

View File

@@ -214,6 +214,14 @@ Reach this hydra with <C-x w>
(global-set-key (kbd "C-x w") 'hydra-windows/body))
;; configure emacs window behavior
;; see also https://www.masteringemacs.org/article/demystifying-emacs-window-manager
(customize-set-variable 'display-buffer-base-action
'((display-buffer-reuse-window display-buffer-same-window)
(reusable-frames . t)))
(customize-set-variable 'even-window-sizes nil) ; avoid resizing
(provide 'init-windowmgmt)
;;; init-windowmgmt.el ends here

View File

@@ -1,8 +1,64 @@
;; *** Eyebrowse Workspaces
;; workspace configuration, like desktops. Seems to be a good implementation, w/o save though
(use-package perspective
:bind
(use-package eyebrowse
;; global overrides
(("C-x C-b" . persp-ibuffer)
("C-x b" . persp-switch-to-buffer*)
("C-x k" . persp-kill-buffer*))
;; perspective specifics
(:map perspective-map
("C-x" . persp-switch-last)
("c" . tvd-persp-new)
("q" . persp-kill)
("C-k" . persp-kill)
("?" . hydra-persp/body))
:custom
(persp-mode-prefix-key (kbd "C-x C-x"))
:init
(persp-mode)
:config
(add-hook 'ibuffer-hook
(lambda ()
(persp-ibuffer-set-filter-groups)
(unless (eq ibuffer-sorting-mode 'alphabetic)
(ibuffer-do-sort-by-alphabetic))))
(defun tvd-persp-new(name)
(interactive "sEnter new perspective name: ")
(persp-new name)
(persp-switch name))
(when (fboundp 'defhydra)
(defhydra hydra-persp (:color blue)
"
^Persp Workspace Management^
^^--------------------------------------
_C-x_: last workspace (C-x C-x C-x)
_n_: next workspace (C-x C-x <right>)
_p_: prev workspace (C-x C-x <left>)
_q_: close workspace (C-x C-x q) + (C-x C-x C-k)
_r_: rename workspace (C-x C-x t)
_c_: create workspace (C-x C-x n)
Use C-x C-x to access persp directly.
"
("C-x" persp-switch-last nil)
("n" persp-next nil)
("p" persp-prev nil)
("C-k" persp-kill nil)
("r" persp-rename nil)
("c" tvd-persp-new nil)
("q" nil nil :color red))))
(when nil
(use-package eyebrowse
:init
;; "prefix key" has to be set before loading, keep in mind, that
;; if you change it here, you need to change it below as well!
@@ -10,7 +66,6 @@
(global-unset-key (kbd "C-x C-x"))
:config
(defun tvd-new-eyebrowse-workspace ()
"Create new scratch buffer and ask for a name"
(interactive)
@@ -63,7 +118,7 @@ Use C-x C-x to access eyebrowse directly.
(global-set-key (kbd "C-x C-x q") 'eyebrowse-close-window-config)
(global-set-key (kbd "C-x C-x t") 'eyebrowse-rename-window-config)
(global-set-key (kbd "C-x C-x n") 'eyebrowse-create-window-config)
(global-set-key (kbd "C-x C-x ?") 'hydra-eyebrowse/body))
(global-set-key (kbd "C-x C-x ?") 'hydra-eyebrowse/body)))
;; There's also some face config, see defcustom at end of file!