where does fvwm get its xterm icon?

I can’t figure out where fvwm is getting the xpm icon for an xterm. The
issue started when I upgraded from Debian v7 (fvwm 1:2.5.30) to Debian v9
(fvwm 1:2.6.7-3). In both cases fvwm-icons was also installed.

I have this in ~/.fvwm/config:
Style “XTerm” Icon null.xpm, SloppyFocus, IconBox 200x200-1+8

where null.xpm is intended to call /usr/share/pixmaps/fvwm/null.xpm, a
zero-byte file I created.

When startx is called, it gets this from ~/.xinitrc:
xterm -geometry 125x58+964+56 -iconic -title syrano -e ssh syrano &

No matter what I list in config, the xterm icon that comes up matches
/usr/share/pixmaps/mini.xterm_48x48.xpm (an icon with a blue T' over a red X’). If I copy some other xpm on top of that and do startx again, I still
get the original mini.xterm_48x48.xpm image. Furthermore,
/usr/share/pixmaps/mini.xterm_48x48.xpm still shows an access time from weeks
go. It seems that fvwm has that image cached or built in somehow. Once fvwm
is up, if I call “xterm &” and convert that to an icon, it appears as a live
window screenshot, not as mini.xterm_48x48.xpm.

In Debian 7, calling null.xpm would give me no xpm icon, just a title bar
labeled “syrano”. I prefer this because it’s very small.

Thanks.

The icons come from the IconPath, but preference is given to the application provided icon. You can over ride this with IconOverride and EWMHMiniIconOverride.

Modifying your example:

Style "XTerm" IconOverride, Icon null.xpm, SloppyFocus, IconBox 200x200-1+8

Keep in mind you will probably also want to over ride the mini icon.

Maybe you would prefer the NoIcon option?