Subject: bug#50491: 28.0.50; load-theme in early-init does not fully loads/enables expected faces

From: Eli Zaretskii <[email-masked]>
Date: Sun, 12 Sep 2021 16:21:43 +0300

> From: Y. E. <[email-masked]>
> Cc: [email-masked], [email-masked]
> Date: Sun, 12 Sep 2021 16:07:04 +0300
> 
> > That could mean any number of things, and it is unreasonable to start
> > listing them, because the list will very quickly become outdated, aswe
> > add/change stuff in Emacs.
> 
> I totally agree.
> That's why I optionally suggested the removal of the phrase
> "frame appearance as well as" when listed possible improvements
> for this documentation page.

But that phrase isn't incorrect: some of the parameters _can_ be set
in the early-init file.  I'm just saying don't do that unless you
really have to, i.e. unless having it in the init files completely
doesn't work.

> For example, moving `initial-frame-alist' out of early-init
> leads to the geometry and font of the initial frame being changed during startup
> (it loads as a small frame first, then expands according to my settings),
> which is an aesthetically unpleasant behavior.

"Aesthetically unpleasant" is not a reason to move stuff into
early-init.  What you see is startup.el in action: it detects that
display parameters have changed, and it applies them.

> Also, while moving all the settings out of the early-init file,
> I reproduced the white-background-blinking on Emacs startup
> mentioned before
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=50491#14

Same thing: as long as it works, leave it alone.

> The more lines of code are loaded between the calls of
> `scroll-bar-mode' and `load-theme', the longer I see Emacs loading with
> the white background (instead of seeing the theme's background).

That's the expected and the correct behavior.  By contrast, moving
this stuff to early-init will bite you eventually.  I don't recommend
it, and I don't see any bug here that needs to be fixed.

> One of the following fixes the issue:
> - Place `(scroll-bar-mode -1)' *after* the (load-theme 'misterioso t) line.
> - Put `(scroll-bar-mode -1)' to the early-init.el file.

My recommendation is to use the former.