(tab-bar-select-tab ,i))))
:help "Click to visit group"))))
+(defcustom tab-bar-show-inactive-group-tabs nil
+ "Show tabs even if they are in inactive groups."
+ :type 'boolean
+ :initialize #'custom-initialize-default
+ :set (lambda (sym val)
+ (set-default sym val)
+ (force-mode-line-update))
+ :group 'tab-bar
+ :version "31.1")
+
(defun tab-bar-format-tabs-groups ()
"Produce tabs for the tab bar grouped according to their groups."
(let* ((tabs (funcall tab-bar-tabs-function))
((or (equal tab-group current-group) (not tab-group))
(append
;; Prepend current group name before first tab
- (when (and (not (equal previous-group tab-group)) tab-group)
+ (when (and (not (equal previous-group tab-group))
+ tab-group)
(tab-bar--format-tab-group tab i t))
;; Override default tab faces to use group faces
(let ((tab-bar-tab-face-function
(tab-bar--format-tab tab i))))
;; Show first tab of other groups with a group name
((not (equal previous-group tab-group))
- (tab-bar--format-tab-group tab i))
+ (append
+ (tab-bar--format-tab-group tab i)
+ (when tab-bar-show-inactive-group-tabs
+ (let ((tab-bar-tab-face-function
+ tab-bar-tab-group-face-function))
+ (tab-bar--format-tab tab i)))))
;; Hide other group tabs
- (t nil))
+ (t (when tab-bar-show-inactive-group-tabs
+ (let ((tab-bar-tab-face-function
+ tab-bar-tab-group-face-function))
+ (tab-bar--format-tab tab i)))))
(setq previous-group tab-group))))
tabs)))