Thank you very much! It was a bit surprising to learn that appearance of the tab-bar is controller by the keymap ;) I was using `header-line` as a panel with EXWM, but it didn't work well with modes like info which define their own header-line. Now it's much better! On Thu, Oct 17, 2019 at 12:15 AM Juri Linkov wrote: > > Is it possible to change how tab-bar is formatted? > > For example I'd like to put display-time-string there. > > Yes, everything is possible. You need just a few lines of code: > > (advice-add 'tab-bar-make-keymap-1 :around > (lambda (orig-fun) > (append `(keymap (display-time menu-item ,(format-time-string "%H:%M") > ignore)) > (cdr (funcall orig-fun)))) > '((name . tab-bar-display-time))) > > and if you want also a timer to redraw the tab-bar during idle times. > > This has one problem - the clock is located on the left side. When > Android moved the status bar clock from the right corner to the left, > it caused backward-compatibility problems for millions of users, and > still it's impossible to move the clock back to the right on Android. > > But in Emacs everything is extensible and customizable. So it's easy > to move the clock to the right on the tab-bar with another few lines: > > (advice-add 'tab-bar-make-keymap-1 :around > (lambda (orig-fun) > (append (funcall orig-fun) > `((display-time menu-item > ,(concat > (propertize " " 'display '(space :align-to (- right 5))) > (format-time-string "%H:%M")) > ignore)))) > '((name . tab-bar-display-time))) > > Now the tab-bar clock looks exactly like the desktop top panel clock: > >