Subject: bug#78896: 29.4; display-time-mode breaks minibuffer in emacsclient

From: Juri Linkov <[email-masked]>
Date: Thu, 26 Jun 2025 09:13:03 +0300

> These kinds of initializations and customizations should be moved to
> server-after-make-frame-hook.  They should only be invoked directly
> from the init file in non-daemon session (one could use the function
> daemonp to check that).  The rule is that any initialization or
> customization that needs the Emacs GUI system to be up and running
> should be done from server-after-make-frame-hook.
>
> Note that server-after-make-frame-hook is run after starting each new
> frame, not just once.  So if you have one-time initializations, you
> need some state variable you can set to indicate that the one-time
> stuff was already done, and set it after performing those
> initializations for the first time.

I confirm that everything works without problems with:

```
;; min-init.el
(require 'tab-bar)
(add-to-list 'tab-bar-format 'tab-bar-format-global 'append)
(display-time-mode 1)
(add-hook 'server-after-make-frame-hook 'toggle-frame-tab-bar)
```