mirror of
https://codeberg.org/scip/dot-emacs.git
synced 2025-12-17 12:30:59 +01:00
replace eyebrowse with persp
This commit is contained in:
1
init.el
1
init.el
@@ -86,6 +86,7 @@
|
|||||||
;; bootstrap emacs
|
;; bootstrap emacs
|
||||||
(add-to-list 'load-path tvd-lisp-dir)
|
(add-to-list 'load-path tvd-lisp-dir)
|
||||||
(require 'init-display)
|
(require 'init-display)
|
||||||
|
(require 'init-modeline)
|
||||||
(require 'init-elget)
|
(require 'init-elget)
|
||||||
(require 'init-system)
|
(require 'init-system)
|
||||||
(require 'init-windowmgmt)
|
(require 'init-windowmgmt)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
"Flag macro recording in mode-line"
|
"Flag macro recording in mode-line"
|
||||||
:group 'tvd-mode-line-faces)
|
:group 'tvd-mode-line-faces)
|
||||||
|
|
||||||
|
|
||||||
;; custom modeline
|
;; custom modeline
|
||||||
(setq-default mode-line-format
|
(setq-default mode-line-format
|
||||||
(list
|
(list
|
||||||
@@ -46,5 +47,5 @@
|
|||||||
mode-line-end-spaces))
|
mode-line-end-spaces))
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-moine.el)
|
(provide 'init-modeline)
|
||||||
;;; init-modeline.el ends here
|
;;; init-modeline.el ends here
|
||||||
|
|||||||
@@ -214,6 +214,14 @@ Reach this hydra with <C-x w>
|
|||||||
(global-set-key (kbd "C-x w") 'hydra-windows/body))
|
(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)
|
(provide 'init-windowmgmt)
|
||||||
;;; init-windowmgmt.el ends here
|
;;; init-windowmgmt.el ends here
|
||||||
|
|||||||
@@ -1,37 +1,92 @@
|
|||||||
;; *** Eyebrowse Workspaces
|
;; *** Eyebrowse Workspaces
|
||||||
;; workspace configuration, like desktops. Seems to be a good implementation, w/o save though
|
;; workspace configuration, like desktops. Seems to be a good implementation, w/o save though
|
||||||
|
|
||||||
|
(use-package perspective
|
||||||
|
:bind
|
||||||
|
|
||||||
(use-package eyebrowse
|
;; global overrides
|
||||||
:init
|
(("C-x C-b" . persp-ibuffer)
|
||||||
;; "prefix key" has to be set before loading, keep in mind, that
|
("C-x b" . persp-switch-to-buffer*)
|
||||||
;; if you change it here, you need to change it below as well!
|
("C-x k" . persp-kill-buffer*))
|
||||||
(setq eyebrowse-keymap-prefix (kbd "C-x C-x"))
|
|
||||||
(global-unset-key (kbd "C-x C-x"))
|
|
||||||
|
|
||||||
:config
|
;; perspective specifics
|
||||||
|
(:map perspective-map
|
||||||
|
("C-x" . persp-switch-last)
|
||||||
|
("c" . tvd-persp-new)
|
||||||
|
("q" . persp-kill)
|
||||||
|
("C-k" . persp-kill)
|
||||||
|
("?" . hydra-persp/body))
|
||||||
|
|
||||||
(defun tvd-new-eyebrowse-workspace ()
|
:custom
|
||||||
"Create new scratch buffer and ask for a name"
|
(persp-mode-prefix-key (kbd "C-x C-x"))
|
||||||
(interactive)
|
|
||||||
(eyebrowse-rename-window-config (eyebrowse--get 'current-slot) (read-string "Workspace: "))
|
|
||||||
(autoscratch-buffer))
|
|
||||||
|
|
||||||
;; always enable
|
:init
|
||||||
(eyebrowse-mode t)
|
(persp-mode)
|
||||||
|
|
||||||
(setq eyebrowse-new-workspace 'tvd-new-eyebrowse-workspace
|
:config
|
||||||
eyebrowse-switch-back-and-forth t
|
(add-hook 'ibuffer-hook
|
||||||
eyebrowse-wrap-around t
|
(lambda ()
|
||||||
eyebrowse-mode-line-style t
|
(persp-ibuffer-set-filter-groups)
|
||||||
eyebrowse-slot-format "%s:init")
|
(unless (eq ibuffer-sorting-mode 'alphabetic)
|
||||||
|
(ibuffer-do-sort-by-alphabetic))))
|
||||||
|
|
||||||
;; add a hydra, just in case, it contains hydra commands and hints
|
(defun tvd-persp-new(name)
|
||||||
;; about the actual key bindings, it's also being refered from
|
(interactive "sEnter new perspective name: ")
|
||||||
;; hydra-window/body with "e"
|
(persp-new name)
|
||||||
(when (fboundp 'defhydra)
|
(persp-switch name))
|
||||||
(defhydra hydra-eyebrowse (:color blue)
|
|
||||||
"
|
(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!
|
||||||
|
(setq eyebrowse-keymap-prefix (kbd "C-x C-x"))
|
||||||
|
(global-unset-key (kbd "C-x C-x"))
|
||||||
|
|
||||||
|
:config
|
||||||
|
(defun tvd-new-eyebrowse-workspace ()
|
||||||
|
"Create new scratch buffer and ask for a name"
|
||||||
|
(interactive)
|
||||||
|
(eyebrowse-rename-window-config (eyebrowse--get 'current-slot) (read-string "Workspace: "))
|
||||||
|
(autoscratch-buffer))
|
||||||
|
|
||||||
|
;; always enable
|
||||||
|
(eyebrowse-mode t)
|
||||||
|
|
||||||
|
(setq eyebrowse-new-workspace 'tvd-new-eyebrowse-workspace
|
||||||
|
eyebrowse-switch-back-and-forth t
|
||||||
|
eyebrowse-wrap-around t
|
||||||
|
eyebrowse-mode-line-style t
|
||||||
|
eyebrowse-slot-format "%s:init")
|
||||||
|
|
||||||
|
;; add a hydra, just in case, it contains hydra commands and hints
|
||||||
|
;; about the actual key bindings, it's also being refered from
|
||||||
|
;; hydra-window/body with "e"
|
||||||
|
(when (fboundp 'defhydra)
|
||||||
|
(defhydra hydra-eyebrowse (:color blue)
|
||||||
|
"
|
||||||
^Eyebrowse Workspace Management^
|
^Eyebrowse Workspace Management^
|
||||||
^^--------------------------------------
|
^^--------------------------------------
|
||||||
_l_: last window (C-x C-x C-x)
|
_l_: last window (C-x C-x C-x)
|
||||||
@@ -43,27 +98,27 @@ _c_: create workspace (C-x C-x n)
|
|||||||
|
|
||||||
Use C-x C-x to access eyebrowse directly.
|
Use C-x C-x to access eyebrowse directly.
|
||||||
"
|
"
|
||||||
("l" eyebrowse-last-window-config nil)
|
("l" eyebrowse-last-window-config nil)
|
||||||
("n" eyebrowse-next-window-config nil)
|
("n" eyebrowse-next-window-config nil)
|
||||||
("p" eyebrowse-prev-window-config nil)
|
("p" eyebrowse-prev-window-config nil)
|
||||||
("x" eyebrowse-close-window-config nil)
|
("x" eyebrowse-close-window-config nil)
|
||||||
("t" eyebrowse-rename-window-config nil)
|
("t" eyebrowse-rename-window-config nil)
|
||||||
("c" eyebrowse-create-window-config nil)
|
("c" eyebrowse-create-window-config nil)
|
||||||
("q" nil nil :color red)))
|
("q" nil nil :color red)))
|
||||||
|
|
||||||
;;Modifying the eyebrowse keymap directly doesn't work because it's
|
;;Modifying the eyebrowse keymap directly doesn't work because it's
|
||||||
;; not setup correctly. I sent a pull request to fix this:
|
;; not setup correctly. I sent a pull request to fix this:
|
||||||
;; https://github.com/wasamasa/eyebrowse/pull/94, however, vaslilly choosed
|
;; https://github.com/wasamasa/eyebrowse/pull/94, however, vaslilly choosed
|
||||||
;; not to accept it. So, I need to configure the whole chords for every
|
;; not to accept it. So, I need to configure the whole chords for every
|
||||||
;; function I use AND set the "prefix key" using the weird way above
|
;; function I use AND set the "prefix key" using the weird way above
|
||||||
;; (before loading).
|
;; (before loading).
|
||||||
(global-set-key (kbd "C-x C-x C-x") 'eyebrowse-last-window-config)
|
(global-set-key (kbd "C-x C-x C-x") 'eyebrowse-last-window-config)
|
||||||
(global-set-key (kbd "C-x C-x <right>") 'eyebrowse-next-window-config)
|
(global-set-key (kbd "C-x C-x <right>") 'eyebrowse-next-window-config)
|
||||||
(global-set-key (kbd "C-x C-x <left>") 'eyebrowse-prev-window-config)
|
(global-set-key (kbd "C-x C-x <left>") 'eyebrowse-prev-window-config)
|
||||||
(global-set-key (kbd "C-x C-x q") 'eyebrowse-close-window-config)
|
(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 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 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!
|
;; There's also some face config, see defcustom at end of file!
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user