xosview not showing all cpus (just 1)

Perhaps this is similar to other posts but there is a bug in the xosview resources that eliminates the setting of

*cpuFormat: auto ! single, all, auto or both

such that multi cpus like my i7 show only the ‘single’ cpu.

The resource file is /usr/share/X11/app-defaults/XOsview

The error is that there are 2 lines which have contractions with a single quote (’) and this confuses the parser after the quote.

The two lines are

[1] ! We don’t need to enable the Decay option, as it is already time-averaged.
[2] xosview*gfxPriority: 1 ! don’t change, until you know what you do

Once you eliminate the single quote the parser will get to the other settings, it seems to not like unbalanced single quotes.
The change is from don’t to dont (it is even part of a comment !?).

Anyway this has confused me in opensuse 12.3 and 13.1 for some time!

The other piece of logic in the default case of cpuFormat being ‘auto’ would be the following logic from xosview MeterMaker.cc.

if (strncmp(_xos->getResource("cpuFormat"), "auto", 2) == 0) {
  if (cpuCount == 1 || cpuCount > 4) {
    single = true;
  } else {
    all = true;
  }
}

The setting ‘auto’ will show the individual cpus with cpu counts of 1,2,3, or 4.

So with the i7 (with 8 cpus) the only way to get all 8 visible would be ‘all’ or ‘both’ as a cpuFormat setting.

The latest version seems very different to 12.3 with things to note for openSUSE 13.1 are:

The program “cpufrequtils is deprecated” and should not be used, you must use “cpupower” to read and change cpu speed/governor and must be root for all actions.
There is one more app you can use for simple info call lscpu. I have a bash script for setting/reading the active governor you can find here:

C.F.U. - CPU Frequency Utilitiy - Version 1.10 - For use with the cpufrequtils package - Blogs - openSUSE Forums

Thank You,

One last issue, the xosview defaults use the following file -> /usr/share/X11/app-defaults/XOsview

Even though ‘strace’ shows that xosview finds it, it does not open it !

stat("/usr/share/X11/app-defaults/XOsview", {st_mode=S_IFREG|0444, st_size=7533, …}) = 0
stat("/etc/X11/app-defaults/XOsview", 0x7ffffca1ef30) = -1 ENOENT (No such file or directory)
stat("/usr/lib/X11/app-defaults/XOsview", 0x7ffffca1ef30) = -1 ENOENT (No such file or directory)
stat("/usr/X11R6/lib/X11/app-defaults/XOsview", 0x7ffffca1ef30) = -1 ENOENT (No such file or directory)
stat("/usr/openwin/lib/X11/app-defaults/XOsview", 0x7ffffca1ef30) = -1 ENOENT (No such file or directory)
stat("/usr/local/X11R6/lib/X11/app-defaults/XOsview", 0x7ffffca1ef30) = -1 ENOENT (No such file or directory)

but if you put the XOsview defaults in one of the other paths, it does ??

stat("/usr/share/X11/app-defaults/XOsview", {st_mode=S_IFREG|0444, st_size=7533, …}) = 0
stat("/etc/X11/app-defaults/XOsview", {st_mode=S_IFREG|0444, st_size=7533, …}) = 0
open("/etc/X11/app-defaults/XOsview", O_RDONLY) = 4
stat("/usr/lib/X11/app-defaults/XOsview", 0x7fff0eff18c0) = -1 ENOENT (No such file or directory)
stat("/usr/X11R6/lib/X11/app-defaults/XOsview", 0x7fff0eff18c0) = -1 ENOENT (No such file or directory)
stat("/usr/openwin/lib/X11/app-defaults/XOsview", {st_mode=S_IFREG|0444, st_size=7533, …}) = 0
open("/usr/openwin/lib/X11/app-defaults/XOsview", O_RDONLY) = 4
stat("/usr/local/X11R6/lib/X11/app-defaults/XOsview", 0x7fff0eff18c0) = -1 ENOENT (No such file or directory)