;; -*- lexical-binding: t; -*- ;; (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)) ;; (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))) (provide 'init-workspace)