From 97f00381c45bda7f48328a85cb3e837db079e75b Mon Sep 17 00:00:00 2001 From: Zelong Kuang Date: Sun, 21 Dec 2025 11:38:01 +1100 Subject: [PATCH] Re-enable tabspaces --- lisp/init-workspace.el | 90 +++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 46 deletions(-) diff --git a/lisp/init-workspace.el b/lisp/init-workspace.el index 1880fac..9022199 100644 --- a/lisp/init-workspace.el +++ b/lisp/init-workspace.el @@ -1,53 +1,51 @@ ;; -*- lexical-binding: t; -*- +(use-package tabspaces + :functions tabspaces-mode + :hook (elpaca-after-init . tabspaces-mode) + :custom + (tab-bar-show nil) - -;; (use-package tabspaces -;; :functions tabspaces-mode -;; :hook (elpaca-after-init . tabspaces-mode) -;; :custom -;; (tab-bar-show nil) + (tabspaces-use-filtered-buffers-as-default t) + (tabspaces-default-tab "Default") + (tabspaces-remove-to-default t) + (tabspaces-include-buffers '("*scratch*" "*Messages*")) + (tabspaces-exclude-buffers '("*eat*" "*vterm*" "*shell*" "*eshell*")) + ;; sessions + (tabspaces-session t) + (tabspaces-session-auto-restore t) + (tabspaces-keymap-prefix "C-c w") + :config + (with-no-warnings + ;; Filter Buffers for Consult-Buffer + (with-eval-after-load 'consult + ;; hide full buffer list (still available with "b" prefix) + (consult-customize consult--source-buffer :hidden t :default nil) + ;; set consult-workspace buffer list + (defvar consult--source-workspace + (list :name "Workspace Buffer" + :narrow ?w + :history 'buffer-name-history + :category 'buffer + :state #'consult--buffer-state + :default t + :items (lambda () (consult--buffer-query + :predicate #'tabspaces--local-buffer-p + :sort 'visibility + :as #'buffer-name))) + "Set workspace buffer list for consult-buffer.") + (add-to-list 'consult-buffer-sources 'consult--source-workspace)) -;; (tabspaces-use-filtered-buffers-as-default t) -;; (tabspaces-default-tab "Default") -;; (tabspaces-remove-to-default t) -;; (tabspaces-include-buffers '("*scratch*" "*Messages*")) -;; (tabspaces-exclude-buffers '("*eat*" "*vterm*" "*shell*" "*eshell*")) -;; ;; sessions -;; (tabspaces-session t) -;; (tabspaces-session-auto-restore t) -;; (tabspaces-keymap-prefix "C-c w") -;; :config -;; (with-no-warnings -;; ;; Filter Buffers for Consult-Buffer -;; (with-eval-after-load 'consult -;; ;; hide full buffer list (still available with "b" prefix) -;; (consult-customize consult--source-buffer :hidden t :default nil) -;; ;; set consult-workspace buffer list -;; (defvar consult--source-workspace -;; (list :name "Workspace Buffer" -;; :narrow ?w -;; :history 'buffer-name-history -;; :category 'buffer -;; :state #'consult--buffer-state -;; :default t -;; :items (lambda () (consult--buffer-query -;; :predicate #'tabspaces--local-buffer-p -;; :sort 'visibility -;; :as #'buffer-name))) -;; "Set workspace buffer list for consult-buffer.") -;; (add-to-list 'consult-buffer-sources 'consult--source-workspace)) + (defun my-tabspaces-delete-childframe (&rest _) + "Delete all child frames." + (ignore-errors + (posframe-delete-all))) + (advice-add #'tabspaces-save-session :before #'my-tabspaces-delete-childframe) -;; (defun my-tabspaces-delete-childframe (&rest _) -;; "Delete all child frames." -;; (ignore-errors -;; (posframe-delete-all))) -;; (advice-add #'tabspaces-save-session :before #'my-tabspaces-delete-childframe) - -;; (defun my-tabspaces-burry-window (&rest _) -;; "Burry *Messages* buffer." -;; (ignore-errors -;; (quit-windows-on messages-buffer-name))) -;; (advice-add #'tabspaces-restore-session :after #'my-tabspaces-burry-window))) + (defun my-tabspaces-burry-window (&rest _) + "Burry *Messages* buffer." + (ignore-errors + (quit-windows-on messages-buffer-name))) + (advice-add #'tabspaces-restore-session :after #'my-tabspaces-burry-window))) (provide 'init-workspace)