From 1149c936a64b170d14ccc2e4ff955d3b8d9c4369 Mon Sep 17 00:00:00 2001 From: Levi Date: Fri, 20 Sep 2024 08:38:46 +0200 Subject: [PATCH] perspective --- emacs/feature/feature-project.el | 1 + emacs/module/module-perspective.el | 44 ++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 emacs/module/module-perspective.el diff --git a/emacs/feature/feature-project.el b/emacs/feature/feature-project.el index ac82247..617664a 100644 --- a/emacs/feature/feature-project.el +++ b/emacs/feature/feature-project.el @@ -8,6 +8,7 @@ ;;; Code: (require 'module-projectile) +(require 'module-perspective) (provide 'feature-project) ;;; feature-project.el ends here. diff --git a/emacs/module/module-perspective.el b/emacs/module/module-perspective.el new file mode 100644 index 0000000..1c26a11 --- /dev/null +++ b/emacs/module/module-perspective.el @@ -0,0 +1,44 @@ +;;; module-perspective.el --- workspace management +;;; +;;; Commentary: +;;; +;;; Declutter buffer lists. +;;; +;;; Code: + +(require 'module-pkg) +(pkg/require 'perspective) +(pkg/require 'persp-projectile) + +(persp-mode +1) +(persp-turn-on-modestring) + + +(defun my-persp-save () + (persp-state-save "~/.emacs.d/perspectives")) + +(defun my-persp-load () + (persp-state-load "~/.emacs.d/perspectives")) + + +(global-set-key (kbd "C-x k") 'persp-kill-buffer*) +(global-set-key (kbd "C-x x s") 'persp-switch) +(global-set-key (kbd "C-x x k") 'persp-kill) +(global-set-key (kbd "C-x x r") 'persp-rename) +(global-set-key (kbd "C-x x n") 'persp-next) +(global-set-key (kbd "C-x x p") 'persp-prev) +(global-set-key (kbd "C-x C-b") 'persp-ibuffer) + +(define-key projectile-mode-map (kbd "C-x p s") 'projectile-persp-switch-project) + +(autoload 'projectile-project-root "projectile") +(setq consult-project-root-function #'projectile-project-root) + +;; load and save perspectives on load and exit +(add-hook 'kill-emacs-hook 'my-persp-save) +(add-hook 'after-init-hook 'my-persp-load) + +(provide 'module-perspective) + +;;; module-projectile.el ends here. +