• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

pixmaps/H03-May-2022-515381

po/H25-Jul-2019-41,97934,027

server/H03-May-2022-6,7185,108

shared/H23-Jul-2019-445207

src/H03-May-2022-67,17453,996

.editorconfigH A D23-Jul-2019155 96

.gitignoreH A D23-Jul-201993 109

COPYINGH A D23-Jul-201934.3 KiB677553

COPYRIGHTH A D25-Jul-2019424 1110

CREDITSH A D23-Jul-2019646 1511

ChangelogH A D23-Jul-201995.5 KiB1,9981,859

INSTALLH A D23-Jul-20198.9 KiB288204

MakefileH A D03-May-20228 KiB298171

READMEH A D25-Jul-201936.5 KiB831679

common.mkH A D23-Jul-2019882 4832

gkrellm.1H A D03-May-202237.5 KiB1,2481,192

gkrellm.specH A D23-Jul-20192.9 KiB9978

gkrellmd.1H A D03-May-20229.1 KiB436416

README

1GKrellM - GNU (or Gtk) Krell Monitors (or Meters)
2=======================================================================
3
4Author:	Bill Wilson
5Email:  billw--at--gkrellm.net
6Homepage: http://gkrellm.net
7
8Copyright (c) 1999-2019 by Bill Wilson.  This program is free software
9which I release under the GNU General Public License.
10Read the COPYRIGHT file for more info.
11
12CREDITS: See the CREDITS file.
13
14Description
15===========
16With a single process, GKrellM manages multiple stacked monitors and supports
17applying themes to match the monitors appearance to your window manager,
18Gtk, or any other theme.
19
20
21GKrellM Features
22================
23	* SMP CPU, Disk, Proc, and active net interface monitors with LEDs.
24	* Internet monitor that displays current and charts historical port hits.
25	* Memory and swap space usage meters and a system uptime monitor.
26	* File system meters show capacity/free space and can mount/umount.
27	* A mbox/maildir/MH/POP3/IMAP mail monitor which can launch a mail reader
28	  or remote mail fetch program.
29	* Clock/calendar and hostname display.
30	* Battery laptop battery monitor.
31	* CPU/motherboard temperature/fan/voltages display with warnings and
32	  alarms.  Linux requires a sensor configured sysfs, lm_sensors modules or
33	  a running mbmon daemon.  FreeBSD can also read the mbmon daemon.
34	  Windows requires MBM or SpeedFan.
35	* Disk temperatures if there's a running hddtemp daemon.
36	* Multiple monitors managed by a single process to reduce system load.
37	* A timer button that can execute PPP or ISDN logon/logoff scripts.
38	* Charts are autoscaling with configurable grid line resolution, or
39	  can be set to a fixed scale mode.
40	* Separate colors for "in" and "out" data.  The in color is used for
41	  CPU user time, disk read, forks, and net receive data.  The out color
42	  is used for CPU sys time, disk write, load, and net transmit data.
43	* Commands can be configured to run when monitor labels are clicked.
44	* GKrellM is plugin capable so special interest monitors can be created.
45	* Data can be collected from a gkrellmd server running on a remote machine.
46	* Many themes are available.
47
48
49User Interface
50==============
51	* Top frame:
52		Btn 1   - Press and drag to move gkrellm window.
53		Btn 3   - Popup main menu.
54	* Side frames:
55		Btn 2   - Slide gkrellm window shut (Btn1 if -m2 option).
56		Btn 3   - Popup main menu.
57	* All charts
58		Btn 1   - Toggle draw of extra info on the chart.
59		Btn 3   - Brings up a chart configuration window.
60	* Inet charts
61		Btn 2	- toggle between port hits per minute and hour.
62	* Most panels
63		Btn 3   - Opens the configuration window directly to a monitor's
64		          configuration page.
65	* File System meter panels:
66		Btn 1,2	- Toggle display of label and fs capacity scrolling display.
67		          The mount button runs mount/umount commands.  If ejectable,
68		          left click the eject button to open tray, right click closes.
69	* Mem and Swap meter panels:
70		Btn 1,2	- Toggle display of label and memory or swap capacity
71	              scrolling display.
72	* Mailbox monitor message count button:
73		Btn 1	- Launch a mail reader program.  If options permit, also
74	              stop animations and reset remote message counts.
75		Btn 2	- Toggle mail check mute mode which inhibits the sound
76	              notify progra, and optionally inhibits all mail checking.
77	* Mailbox monitor envelope decal:
78		Btn 1	- Force a mail check regardless of mute or timeout state.
79	* Battery monitor panel:
80		Btn 1	- On the charging state decal toggles battery minutes left,
81	              percent level, and charge rate display.
82		Btn 2	- Anywhere on the panel also toggles the display.
83
84  Keyboard shortcuts:
85	* F1  = popup the user config window.
86	* F2  = popup the main menu.
87	* Page_Up        - previous theme or theme alternative.
88	* Page_Down      - next theme or theme alternative.
89	* <Ctl>Page_Up   - previous theme, skipping any theme alternatives.
90	* <Ctl>Page_Down - next theme, skipping any theme alternatives.
91
92    If a command has been configured to be launched for a monitor, then
93    a button will appear when the mouse enters the panel of that monitor.
94    Clicking the button will launch the command.
95
96
97Requirements
98============
99To use or compile GKrellM, you need:
100	* Gtk+-2.4
101To compile, you additionally need the development libs.
102
103
104Installation
105============
106See the INSTALL file.  BSD systems will need to use GNU gmake.
107
108
109Running GKrellM
110===============
111To get a list of options:
112
113	gkrellm --help
114
115Some of the options are:
116	-t, --theme  theme_dir
117	   GKrellM will load all theme image files it finds in theme_dir
118	   and parse the gkrellmrc file if one exists.  This option overrides
119	   the loading of the last theme you configured to be loaded in
120	   the Themes configuration window.  Theme changes are not saved
121	   when GKrellM is run with this option.
122	-g, --geometry +x+y
123	   Or -g +x+y.  Makes GKrellM move to an x y postition on the screen
124	   at startup.  Standard X window geometry position (not size) formats
125	   are parsed, ie +x+y -x+y +x-y -x-y.  Except, negative geometry
126	   positions are not recognized (ie +-x--y )
127	-wm
128	   Forces GKrellM to start up with window manager decorations.  The
129	   default is no decorations because there are themed borders.
130	-w, --withdrawn
131	   GKrellM starts up in withdrawn mode so it can go into a window
132	   manager's slit.  This should work with the Blackbox, Fluxbox, Kahakai,
133	   Waimea, and maybe other window managers with the slit feature.
134	-c, --config  suffix
135	   Use alternate config files generated by appending "suffix" to config
136	   file names.  This overrides any previous host config which may have
137	   been setup with the below option.
138	-f, --force-host-config
139	   If GKrellM is run once with this option and then the configuration
140	   or theme is changed, the config files that are written will have
141	   a -hostname appended to them.  Subsequent runs will detect the
142	   user-config-hostname and gkrellm_theme.cfg-hostname files and use
143	   them instead of the normal configuration files (unless the --config
144	   option is specified).   This is a convenience for allowing
145	   remote GKrellMs independent config files in a shared home directory,
146	   and for the hostname to show up in the X title for window management.
147	-s, --server hostname
148	   Run in client mode by connecting to and collecting data from a gkrellmd
149	   server running on "hostname".
150	-P, --port server_port
151	   Use "server_port" for the gkrellmd server connection.
152	-nc
153	   No config mode.  The config menu is blocked so no config changes
154	   can be made.  Useful in certain environments, or maybe for running
155	   on a gdm login screen or during a screensaver mode?
156	-demo
157	   Force enabling of many monitors so themers can see everything. All
158	   config saving is inhibited.
159	-p, --plugin  plugin_under_test.so
160	   For plugin development, load the command line specified plugin so you
161	   can avoid repeated install steps in the development cycle.
162
163
164Configuring GKrellM
165===================
166
167A right button mouse click on the side or top frames of the GKrellM
168window will pop up a user configuration window where you can configure
169all the builtin and plugin monitors.  Chart appearance may be configured
170by right clicking on a chart, and right clicking on many panels will open
171the configuration window directly to the corresponding monitor's
172configuration page.
173
174
175Using GKrellM - keeping an eye on your computers Id.
176====================================================
177
178Charts
179======
180The default for most charts is to automatically adjust the number of
181grid lines drawn and the resolution per grid so drawn data will be
182nicely visible.  You may change this to fixed grids of 1-5 and/or
183fixed grid resolutions in the chart configuration windows.  However,
184some combination of the auto scaling modes may give best results.
185
186Auto grid resolution has the following behavior.
187
188  If "Auto mode sticks at peak value" is not set:
189    1) If using auto number of grids, set the resolution per grid and the
190       number of grids to optimize the visibility of data drawn on the chart.
191       Try to keep the number of grids between 1 and 7.
192    2) If using a fixed number of grids, set the resolution per grid to the
193       smallest value that draws data without clipping.
194
195  If "Auto mode sticks at peak value" is set:
196    1) If using auto number of grids, set the resolution per grid such that
197       drawing the peak value encountered would require at least 5 grids.
198    2) If using a fixed number of grids, set the resolution per grid such
199       that the peak value encountered could be drawn without clipping.
200       This means the resolution per grid never decreases.
201
202All resolution per grid values are constrained to a set of values in
203either a 1, 2, 5 sequence or a 1, 1.5, 2, 3, 5, 7 sequence.  If you set
204"Auto mode sticks at peak value" a manual "Auto mode recalibrate" may
205occasionally be required if the chart data has a wide dynamic range.
206
207
208CPU Monitor
209-----------
210Data is plotted as a percentage.  In auto number of grids
211mode, resolution is a fixed 20% per grid.  In fixed number of grids
212mode, grid resolution is 100% divided by the number of grids.
213
214
215Proc Monitor
216------------
217The krell shows process forks with a full scale value
218of 10 forks.  The chart has a resolution of 10 forks/sec per grid
219in auto number of grids mode and 50 forks/second maximum on the
220chart in fixed number of grids mode.
221The process load resolution per grid is best left at 1.0 for auto
222number of grids, but can be set as high as 5 if you configure the
223chart to have only 1 or 2 fixed grids.
224
225
226Net Monitor
227------------
228GKrellM is designed to display a chart for net interfaces which are
229up, which means they are listed in the routing table (however, it is
230possible in some cases to monitor unrouted interfaces).
231One net interface may be linked to a timer button which can be used
232to connect and disconnect from an ISP.
233
234The timer button shows an off, standby, or on state by a distinctive
235(color or shape) icon.
236ppp: Standby state is while the modem phone line is locked while
237    ppp is connecting, and the on state is the ppp link connected.
238    The phone line lock is determined by the existence of the modem
239    lock file /var/lock/LCK..modem which assumes pppd is using
240    /dev/modem.  However, if your pppd setup does not
241    use /dev/modem, then you can configure an alternative with:
242         ln  -s  /var/lock/LCK..ttySx   ~/.gkrellm2/LCK..modem
243    where ttySx is the tty device your modem does use.  The ppp on
244    state is detected by the existence of /var/run/pppX.pid and
245    the time stamp of this file is the base for the on line time.
246ippp: The timer button standby state is not applicable to isdn
247    interfaces that are always routed. The on state is isdn on line
248    while the ippp interface is routed.  The on line timer is reset
249    at transitions from isdn hangup state to on line state.
250For both ppp and ippp timer button links, the panel area of the
251interface is always shown and the chart appears when the interface
252is routed with the phone link connected or on line.
253
254If the timer button is not linked to a net interface, then it can
255be used as a push on / push off timer
256
257Net monitors can have a label so that the interface can be
258associated with the identity of the other end of the connection.
259This is useful if you have several net connections or run multiple
260remote gkrellms.  It can be easier to keep track of who is connected
261to who.
262
263
264Mem and Swap Monitor
265--------------------
266Here you are reading a ratio of total used to total available.
267The amount of memory used indicated by the memory monitor is
268actually a calculated "used" memory.  If you enter the
269"free" command, you will see that most of your memory is almost
270always used because the kernel uses large amounts for buffers
271and cache.  Since the kernel can free a lot of this memory
272as user process demand for memory goes up, a more realistic reading
273of memory in use is obtained by subtracting the buffers and cached
274memory from the kernel reported used.  This is shown in the free
275command output in the "-/+ buffers/cache" line where a calculated
276used amount has buffers and cached memory subtracted from the kernel
277reported used memory, and a calculated free amount has the buffers
278and cached memory added in.
279
280While the memory meter always shows the calculated "used" memory,
281the raw memory values total, shared, buffered, and cached may be
282optionally displayed in the memory panel by entering an appropriate
283format display string in the config.
284
285Units:  All memory values have units of binary megabytes (MiB).
286Memory sizes have historically been reported in these units because
287memory arrays on silicon have always increased in size by multiples
288of 2.  Add an address line to a memory chip and you double or quadruple
289(a multiplexed address) the memory size.  A binary megabyte is
2902^20 or 1048576.  Contrast this with units for other stats such
291as disk capacities or net transfer rates where the proper units
292are decimal megabytes or kilobytes.  Disk drive capacities do not
293increase by powers of 2 and manufacturers do not use binary
294units when reporting their sizes.  However, some of you may prefer
295to see a binary disk drive capacity reported, so it is available
296as an option.
297
298
299Internet Monitor
300----------------
301Displays TCP port connections and records historical port hits on a
302minute or hourly chart.  Middle button click on an inet chart to
303toggle between the minute and hourly displays.  There is a strip
304below the minute or hour charts where marks are drawn for port
305hits in second intervals.  Each inet krell also shows port hits
306with a full scale range of 5 hits.  The left button toggle of extra
307info displays current port connections.
308
309For each internet monitor you can specify two labeled datasets with
310one or two ports for each dataset.  There are two ports because some
311internet ports are related and you might want to group them - for
312example, the standard http port is 80, but there is also a www web
313caching service on port 8080.  So it makes sense to have a http
314monitor which combines data from both ports.  A possible common
315configuration would be to create one inet monitor that monitors
316http hits plotted in the one color and ftp hits in another.
317To do this, setup in the Internet configuration tab:
318
319    http  80 8080    ftp  21
320
321Or you could create separate monitors for http and ftp.  Other
322monitors might be smtp on port 25 or nntp on port 119.
323
324If you check the "Port0 - Port1 is a range" button, then all of the
325ports between the two entries will be monitored.  Clicking the
326small button on the Inet panels will pop up a window listing the
327currently connected port numbers and the host that is connected
328to it.
329
330GKrellM samples TCP port activity once per second, so it is possible
331for port hits lasting less than a second to be missed.
332
333
334File System Monitor
335-------------------
336File system mount points can be selected to be monitored with a meter
337that shows the ratio of blocks used to total blocks available.  Mounting
338commands can be enabled for mount points in one of two ways:
339
3401) If a mount point is in your /etc/fstab and you have mount permission
341then mount and umount commands can be enabled and executed for that
342mount point simply by checking the "Enable /etc/fstab mounting" option.
343Mount table entries in /etc/fstab must have the "user" or "owner" option set
344to grant this permission unless GKrellM is run as root.
345For example, if you run GKrellM as a normal user and you want to be
346able to mount your floppy, your /etc/fstab could have either of:
347    /dev/fd0  /mnt/floppy  ext2   user,noauto,rw,exec  0  0
348or
349    /dev/fd0  /mnt/floppy  ext2   user,defaults  0  0
350
3512) If GKrellM is run as root or if you have sudo permission to run the
352mount commands, then a custom mount command can be entered into the
353"mount command" entry box.  A umount command must also be entered if you
354choose this method.  Example mount and umount entries using sudo:
355      sudo /bin/mount -t msdos /dev/fd0 /mnt/A
356      sudo /bin/umount /mnt/A
357Notes: the mount point specified in a custom mount command (/mnt/A in
358this example) must be the same as entered in the "Mount Point" entry.
359Also, you should have the NOPASSWD option set in /etc/sudoers for this.
360
361File system monitors can be created as primary (always visible)
362or secondary which can be hidden and then shown when they are of
363interest.  For example, you might make primary file system monitors
364for root, home, or user so they will be always visible, but make
365secondary monitors for less frequently used mount points such as
366floppy, zip, backup partitions, foreign file system types, etc.
367Secondary FS monitors can also be configured to always be visible if they
368are mounted by checking the "Show if mounted" option.   Using this
369feature you can show the secondary group, mount a file system, and have
370that FS monitor remain visible even when the secondary group is hidden.
371A standard cdrom mount will show as 100% full but a monitor for it
372could be created with mounting enabled just to have the
373mount/umount convenience.
374
375When the "Ejectable" option is selected for a file system, an eject
376button will appear when the mouse enters the file system panel.  If you
377are not using /etc/fstab mounting, a device file to eject will also need
378to be entered.  Systems may have varying levels of support for this feature
379ranging from none or basic using an ioctl() to full support using an eject
380command to eject all its supported devices.   Linux and NetBSD use the
381"eject" command while FreeBSD uses the "cdcontrol" command, so be sure
382these commands are installed.
383Most eject commands will also support closing a CDROM tray.  If they do,
384you will be able to access this function by right clicking the eject button.
385
386
387Mail Monitor
388------------
389Checks your mailboxes for unread mail. A mail reading program (MUA) can be
390executed with a left mouse click on the mail monitor panel button, and
391a mail notify (play a sound) program such as esdplay or artsplay can be
392executed whenever the new mail count increases.  The mail panel envelope
393decal may also be clicked to force an immediate mail check at any time.
394
395GKrellM is capable of checking mail from local mailbox types mbox, MH, and
396maildir, and from remote mailbox types POP3 and IMAP.
397
398POP3 and IMAP checking can use non-standard port numbers and password
399authentication protocols APOP (for POP3 only) or CRAM-MD5.  If supported
400by the mail server, emote checking may be done over an SSL connection if
401the "Use SSL" option is selected.
402
403Before internal POP3 and IMAP checking was added, an external mail
404fetch/check program could be set up to be executed periodically to
405download or check remote POP3 or IMAP mail.  This method is still
406available and must be used if you want GKrellM to be able to
407download remote mail to local mailboxes because the builtin checking
408functions cannot download.
409
410
411Battery Monitor
412--------------------------
413This meter will be available if a battery exists and will show battery
414percentage life remaining.  A decal indicates if AC line is connected
415or if the battery is in use.  If the data is available, time remaining
416may be displayed as well as the percentage battery level. If the time
417remaining is not available or is inaccurate, the Estimate Time option
418may be selected to display a battery time to run or time to charge which
419is calculated based on the current battery percent level, user supplied
420typical battery times, and a default linear extrapolation model.
421For charging, an exponential charge model may be selected.
422
423A battery low level warning and alarm alert may be set.  If battery time
424is not available from the OS and the estimate time mode is not set, the
425alert units will be battery percent level.  Otherwise the alert units will
426be battery time left in minutes.  If OS battery time is not available and the
427estimate time mode is set when the alert is created, the alert will have
428units of time left in minutes and the alert will automatically be destroyed
429if the estimate time option is subsequently turned off.
430
431If the OS reports multiple batteries, the alert will be a master alert
432which is duplicated for each battery.
433
434CPU/Motherboard Sensors - Temperature, Voltages, and Fan RPM
435------------------------------------------------------------
436Linux:
437-----
438Sensor monitoring requires that either lm_sensors modules are
439installed in your running kernel, that you run a kernel >= 2.6 with sysfs
440sensors configured, or, for i386 architectures, that you have the mbmon
441daemon running when gkrellm is started (as long as mbmon supports reporting
442sensor values for your motherboard).
443
444For lm_sensors to be used, gkrellm must be compiled with libsensors support.
445It will be if the libsensors development package is installed when gkrellm
446is compiled.  Using libsensors is the preferred interface on Linux since it is
447the only interface that will be up to date on supporting correct voltage
448scaling factors and offsets for recent sensor chips.
449
450If the mbmon daemon is used, it must be started before gkrellm like so:
451
452    mbmon -r -P port-number
453
454where the given "port-number" must be configured to match in the gkrellm
455Sensors->Options config.  If you have mbmon installed from a distribution
456package, you can probably easily set up for mbmon to be started at boot.
457With Debian, for example, you would edit the file /etc/default/mbmon
458to set:
459
460	START_MBMON=1
461
462and you would need to set in the gkrellm Sensors->Option config the
463mbmon port to be "411" to match the default in the /etc/default/mbmon
464file.
465
466Sensor temperatures can also be read from /proc/acpi/thermal_zone,
467/proc/acpi/thermal, /proc/acpi/ibm. the PowerMac Windfarm /sysfs
468interface, and PowerMac PMU /sysfs based sensors.
469
470When using lm_sensors, libsensors will be used if available, but if
471libsensors is not linked into the program, the sensor data will be
472read directly from the /sysfs or /proc file systems.  If running a newer
473Linux kernel sensor module not yet supported by libsensors and libsensors
474is linked, there will also be an automatic  fallback to using /sysfs as
475long as libsensors doesn't detect any sensors.  But if it does detect some
476sensors which does not include the new sensors you need, you can force
477getting /sysfs sensor data either by running:
478
479    gkrellm --without-libsensors
480
481or by rebuilding with:
482
483    make without-libsensors=yes
484
485
486Disk temperatures may also be monitored if you have the hddtemp daemon
487running when gkrellm is started.  Gkrellm uses the default hddtemp port
488of 7634.  Like mbmon, hddtemp is best started in a boot script to guarantee
489it will be running when gkrellm is started.
490
491
492Nvidia graphics card GPU temperatures may also be monitored if
493the nvidia-settings command is installed and your Nvidia card supports
494the temperature reporting.  If nvidia-settings is not installed or does
495not report temperatures for your card, an option for using the nvclock
496program will appear in the Sensors config.  Nvclock use is not
497automatically enabled as is nvidia-settings because nvclock can add
498seconds of gkrellm startup time when used on a NVIDIA GPU chipset it
499does not support.  GKrellM must be restarted to recognize changes for
500the nvclock option.
501
502Windows
503-------
504Requires on of:
505 - MBM: http://mbm.livewiredev.com/
506 - SpeedFan: http://www.almico.com/speedfan.php
507
508FreeBSD
509------------------
510Builtin sensor reporting is available for some sensor chips.
511FreeBSD systems can also read sensor data from the mbmon daemon as described
512in the Linux section above.
513
514NetBSD
515------------------
516Builtin sensor reporting is available for some sensor chips.
517NetBSD uses the envsys(4) interface and sensors reading is automatically
518enabled if you have either a lm(4) or viaenv(4) chip configured in your kernel.
519
520General Setup:
521--------------
522Temperature and fan sensor displays may be optionally located on the CPU or
523Proc panels to save some vertical space while voltages are always displayed
524on their own panel.  If you set up to monitor both a temperature and a fan
525on a single CPU or Proc panel, they can be displayed optionally as an
526alternating single display or as separate displays.  If separate, the fan
527display will replace the panel label.  The configuration for this is under
528the CPU and Proc config pages.
529
530If not using libsensors, in the Setup page for the Sensors config enter
531any correction factors and offsets for each of the sensors you are monitoring
532(see below and lm_sensor documentation).  For Linux, default values are
533automatically provided for many sensor chips.
534
535But if using libsenors, it is not possible to enter correction factors and
536offsets on the Sensors config page because libsensors configuration is
537done in the /etc/sensors.conf file.  To get sensor debug output and to find
538out the sensor data source, run:
539
540    gkrellm -d 0x80
541
542Note for NetBSD users:
543The current implementation of the sensor reading under NetBSD opens
544/dev/sysmon and never closes it. Since that device does not support
545concurrent accesses, you won't be able to run other apps such as
546envstat(8) while GKrellM is running.  This might change if this happens
547to be an issue.
548The reasons for this choice are a) efficiency (though it might be possible
549to open/close /dev/sysmon each time a reading is needed without major
550performance issue) and b) as of october 2001, there's a bug in the
551envsys(4) driver which sometimes causes deadlocks when processes try to
552access simultaneously /dev/sysmon  (see NetBSD PR#14368). A (quick and
553dirty) workaround for this is to monopolize the driver :)
554
555
556CPU/Motherboard Temperatures
557----------------------------
558Most modern motherboards will not require setting temperature correction
559factors and offsets other than the defaults.  However, for lm_sensors it
560is necessary to have a correct "set sensor" line in /etc/sensors.conf
561if the temperature sensor type is other than the default thermistor.
562If using Linux sysfs sensors, this sensor type is set by writing to
563a sysfs file.  For example, you might at boot set a sysfs temperature sensor
564type with:
565
566    echo "2" > /sys/bus/i2c/devices/0-0290/sensor2
567
568On the other hand, some older motherboards may need temperature calibration
569by setting a correction factor and offset for each temperature sensor
570because of factors such as variations in physical thermistor contact
571with the CPU.  Unfortunately, this calibration may not be practical or
572physically possible because it requires that somehow you can get a real
573CPU temperature reading.  So, the calibration discussion which follows
574should probably be considered an academic exercise that might give you
575some good (or bad) ideas.  If you have a recent motherboard, skip the
576following.
577
578Anyway, to do this calibration, take two real CPU temperature readings
579corresponding to two sensor reported readings.   To get the real
580readings, you can trust that your motherboard manufacturer has done
581this calibration and is reporting accurate temperatures in the bios,
582or you can put a temperature probe directly on your CPU case (and this
583is where things get impractical).
584
585Here is a hypothetical CPU calibration procedure.  Make sure GKrellM is
586configured with default factors of 1.0 and offsets of 0 and is reporting
587temperatures in centigrade:
588
589    1) Power on the machine and read a real temperature T1 from the bios or
590       a temperature probe.  If reading from the bios, proceed with booting
591       the OS.  Now record a sensor temperature S1 as reported by GKrellM.
592    2) Change the room temperature environment (turn off your AC or change
593       computer fan exhaust speed).  Now repeat step 1, this time recording
594       a real temperature T2 and GKrellM reported sensor temperature S2.
595    3) Now you can calculate the correction factor and offset you need
596       to enter into the Sensor configuration tab:
597           From:
598                   s - S1     t - T1
599                   ------  =  ------
600                  S2 - S1    T2 - T1
601
602                                 T2 - T1     S2*T1 - S1*T2
603                        t  = s * -------  +  -------------
604                                 S2 - S1         S2 - S1
605
606            So:
607                          T2 - T1                S2*T1 - S1*T2
608                factor =  -------      offset =  -------------
609                          S2 - S1                   S2 - S1
610
611
612Voltage Sensor Corrections
613--------------------------
614You need to read this section only if you think the default voltage correction
615factors and offsets are incorrect.  For Linux and lm_sensors and sysfs sensors
616this would be if GKrellM does not know about your particular sensor chip.
617For MBM/SpeedFan with Windows, the default values should be correct.
618
619Motherboard voltage measurements are made by a variety of sensor
620chips which are capable of measuring a small positive voltage.
621GKrellM can display these voltage values and can apply a correction
622factor, offset, and for the negative voltages of some chips (lm80), a
623level shifting reference voltage to the displayed voltage.  There are
624four cases to consider:
625
626  1) Low valued positive voltages may be directly connected to the input
627  pins of the sensor chip and therefore need no correction.  For these,
628  the correction factor should be 1.0 and the offset should be 0.
629
630  2) Higher valued positive voltages will be connected to the input pins
631  of the sensor chip through a 2 resistor attenuation circuit.  For these,
632  the correction factor will be a ratio of the resistor values and the
633  offset will be 0.
634
635  3) Negative voltages will be connected to the input pins of the sensor
636  through a 2 resistor attenuation circuit with one of the resistors
637  connected to a positive voltage to effect a voltage level shift.
638  For these (lm80), the correction factor and offset will be ratios of the
639  resistor values, and a reference voltage must be used.
640
641  4) Some sensor chips (w83782, lm78) are designed to handle negative inputs
642  without requiring an input resistor connected to a voltage reference.
643  For these, there will be a correction factor and a possible offset.
644
645For cases 2 and 3, the sensor chip input network looks like:
646
647    Vs o----/\/\/---o-------------o Vin
648             R1     |
649                    o--/\/\--o Vref
650                        R2
651where,
652    Vs   is the motherboard voltage under measurment
653    Vin  is the voltage at the input pin of the sensor chip and therefore is
654         the voltage reading that will need correction.
655    Vref is a level shifting voltage reference.  For case 2, Vref is ground
656         or zero.  For case 3, Vref will be one of the positive motherboard
657         voltages.
658
659The problem then is to compute correction factors and offsets as a function
660of R1 and R2 so that GKrellM can display a computed motherboard voltage Vs
661as a function of a measured voltage Vin.
662
663Since sensor chip input pins are high impedance, current into the pins may
664be assumed to be zero.  In that case, the current through R1 equals current
665through R2, and we have:
666
667    (Vs - Vin)/R1 = (Vin - Vref)/R2
668
669Solving for Vs as a function of Vin:
670
671    Vs = Vin * (1 + R1/R2)  -  (R1/R2) * Vref
672
673So, the correction factor is:  1 + R1/R2
674    the correction offset is:  - (R1/R2)
675    Vref is specified in the config separately from the offset (for
676    chips that need it).
677
678Fortunately there seems to be a standard set of resistor values used
679for the various sensor chips which are documented in the lm_sensor
680documentation.  The GKrellM sensor corrections are similar to the compute
681lines you find with lm_sensors, with the difference that lm_sensors has an
682expression evaluator which does not require that compute lines be simplified
683to the single factor and offset required by GKrellM.  But you can easily
684calculate the factor and offset.  For example, this lm_sensor compute line
685for a case 2 voltage:
686
687    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
688
689yields a correction factor of ((6.8/10)+1) = 1.68
690and an offset of zero.
691
692Note that the second compute line expression is not relevant in GKrellM
693because there is never any need to invert the voltage reading calculation.
694Also, the compute line '@' symbol represents the Vin voltage.
695
696A more complicated compute line for a case 3 voltage:
697
698    compute in5 (160/35.7)*(@ - in0) + @, ...
699
700can be rewritten:
701
702    compute in5 (1 + 160/35.7)*@ - (160/35.7)*in0, ...
703
704so the correction factor is  (1 + 160/35.7) = 5.48
705and the correction offset is -(160/35.7) = -4.48
706and the voltage reference Vref is in0
707
708Here is a table of correction factors and offsets based on some typical
709compute line entries from /etc/sensors.conf:
710
711       Compute line                     Factor  Offset  Vref
712       -----------------------------------------------------
713lm80   in0 (24/14.7 + 1) * @            2.633     0       -
714       in2 (22.1/30 + 1) * @            1.737     0       -
715       in3 (2.8/1.9) * @                1.474     0       -
716       in4 (160/30.1 + 1) * @           6.316     0       -
717       in5 (160/35.7)*(@ - in0) + @     5.482    -4.482  in0
718       in6 (36/16.2)*(@ - in0) + @      3.222    -2.222  in0
719
720LM78   in3 ((6.8/10)+1)*@               1.68      0       -
721       in4 ((28/10)+1)*@                3.8       0       -
722       in5 -(210/60.4)*@               -3.477     0       -
723       in6 -(90.9/60.4)*@              -1.505     0       -
724
725w83782 in5 (5.14 * @) - 14.91           5.14    -14.91    -
726       in6 (3.14 * @) -  7.71           3.14     -7.71    -
727
728
729
730Command launching
731=================
732Many monitors can be set up to launch a command when you click on
733the monitor label.  When a command is configured for a monitor, its
734label is converted into a button which becomes visible when the mouse
735enters the panel or meter area of the label.  If the command is a
736console command (doesn't have a graphical user interface), then
737the command must be run in a terminal window such as xterm, eterm,
738or Gnome terminal.  For example running the "top" command would take:
739
740    xterm -e top
741
742You can use the command launching feature to run commands related to
743monitoring functions, or you may use it to have a convenient launch
744for any command.  Since GKrellM is usually made sticky, you can have
745easy access to several frequently used commands from any desktop.
746This is intended to be a convenience and a way to maximize utilization
747of screen real estate and not a replacement for more full featured
748command launching from desktops such as Gnome or KDE or others.
749Some launch ideas for some monitors could be:
750
751   calendar: gnomecal, evolution, or ical
752        CPU: xterm -e top  or  gps  or  gtop
753       inet: gftp  or  xterm -e ftpwho
754        net: mozilla, galeon, skipstone,  or  xterm -e slrn -C-
755and so on...
756
757Tooltips can be set up for these commands.
758
759
760Alerts
761======
762Most monitors can have alerts configured to give warnings and alarms
763for data readings which range outside of configurable limits.  Where
764useful, a delay of the alert trigger can be configured.  A warning or
765alarm consists of an attention grabbing decal appearing and an optional
766command being executed.  For most monitors the command may contain the
767same substitution variables which are available for display in the
768chart or panel label format strings and are documented on configuration
769Info pages.  Additionally, the hostname may be embedded in the command
770with the $H substitution variable.
771
772If you have festival installed, either a warn or alarm command
773could be configured to speak something.  For example a CPU temperature
774alert warn command could just speak the current temperature with:
775
776    sh -c "echo warning C P U is at $s degrees | esddsp festival --tts"
777
778Assuming you have esd running.
779
780
781Installing a Theme for GKrellM
782==============================
783
784A theme is a directory containing image files and a gkrellmrc
785configuration file.  The theme directory may be installed in
786several locations:
787
788	~/.gkrellm2/themes
789	/usr/local/share/gkrellm2/themes
790	/usr/share/gkrellm2/themes
791
792For compatibility with Gtk themes, a GKrellM theme may also be installed
793as:
794	~/.themes/THEME_NAME/gkrellm2
795	/usr/share/themes/THEME_NAME/gkrellm2
796
797Finally, a theme you simply want to check out can be untarred anywhere
798and used by running:
799
800	gkrellm -t path_to_theme
801
802Read the Themes file if you want more information or are interested in
803making a new theme for GKrellM.
804
805
806Plugins
807=======
808
809GKrellM tries to load all plugins (shared object files ending in .so)
810it finds in your plugin directory ~/.gkrellm2/plugins.  The directories
811/usr/local/lib/gkrellm2/plugins and /usr/lib/gkrellm2/plugins are
812also searched for plugins to install.
813
814Some plugins may be available only as source files and they will
815have to be compiled before installation.  There should be instructions
816for doing this with each plugin that comes in source form.
817
818If you are interested in writing a plugin, go to the Plugins page
819at http://gkrellm.net and there you will find a Plugin programmers
820reference and Plugins-changelog.
821
822
823Client/Server
824=============
825When gkrellm connects to a gkrellmd server all builtin monitors collect
826their data from the server.  However, the gkrellm process is running
827on the local machine, so any enabled plugins will run in the local
828context (Flynn is an example exception to this since it derives its data
829from the builtin CPU monitor).  Also, any command launching will run
830commands on the local machine.
831