Function: tab-switcher-noselect
tab-switcher-noselect is a byte-compiled function defined in
tab-bar.el.gz.
Signature
(tab-switcher-noselect)
Documentation
Create and return a buffer with a list of window configurations.
The list is displayed in a buffer named *Tabs*.
For more information, see the function tab-switcher.
Source Code
;; Defined in /usr/src/emacs/lisp/tab-bar.el.gz
(defun tab-switcher-noselect ()
"Create and return a buffer with a list of window configurations.
The list is displayed in a buffer named `*Tabs*'.
For more information, see the function `tab-switcher'."
(let* ((tabs (seq-remove (lambda (tab)
(eq (car tab) 'current-tab))
(funcall tab-bar-tabs-function)))
;; Sort by recency
(tabs (sort tabs (lambda (a b) (< (alist-get 'time b)
(alist-get 'time a))))))
(with-current-buffer (get-buffer-create
(format " *Tabs*<%s>"
(or (frame-parameter nil 'window-id)
(frame-parameter nil 'name))))
(setq buffer-read-only nil)
(erase-buffer)
(tab-switcher-mode)
;; Vertical alignment to the center of the frame
(insert-char ?\n (/ (- (frame-height) (length tabs) 1) 2))
;; Horizontal alignment to the center of the frame
(setq tab-switcher-column (- (/ (frame-width) 2) 15))
(dolist (tab tabs)
(insert (propertize
(format "%s %s\n"
(make-string tab-switcher-column ?\040)
(propertize
(alist-get 'name tab)
'mouse-face 'highlight
'help-echo
"mouse-2: select this window configuration"))
'tab tab)))
(goto-char (point-min))
(goto-char (or (next-single-property-change (point) 'tab) (point-min)))
(when (> (length tabs) 1)
(tab-switcher-next-line))
(move-to-column tab-switcher-column)
(set-buffer-modified-p nil)
(setq buffer-read-only t)
(current-buffer))))