Subject: Re: bug#57372: no-toolkit menu popups do not respect emacs font configuration

From: Tomas Hlavaty <[email-masked]>
Date: Wed, 24 Aug 2022 23:57:44 +0200

On Wed 24 Aug 2022 at 22:33, Eli Zaretskii <[email-masked]> wrote:
>> (defun set-text-height (new-height)
>>   (set-face-attribute 'default nil :height new-height))
>> 
>> How could I achieve what you suggest so that setting the font height
>> would also apply to menu item X resource font?
>
> Make the function write to the ~/.Xresources file?
>
> Of course, X doesn't necessarily understand the Emacs units of
> measuring fonts, for example the relative units.  So eventually you'll
> need separate customizations.  However, I don't expect you to have to
> change these customizations too frequently.

The point of C-+ and C-- bindings is that I can just press a key and
grow or shrink the font.  That is essential for me.  My gui terminal can
do that out of the box, my console can do that with a bit of elisp
calling setfont, firefox can do that out of the box, and gui Emacs can
do that using the code I showed earlier; except the menu text we are
discussing.

This font size change happens on demand, when a key is pressed.

I guess writing to the ~/.Xresources file would work only on startup.

Then there seems to be the issue you said that Emacs and X has different
idea of describing fonts/units.

It is just complex and inconvenient.

> More generally, I don't see a way around the fact that different parts
> of the system need to be customized differently.

Why?

At the moment, it is the consequence of the way the no-toolkit menu is
implemented.

But surely it could be possible to change it to customize no-toolkit
menu text the same way as any other face.

> Many programs have
> their own init files, and some even have more than one: for example,
> Bash, GDB, and any other program that uses Readline will typically
> have customizations in ~/.inputrc, in addition to the program-specific
> init file, such as ~/.gdbinit for GDB.

This is not only about init files.

This is about making it not to have more init files, because unlike
customizing and changing faces, customizing a different system out of
Emacs is complex, fragile, inconvenient and might be impossible (is it
possible to change the menu text X resource on key press?).