I admit it, I use tabbar. It is a bit quirky but it works for me. There is just one thing I really tried very hard to solve but it was not possible. I think mainly because a lot of people don't use tabbar so there is not so much information out there.
Below is my tabbar config, the grouping was stolen from some other init.el but it is exactly what I need. The problem is that as soon as I click on diary (a user buffer without stars) or *Packages*
buffer (an emacs-buffer) the tabbar disappears. I think this is because of the different nature of diary and *Packages*
buffer. Now to solve this I would like the buffers to be excluded from the groups below or put in a separate group. I have no skill in coding, I tried my best but a solution is beyond me. I hope someone could help.
#+BEGIN_SRC emacs-lisp
(use-package tabbar
:ensure t
:config
(setq tabbar-buffer-groups-function 'tabbar-buffer-groups)
(setq tabbar-background-color "black")
(setq tabbar-use-images nil)
(tabbar-mwheel-mode -1)
(tabbar-mode)
(defun tabbar-buffer-groups ()
"Return the list of group names the current buffer belongs to.
This function is a custom function for tabbar-mode's tabbar-buffer-groups.
This function group all buffers into 3 groups:
Those Dired, those user buffer, and those emacs buffer.
Emacs buffer are those starting with “*”."
(list
(cond
((string-equal "*" (substring (buffer-name) 0 1))
"Emacs Buffer"
)
((eq major-mode 'dired-mode)
"Dired"
)
(t
"User Buffer"
)
))))
#+END_SRC