> > But it seems you also modified either tab-line-tabs-buffer-list-function, > or tab-line-tabs-buffer-group-sort-function, or both of them. Is this > true? > Yes to tab-line-tabs-buffer-group-sort-function, no to tab-line-tabs-buffer-list-function, yes also to tab-line-tabs-buffer-group-function. Setup is below: (defvar ++buffer-group-table (make-hash-table :test 'equal)) ;; I manually populate ++buffer-group-table (defun ++tab-line-buffer-group (buffer) (gethash (buffer-name buffer) ++buffer-group-table (with-current-buffer buffer (concat (symbol-name major-mode) ":" (and buffer-file-name (file-name-directory buffer-file-name)))))) (defun ++buffer-name< (a b) (string< (buffer-name a) (buffer-name b))) (setq tab-line-tabs-function #'tab-line-tabs-buffer-groups tab-line-tabs-buffer-group-function #'++tab-line-buffer-group tab-line-tabs-buffer-group-sort-function #'++buffer-name< tab-line-switch-cycling t)