Annoying FlocaleGetFontSet warning

Since I started using fvwm, this message has always been appearing on tty1 when I enter startx:

[fvwm][FlocaleGetFontSet]: (-*-fixed-medium-r-semicondensed-*-13-*-*-*-*-*-*-*,-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-16-*-*-*-*-*-*-*) Missing font charsets:
ISO8859-14

I know I can get rid of this message by using grep -v, either in my mind or in the shell command :slight_smile: , but I wish to find a more graceful and clean solution to prevent this message from appearing. Thanks in advance.
The environment is Gentoo amd64, xorg-server 1.9.5, fvwm 2.5.31, en_US.UTF-8.

Here’s all the lines in my fvwm config that has something to do with font:

SetEnv deffont "xft:Terminus:pixelsize=12:encoding=iso10646-1"
DefaultFont $[deffont]
*FvwmIdent: Font $[deffont]
*FvwmFormDefault: Font $[deffont]
*FvwmTaskBar: StatusFont $[deffont]
*FvwmForm-RootCursor: Font $[deffont}

The full fvwm config can be seen right here: pastebin.com/BmaugnRc
I looked into /usr/share/fvwm/Config*, too, and override all the configurations related to “fixed” in the main configuration file – no effect at all.

The solution should be obvious then. Look at your Locale, and then at the Charsets being used. They don’t match. Plus, it’s likely there is no corresponding font for the charset your using. FVWM will fall back to a default in that case.

Of course – that was the wrong thing to do – see above.

I took a look at your config file, and have some observations.

Nope. Not even close. The module resided here:

fvwm-config -m

I don’t know why people have this stupid obsession with setting env vars for everything. “$.” is ALWAYS relative, so just use it. Don’t go creating Yet Another Envvar for this.

Why PipeRead? If feh ever cannot find your wallpaper, FVWM might block waiting for the command to complete. Not good, just use “Exec exec” here for that.

No – that’s wasteful with using “All”. You want this:

DestroyFunc ExecIfNoWindow
AddToFunc ExecIfNoWindow
+ I None ($0) Exec exec $1

This ancient/deprecated syntax. Module aliases are separated by colons; you’ve already done this for other options, so why not these?

If you do – at least sort out the hideous mess you claim forms a decor – as at the moment you seem to still not understand it.

What’s all this “$[FVWM_USERDIR]/decor/” business? Read up on “ImagePath”.

More general observations are you have Style lines in the middle of your config file which is bad.

Read this:

mail-archive.com/fvwm@lists. … 16494.html

– Thomas Adam

Okay, thanks a lot for your observations. There’s one point that I should state clearly: Most parts of my fvwm config are not written by me. Actually a large part comes from a site that fvwm.org linked to, so it’s not entirely my faults that so many issues exists in the configuration file. I’m just too lazy to even look at these lines. :slight_smile:
I do not understand fvwm well, indeed, and I have no intention to become a fvwm expert – it’s after all a tool and not a a big part of my life. I care more about if the configuration works, or not. Mostly because the 180-page manual of fvwm makes me feel dizzy to even think about reading it all. :slight_smile:

Firstly, about the FlocaleGetFontSet warning, I understand that the font “--fixed-medium-r-semicondensed--13-------" does not support some charsets. But I’m not smart enough, unfortunately, to understand the “obvious solution” that you indicated. I have never mentioned the font "--fixed-medium-r-semicondensed--13-------” in my configuration file. If it’s some sort of fvwm fallback font, it sound quite incomprehensible that fvwm uses fallback fonts when I have specified “DefaultFont” in the configuration file. Would you mind showing me a way to prevent fvwm from falling-back to this font?

  • Huh, when feh cannot find my wallpaper, feh will terminate itself without putting anything in stdout, and fvwm will continue working normally. feh would print two lines of warning messages to stderr telling me about the error, though.
  • My conky window is pseudo-transparent, so if I use “Exec exec feh --bg-scale XXXX”, conky sometimes gets executed before feh paints the background, leaving conky using black as the background before its next redraw/update, so I use PipeRead to force fvwm to wait for feh to finish its job, before it executes conky. It’s indicated so in the man page:

Well, these code are entirely copied from various sources, as I have stated above. Most of them from this place, and the window decoration code from fvwm starter’s kit.
And it’s not me who wants to write an article about window decorations, but “Two Barleycorns”. My knowledge about fvwm is approximately 2000 miles away from the knowledge required to write a serious article about fvwm. :slight_smile:

Anyway, even though I’m not very interested in perfect syntax, I do love perfect things. :slight_smile: I cleaned up my fvwm configuration and (hopefully) fixed all the issues that you pointed out. Thanks again for the suggestions.
pastebin.com/2XiVLdEK

Gee, I have never noticed there’s a command called “None”. :slight_smile: Thanks.
There’s a little issue, somehow I found this line not working for tint2 and conky:

+ I None ($0) Exec exec $[1-]

Fvwm still launches another tint2/conky when it’s already running. Probably it’s related to some sort of hints tint2/conky windows have. I found this command happened to work:

+ I None ($0,CirculateHit) Exec exec $[1-]

Yet I have no idea why it works. ]Sorry for the quote pyramids, which are probably visually disturbing for you.[/i]

Don’t insult me by quoting the man page at me. So you do it for the benefit of conky? Great. Fix conky.

Oh – well, at least email the author of that project to let him know.

That site is ancient. You can’t learn a thing from it.

You still didn’t read: mail-archive.com/fvwm@lists. … 16494.html

Look at lines 261-3, for example.

“None” implies CirculateHit already, so it’s probably something else unrelated. Either way in your case, a red-herring. Not that I place any faith in either of those programs.

– Thomas Adam

Well, the problem that this thread primarily talks about is the “annoying FlocaleGetFontSet warning”, and seems you have (intentionally?) ignored the problem in the last reply. Let me repeat my question:

I’m sorry. I did not intend to insult you. I just didn’t know who you are at that moment.
Well, it’s not a bug of conky. If feh and conky execute asynchronously the problem would, and should, happen occasionally. It’s good enough that with PipeRead I can get over this issue, if not perfectly.

Actually I did read it, and followed the suggested structures with a few exceptions, and line 261-263 is one of them. The 3 environment variables MenuButton, MaxButton, and MinButton are used only in the window decoration. If I place them in the beginning of the file, the place they are defined and the (sole) place they are used would be quite distant (200+ lines away), and it does not sound particularly efficient when I revise the configuration file in the future.
Another exception is I put the function section before the binding section, since the binding section uses many of the functions, and I think it’s better to place the functions before the places that use them. I could be wrong, though.

Okay, basically this is what happens. When I enter this in FvwmConsole: (I do have conky running at the moment.)

None (conky) Echo no conky window

I get “[fvwm][Echo]: no conky window” on stderr; but when I use this:

None (conky,CirculateHit) Echo no conky window

I get nothing on stderr. Exactly the same thing happens on tint2.
I know it’s written that None implies CirculateHit, but it’s exactly what happens on my side.
I tried adding a “Style * CirculateHit” line to the configuration file, and it affects nothing.

Send the output of “PrintInfo Locale 2”, would you and I’ll marry it up with the errors you’re getting.

That’s fine, you can keep both pieces when the side-effects outweigh the results.

It’s irrelevant at this point.

– Thomas Adam

Here’s the output of “PrintInfo Locale 2”:

[code]fvwm info on locale:
locale: en_US.UTF-8, Modifier: @im=fcitx
Default Charset: X: ISO10646-1, Iconv: UTF-8, Bidi: No
XOM Charsets: ISO8859-1 ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 KOI8-R ISO8859-7 ISO8859-9 ISO8859-13 ISO8859-14 ISO8859-15 JISX0208.1983-0 KSC5601.1987-0 GB2312.1980-0 JISX0201.1976-0 ISO10646-1
Number of loaded font: 1

  • Font number 0
    fvwm info:
    Name: xft:Terminus:pixelsize=12:encoding=iso10646-1
    Cache count: 1
    Type: XftFont
    Charset: X: ISO10646-1, Iconv: UTF-8, Bidi: No
    height: 12, ascent: 10, descent: 2
    shadow size: 0, shadow offset: 0, shadow direction:0
    Xft info:
    • Vertical font:
      height: 12, ascent: 10, descent: 2, maw: 6
      Pattern has 31 elts (size 32)
      family: “Terminus”(s)
      style: “Regular”(s)
      slant: 0(i)(s)
      weight: 80(i)(s)
      width: 100(i)(s)
      pixelsize: 12(f)(s)
      spacing: 110(i)(s)
      foundry: “xos4”(s)
      antialias: FcTrue(w)
      hintstyle: 1(i)(w)
      hinting: FcTrue(w)
      verticallayout: FcFalse(s)
      autohint: FcFalse(s)
      globaladvance: FcTrue(s)
      file: “/usr/share/fonts/terminus/ter-112n.pcf.gz”(s)
      index: 0(i)(s)
      outline: FcFalse(s)
      scalable: FcFalse(s)
      dpi: 89(f)(s)
      rgba: 5(i)(w)
      scale: 1(f)(s)
      minspace: FcFalse(s)
      charset:
      0000: ffffffff ffffffff ffffffff ffffffff dffe5ffd ffffffff ffffffff ffffffff
      (s)
      lang: aa|ast|ay|bi|br|ch|da|de|en|es|eu|fj|fo|fur|fy|gd|gl|gv|ho|ia|id|ie|io|is|it|lb|mg|nb|nds|nl|nn|no|nr|oc|om|pt|rm|sma|smj|so|sq|ss|st|sv|sw|tl|ts|uz|vo|wa|xh|yap|zu|an|fil|ht|jv|kj|kwm|li|ms|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za(s)
      fontversion: 0(i)(s)
      fontformat: “PCF”(s)
      embolden: FcFalse(s)
      embeddedbitmap: FcFalse(w)
      decorative: FcFalse(s)
      render: FcTrue(s)
      maxglyphmemory: 1048576(i)(s)

    • Rotated font 90: None

    • Rotated font 270: None

    • Rotated font 180: None
      [/code]

I read the mail for 3 times, and I did not see the side effect at all. The 3 variables are defined before the lines where they are used, and I don’t see anything wrong with it. Hmm, I cannot comprehend English very well, maybe.