diff --git a/.config/emacs/init.el b/.config/emacs/init.el index d5c683c..305b323 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -70,10 +70,10 @@ Otherwise the startup will be very slow. " (require 'init-bookmark) (require 'init-dashboard) (require 'init-dired) -;;(require 'init-persp) (require 'init-highlight) (require 'init-ibuffer) -;;(require 'init-window) +(require 'init-persp) +;; (require 'init-window) ;; will be removed (require 'init-treemacs) ;; ;;;; shell @@ -93,7 +93,8 @@ Otherwise the startup will be very slow. " ;;;; utils ;;(require 'init-utils) ;; -;;;; Programming +;; (require 'init-dict) ;; will be removed + ;;(require 'init-vcs) ;;(require 'init-flycheck) ;;(require 'init-eglot) diff --git a/.config/emacs/lisp/init-package.el b/.config/emacs/lisp/init-package.el index f6de26f..c300742 100644 --- a/.config/emacs/lisp/init-package.el +++ b/.config/emacs/lisp/init-package.el @@ -9,20 +9,6 @@ (and (file-readable-p custom-file) (load custom-file)) -; (when (version< emacs-version "28") -; (add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/"))) -; (add-to-list 'package-archives '("stable" . "https://stable.melpa.org/packages/")) -; (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) - -; (customize-set-variable 'package-archive-priorities -; '(("gnu" . 99) ; prefer GNU packages -; ("nongnu" . 80) ; use non-gnu packages if -; ; not found in GNU elpa -; ("stable" . 70) ; prefer "released" versions -; ; from melpa -; ("melpa" . 0))) ; if all else fails, get it -; ; from melpa - (defvar bootstrap-version) (let ((bootstrap-file (expand-file-name diff --git a/.config/emacs/lisp/init-persp.el b/.config/emacs/lisp/init-persp.el index 3e8ae33..0672124 100644 --- a/.config/emacs/lisp/init-persp.el +++ b/.config/emacs/lisp/init-persp.el @@ -4,6 +4,9 @@ ;; Windows/buffers sets shared among frames + save/load. (use-package persp-mode + :straight t + :ensure t + :defer t :diminish :autoload (get-current-persp persp-contain-buffer-p) :hook (after-init . persp-mode) @@ -13,7 +16,6 @@ persp-kill-foreign-buffer-behaviour 'kill persp-auto-resume-time 0) :config - (with-no-warnings ;; Don't save if the state is not loaded (defvar persp-state-loaded nil @@ -66,43 +68,45 @@ :save-vars '(major-mode default-directory))) ;; Project integration +(use-package persp-mode-project-bridge + :straight t + :ensure t + :defer t + :autoload (persp-mode-project-bridge-find-perspectives-for-all-buffers + persp-mode-project-bridge-kill-perspectives) + :hook + (persp-mode-project-bridge-mode . (lambda () + (if persp-mode-project-bridge-mode + (persp-mode-project-bridge-find-perspectives-for-all-buffers) + (persp-mode-project-bridge-kill-perspectives)))) + (persp-mode . persp-mode-project-bridge-mode) + :init (when (icons-displayable-p) + (setq persp-mode-project-bridge-persp-name-prefix "")) + :config + (with-no-warnings + ;; HACK: Allow saving to files + (defun my-persp-mode-project-bridge-add-new-persp (name) + (let ((persp (persp-get-by-name name *persp-hash* :nil))) + (if (eq :nil persp) + (prog1 + (setq persp (persp-add-new name)) + (when persp + (set-persp-parameter 'persp-mode-project-bridge t persp) + (persp-add-buffer (cl-remove-if-not #'get-file-buffer (project-files (project-current))) + persp nil nil))) + persp))) + (advice-add #'persp-mode-project-bridge-add-new-persp + :override #'my-persp-mode-project-bridge-add-new-persp) - (use-package persp-mode-project-bridge - :autoload (persp-mode-project-bridge-find-perspectives-for-all-buffers - persp-mode-project-bridge-kill-perspectives) - :hook - (persp-mode-project-bridge-mode . (lambda () - (if persp-mode-project-bridge-mode - (persp-mode-project-bridge-find-perspectives-for-all-buffers) - (persp-mode-project-bridge-kill-perspectives)))) - (persp-mode . persp-mode-project-bridge-mode) - :init (when (icons-displayable-p) - (setq persp-mode-project-bridge-persp-name-prefix "")) - :config - (with-no-warnings - ;; HACK: Allow saving to files - (defun my-persp-mode-project-bridge-add-new-persp (name) - (let ((persp (persp-get-by-name name *persp-hash* :nil))) - (if (eq :nil persp) - (prog1 - (setq persp (persp-add-new name)) - (when persp - (set-persp-parameter 'persp-mode-project-bridge t persp) - (persp-add-buffer (cl-remove-if-not #'get-file-buffer (project-files (project-current))) - persp nil nil))) - persp))) - (advice-add #'persp-mode-project-bridge-add-new-persp - :override #'my-persp-mode-project-bridge-add-new-persp) - - ;; HACK: Switch to buffer after switching perspective - (defun my-persp-mode-project-bridge-hook-switch (fn &rest _args) - "Switch to a perspective when hook is activated." - (let ((buf (current-buffer))) - (funcall fn) - (when (buffer-live-p buf) - (switch-to-buffer buf)))) - (advice-add #'persp-mode-project-bridge-hook-switch - :around #'my-persp-mode-project-bridge-hook-switch))) + ;; HACK: Switch to buffer after switching perspective + (defun my-persp-mode-project-bridge-hook-switch (fn &rest _args) + "Switch to a perspective when hook is activated." + (let ((buf (current-buffer))) + (funcall fn) + (when (buffer-live-p buf) + (switch-to-buffer buf)))) + (advice-add #'persp-mode-project-bridge-hook-switch + :around #'my-persp-mode-project-bridge-hook-switch))) (provide 'init-persp) ;;; init-persp.el ends here