Added some completely pointless OpenMP optimizations(?)
authorBrenden Matthews <brenden@rty.ca>
Tue, 5 May 2009 23:36:12 +0000 (17:36 -0600)
committerBrenden Matthews <brenden@rty.ca>
Tue, 5 May 2009 23:36:12 +0000 (17:36 -0600)
ChangeLog
README
configure.ac.in
m4/ax_openmp.m4 [new file with mode: 0644]
src/conky.c
src/conky.h
src/linux.c

index fb7be04..71dc29b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2009-05-05
+       * Added some completely pointless OpenMP optimizations(?)
+
 2009-05-03
        * Added Sony VAIO fanspeed info (thanks Yeon-Hyeong)
 
diff --git a/README b/README
index c5a86fd..618a8f2 100644 (file)
--- a/README
+++ b/README
-QUICK & EASY:
-       $ sh autogen.sh
-       $ ./configure
-       $ make
-       $ ./src/conky # to run Conky
-       # make install
+conky(1)                                                              conky(1)
 
-First, read the README. This contains instructions specific to building conky
-fresh from the git repo:
 
-* Conky requires three "auto-tools", with at least the specific version numbers.
-       Make sure these are installed:
 
-       aclocal-1.9
-       automake-1.9
-       autoconf-2.59
+\e[1mNAME\e[0m
+       conky - A system monitor for X originally based on the torsmo code, but
+       more kickass. It just keeps on given'er. Yeah.
 
-* In the directory where you cloned conky from git,
-       run "aclocal", "automake", and then "autoconf".
-       Make sure you run those commands with the latest versions...
-       it is very possible that older versions are installed, and
-       plain "automake" really means automake-1.4, not what we want,
-       but "automake-1.9" instead.
-       Use the "--version" option to check the program version, i.e.
-       "autoconf --version".
+\e[1mSYNOPSIS\e[0m
+       \e[1mconky \e[22m[\e[4moptions\e[24m]
 
-       You can also try using the autogen.sh script, like so:
+\e[1mDESCRIPTION\e[0m
+       Conky is a system monitor for X originally based on torsmo.  Since  its
+       inception,  Conky has changed significantly from its predecessor, while
+       maintaining simplicity and  configurability.  Conky  can  display  just
+       about  anything,  either on your root desktop or in its own window. Not
+       only does Conky have many built-in objects, it can  also  display  just
+       about any piece of information by using scripts and other external pro‐
+       grams.
 
-       $ sh autogen.sh
+       Conky has more than 250 built  in  objects,  including  support  for  a
+       plethora  of OS stats (uname, uptime, CPU usage, mem usage, disk usage,
+       "top" like process stats, and network monitoring, just to name a  few),
+       built in IMAP and POP3 support, built in support for many popular music
+       players (MPD, XMMS2, BMPx, Audacious), and much much more.   Conky  can
+       display  this  info  either  as text, or using simple progress bars and
+       graph widgets, with different fonts and colours.
 
-* After that, it's the familiar
+       We are always looking for help, whether  its  reporting  bugs,  writing
+       patches,  or writing docs.  Please use the facilities at SourceForge to
+       make bug reports, feature requests, and  submit  patches,  or  stop  by
+       #conky on irc.freenode.net if you have questions or want to contribute.
 
-       $ ./configure
-       $ make
-       # make install
+       Thanks for your interest in Conky.
 
-       You might have to do the last step as root.
+\e[1mCOMPILING\e[0m
+       For  users compiling from source on a binary distro, make sure you have
+       the X development libraries installed. This should be a  package  along
+       the  lines  of "libx11-dev" or "xorg-x11-dev" for X11 libs, and similar
+       "-dev" format for the other libs required (depending on your  configure
+       options).
+
+       Conky  has  (for  some time) been available in the repositories of most
+       popular distributions.  Here are some installation instructions  for  a
+       few:
+
+       Gentoo users -- Conky is in Gentoo's Portage... simply use "emerge app-
+       admin/conky" for installation.  There is  also  usually  an  up-to-date
+       ebuild within Conky's package or in the git repo.
+
+       Debian,  etc. users -- Conky should be in your repositories, and can be
+       installed by doing "aptitude install conky".
+
+       Example to compile and run Conky with  all  optional  components  (note
+       that some configure options may differ for your system):
+
+       \e[1msh autogen.sh # Only required if building from the git repo\e[0m
+
+       \e[1m./configure       --prefix=/usr      --mandir=/usr/share/man      --in‐\e[0m
+       \e[1mfodir=/usr/share/info --datadir=/usr/share  --sysconfdir=/etc  --local‐\e[0m
+       \e[1mstatedir=/var/lib --disable-own-window --enable-audacious[=yes|no|lega‐\e[0m
+       \e[1mcy] --enable-bmpx --disable-hddtemp --disable-mpd --enable-xmms2 --dis‐\e[0m
+       \e[1mable-portmon   --disable-network  --enable-debug  --disable-x11  --dis‐\e[0m
+       \e[1mable-double-buffer --disable-xdamage --disable-xft\e[0m
+
+       \e[1mmake\e[0m
+
+       \e[1mmake install # Optional\e[0m
+
+       \e[1msrc/conky\e[0m
+
+       Conky has been tested to be compatible with C99 C, however it  has  not
+       been tested with anything other than gcc, and is not guaranteed to work
+       with other compilers.
+
+\e[1mYOU SHOULD KNOW\e[0m
+       Conky is generally very good on resources. That said, the more you  try
+       to make Conky do, the more resources it is going to consume.
+
+       An easy way to force Conky to reload your ~/.conkyrc: "killall -SIGUSR1
+       conky".  Saves you the trouble of having to kill and then restart.  You
+       can now also do the same with SIGHUP.
+
+\e[1mOPTIONS\e[0m
+       Command  line  options override configurations defined in configuration
+       file.
+
+       \e[1m-v | -V | --version\e[0m
+              Prints version and exits
+
+
+       \e[1m-q | --quiet\e[0m
+              Run Conky in 'quiet mode' (ie. no output)
+
+
+       \e[1m-a | --alignment=ALIGNMENT\e[0m
+              Text alignment on  screen,  {top,bottom,middle}_{left,right,mid‐
+              dle} or none
+
+
+       \e[1m-b | --double-buffer\e[0m
+              Use double buffering (eliminates "flicker")
+
+
+       \e[1m-c | --config=FILE\e[0m
+              Config file to load instead of $HOME/.conkyrc
+
+
+       \e[1m-d | --daemonize\e[0m
+              Daemonize Conky, aka fork to background
+
+
+       \e[1m-f | --font=FONT\e[0m
+              Font to use
+
+
+       \e[1m-h | --help\e[0m
+              Prints command line help and exits
+
+
+       \e[1m-o | --own-window\e[0m
+              Create own window to draw
+
+
+       \e[1m-t | --text=TEXT\e[0m
+              Text to render, remember single quotes, like -t ' $uptime '
+
+
+       \e[1m-u | --interval=SECONDS\e[0m
+              Update interval
+
+
+       \e[1m-w | --window-id=WIN_ID\e[0m
+              Window id to draw
+
+
+       \e[1m-x X_COORDINATE\e[0m
+              X position
+
+
+       \e[1m-y Y_COORDINATE\e[0m
+              Y position
+
+
+       \e[1m-i COUNT\e[0m
+              Number of times to update Conky (and quit)
+
+
+\e[1mCONFIGURATION SETTINGS\e[0m
+       Default    configuration    file    location   is   $HOME/.conkyrc   or
+       ${sysconfdir}/conky/conky.conf. On most systems,  sysconfdir  is  /etc,
+       and you can find the sample config file there (/etc/conky/conky.conf).
+
+       You  might  want  to copy it to $HOME/.conkyrc and then start modifying
+       it.  Other configs can be found at http://conky.sf.net/
+
+       \e[1malias  \e[22mUse this to create aliases of variables. The first  argument  is
+              the  new  name, the second the old name, and the other arguments
+              are passed on to the variable. Example: If you want to use  $al‐
+              pha  instead  of  ${beta gamma delta} then you have to write the
+              following: alias alpha beta gamma delta . PS: Instead of  creat‐
+              ing  an  alias  in the config you can also use environment vari‐
+              ables. Example: Start conky like this: alpha="beta gamma  delta"
+              conky
+
+
+       \e[1malignment\e[0m
+              Aligned position on screen, may be top_left, top_right, top_mid‐
+              dle, bottom_left, bottom_right, bottom_middle, middle_left, mid‐
+              dle_right,  or  none  (also can be abreviated as tl, tr, tm, bl,
+              br, bm, ml, mr)
+
+
+       \e[1mbackground\e[0m
+              Boolean value, if true, Conky will be forked to background  when
+              started.
+
+
+       \e[1mborder_margin\e[0m
+              Border margin in pixels.
+
+
+       \e[1mborder_width\e[0m
+              Border width in pixels.
+
+
+       \e[1mcolorN \e[22mPredefine  a color for use inside TEXT segments. Substitute N by
+              a digit between 0 and 9, inclusively. When specifying the  color
+              value in hex, omit the leading hash (#).
+
+
+       \e[1mcpu_avg_samples\e[0m
+              The number of samples to average for CPU monitoring.
+
+
+       \e[1mdiskio_avg_samples\e[0m
+              The number of samples to average for disk I/O monitoring.
+
+
+       \e[1mtop_cpu_separate\e[0m
+              If true, cpu in top will show usage of one processor's power. If
+              false, cpu in top will show the usage of all  processors'  power
+              combined.
+
+
+       \e[1mdefault_bar_size\e[0m
+              Specify  a  default  width  and  height  for bars. Example: 'de‐
+              fault_bar_size 0 6'. This is particularly useful for execbar and
+              execibar as they do not take size arguments.
+
+
+       \e[1mdefault_graph_size\e[0m
+              Specify  a  default  width  and height for graphs. Example: 'de‐
+              fault_graph_size 0 25'. This is particularly  useful  for  exec‐
+              graph and execigraph as they do not take size arguments
+
+
+       \e[1mdefault_gauge_size\e[0m
+              Specify  a  default  width  and height for gauges. Example: 'de‐
+              fault_gauge_size 25 25'. This is particularly useful  for  exec‐
+              gauge and execigauge as they do not take size arguments
+
+
+       \e[1mdefault_color\e[0m
+              Default color and border color
+
+
+       \e[1mdefault_outline_color\e[0m
+              Default outline color
+
+
+       \e[1mdefault_shade_color\e[0m
+              Default shading color and border's shading color
+
+
+       \e[1mdouble_buffer\e[0m
+              Use the Xdbe extension? (eliminates flicker) It is highly recom‐
+              mended to use own window with this one so double buffer won't be
+              so big.
+
+
+       \e[1mdraw_borders\e[0m
+              Draw borders around text?
+
+
+       \e[1mdraw_graph_borders\e[0m
+              Draw borders around graphs?
+
+
+       \e[1mdraw_outline\e[0m
+              Draw outlines?
+
+
+       \e[1mdraw_shades\e[0m
+              Draw shades?
+
+
+       \e[1mfont   \e[22mFont name in X, xfontsel can be used to get a nice font
+
+
+       \e[1mgap_x  \e[22mGap,  in pixels, between right or left border of screen, same as
+              passing -x at command line, e.g. gap_x 10
+
+
+       \e[1mgap_y  \e[22mGap, in pixels, between top or bottom border of screen, same  as
+              passing -y at command line, e.g. gap_y 10.
+
+
+       \e[1mif_up_strictness\e[0m
+              How  strict  should if_up be when testing an interface for being
+              up? The value is one of up, link or address, to  check  for  the
+              interface being solely up, being up and having link or being up,
+              having link and an assigned IP address.
+
+
+       \e[1mimap   \e[22mDefault global IMAP server. Arguments are: "host user  pass  [-i
+              interval]  [-f folder] [-p port] [-e command] [-r retries]". De‐
+              fault port is 143, default folder is 'INBOX',  default  interval
+              is  5 minutes, and default number of retries before giving up is
+              5. If the password is supplied as '*', you will be  prompted  to
+              enter the password when Conky starts.
+
+
+       \e[1mmail_spool\e[0m
+              Mail spool for mail checking
+
+
+       \e[1mmax_port_monitor_connections\e[0m
+              Allow  each  port monitor to track at most this many connections
+              (if 0 or not set, default is 256)
+
+
+       \e[1mmax_specials\e[0m
+              Maximum number of special things, e.g. fonts,  offsets,  aligns,
+              etc. (default is 512)
+
+
+       \e[1mmax_user_text bytes\e[0m
+              Maximum size of user text buffer, i.e. layout below TEXT line in
+              config file (default is 16384 bytes)
+
+
+       \e[1mtext_buffer_size bytes\e[0m
+              Size of the standard text buffer (default is  256  bytes).  This
+              buffer  is used for intermediary text, such as individual lines,
+              output from $exec vars, and various other variables.  Increasing
+              the  size  of this buffer can drastically reduce Conky's perfor‐
+              mance, but will allow for more text display  per  variable.  The
+              size  of this buffer cannot be smaller than the default value of
+              256 bytes.
+
+
+       \e[1mmaximum_width pixels\e[0m
+              Maximum width of window
+
+
+       \e[1mminimum_size width (height)\e[0m
+              Minimum size of window
+
+
+       \e[1mmpd_host\e[0m
+              Host of MPD server
+
+
+       \e[1mmpd_port\e[0m
+              Port of MPD server
+
+
+       \e[1mmpd_password\e[0m
+              MPD server password
+
+
+       \e[1mmusic_player_interval\e[0m
+              Music player thread update interval (defaults to Conky's  update
+              interval)
+
+
+       \e[1mnet_avg_samples\e[0m
+              The number of samples to average for net data
+
+
+       \e[1mno_buffers\e[0m
+              Substract (file system) buffers from used memory?
+
+
+       \e[1moverride_utf8_locale\e[0m
+              Force UTF8? requires XFT
+
+
+       \e[1mown_window\e[0m
+              Boolean, create own window to draw?
+
+
+       \e[1mown_window_class\e[0m
+              Manually set the WM_CLASS name. Defaults to "Conky".
+
+
+       \e[1mown_window_colour colour\e[0m
+              If  own_window_transparent no, set a specified background colour
+              (defaults to black). Takes either a hex  value  (#ffffff)  or  a
+              valid RGB name (see /usr/lib/X11/rgb.txt)
+
+
+       \e[1mown_window_hints undecorated,below,above,sticky,skip_taskbar,skip_pager\e[0m
+              If  own_window is yes, you may use these window manager hints to
+              affect the way Conky displays.  Notes: Use own_window_type desk‐
+              top  as another way to implement many of these hints implicitly.
+              If you use own_window_type override, window manager  hints  have
+              no meaning and are ignored.
+
+
+       \e[1mown_window_title\e[0m
+              Manually set the window name. Defaults to "<hostname> - conky".
+
+
+       \e[1mown_window_transparent\e[0m
+              Boolean, set pseudo-transparency?
+
+
+       \e[1mown_window_type\e[0m
+              if own_window is yes, you may specify type normal, desktop, dock
+              or override (default: normal).  Desktop windows are special win‐
+              dows that have no window decorations; are always visible on your
+              desktop; do not appear in your pager or taskbar; and are  sticky
+              across  all workspaces.  Override windows are not under the con‐
+              trol of the window manager. Hints are ignored. This type of win‐
+              dow can be useful for certain situations.
+
+
+       \e[1mout_to_console\e[0m
+              Print text to stdout.
+
+
+       \e[1mout_to_stderr\e[0m
+              Print text to stderr.
+
+
+       \e[1mout_to_x\e[0m
+              When  set  to  no, there will be no output in X (useful when you
+              also use things like out_to_console).  If you set it to no, make
+              sure  that  it's placed before all other X-related setting (take
+              the first line of your configfile to be sure). Default value  is
+              yes
+
+
+       \e[1moverwrite_file\e[0m
+              Overwrite the file given as argument.
+
+
+       \e[1mappend_file\e[0m
+              Append the file given as argument.
+
+
+       \e[1mpad_percents\e[0m
+              Pad percentages to this many decimals (0 = no padding)
+
+
+       \e[1mpop3   \e[22mDefault  global  POP3 server. Arguments are: "host user pass [-i
+              interval] [-p port] [-e command] [-r retries]". Default port  is
+              110,  default  interval  is 5 minutes, and default number of re‐
+              tries before giving up is 5. If the password is supplied as '*',
+              you will be prompted to enter the password when Conky starts.
+
+
+       \e[1mshort_units\e[0m
+              Shortens units to a single character (kiB->k, GiB->G, etc.). De‐
+              fault is off.
+
+
+       \e[1mshow_graph_scale\e[0m
+              Shows the maximum value in scaled graphs.
+
+
+       \e[1mshow_graph_range\e[0m
+              Shows the time range covered by a graph.
+
+
+       \e[1mstippled_borders\e[0m
+              Border stippling (dashing) in pixels
+
+
+       \e[1mtemperature_unit\e[0m
+              Desired output unit of all  objects  displaying  a  temperature.
+              Parameters  are  either  "fahrenheit"  or "celsius". The default
+              unit is degree Celsius.
+
+
+       \e[1mtemplateN\e[0m
+              Define a template for later use inside TEXT segments. Substitute
+              N  by  a  digit  between 0 and 9, inclusively.  The value of the
+              variable is being inserted into the stuff below TEXT at the cor‐
+              responding position, but before some substitutions are applied:
+
+              '\n' -> newline
+              '\\' -> backslash
+              '\ ' -> space
+              '\N' -> template argument N
+
+
+       \e[1mtotal_run_times\e[0m
+              Total  number of times for Conky to update before quitting. Zero
+              makes Conky run forever
+
+
+       \e[1mupdate_interval\e[0m
+              Update interval in seconds
+
+
+       \e[1muppercase\e[0m
+              Boolean value, if true, text is rendered in upper case
+
+
+       \e[1muse_spacer\e[0m
+              Adds spaces around certain objects to stop them from moving oth‐
+              er things around. Arguments are left, right, and none (default).
+              The  old  true/false  values  are  deprecated  and  default   to
+              right/none  respectively.  Note  that this only helps if you are
+              using a mono font, such as Bitstream Vera Sans Mono.
+
+
+       \e[1muse_xft\e[0m
+              Use Xft (anti-aliased font and stuff)
+
+
+       \e[1mxftalpha\e[0m
+              Alpha of Xft font. Must be a value at or between 1 and 0.
+
+
+       \e[1mxftfont\e[0m
+              Xft font to use.
+
+
+       \e[1mTEXT   \e[22mAfter this begins text to be formatted on screen. Backslash  (\)
+              escapes  newlines  in  the  text section. This can be useful for
+              cleaning up config files where conky is used to  pipe  input  to
+              dzen2.
+
+
+\e[1mVARIABLES\e[0m
+       Colors  are  parsed using XParsecolor(), there might be a list of them:
+       /usr/share/X11/rgb.txt.   Also,    ⟨http://sedition.com/perl/rgb.html⟩.
+       Color can be also in #rrggbb format (hex).
+
+       \e[1maddr interface\e[0m
+              IP  address  for  an interface, or "No Address" if no address is
+              assigned.
+
+
+       \e[1maddrs interface\e[0m
+              IP addresses for an interface (if one - works like addr).  Linux
+              only.
+
+
+       \e[1macpiacadapter\e[0m
+              ACPI ac adapter state.
+
+
+       \e[1macpifan\e[0m
+              ACPI fan state
+
+
+       \e[1macpitemp\e[0m
+              ACPI temperature in C.
+
+
+       \e[1madt746xcpu\e[0m
+              CPU temperature from therm_adt746x
+
+
+       \e[1madt746xfan\e[0m
+              Fan speed from therm_adt746x
+
+
+       \e[1malignr (num)\e[0m
+              Right-justify text, with space of N
+
+
+       \e[1malignc (num)\e[0m
+              Align text to centre
+
+
+       \e[1mapm_adapter\e[0m
+              Display APM AC adapter status (FreeBSD only)
+
+
+       \e[1mapm_battery_life\e[0m
+              Display APM battery life in percent (FreeBSD only)
+
+
+       \e[1mapm_battery_time\e[0m
+              Display  remaining  APM battery life in hh:mm:ss or "unknown" if
+              AC adapterstatus is on-line or charging (FreeBSD only)
+
+
+       \e[1maudacious_bar (height),(width)\e[0m
+              Progress bar
+
+
+       \e[1maudacious_bitrate\e[0m
+              Bitrate of current tune
+
+
+       \e[1maudacious_channels\e[0m
+              Number of audio channels of current tune
+
+
+       \e[1maudacious_filename\e[0m
+              Full path and filename of current tune
+
+
+       \e[1maudacious_frequency\e[0m
+              Sampling frequency of current tune
+
+
+       \e[1maudacious_length\e[0m
+              Total length of current tune as MM:SS
+
+
+       \e[1maudacious_length_seconds\e[0m
+              Total length of current tune in seconds
+
+
+       \e[1maudacious_playlist_position\e[0m
+              Playlist position of current tune
+
+
+       \e[1maudacious_playlist_length\e[0m
+              Number of tunes in playlist
+
+
+       \e[1maudacious_position\e[0m
+              Position of current tune (MM:SS)
+
+
+       \e[1maudacious_position_seconds\e[0m
+              Position of current tune in seconds
+
+
+       \e[1maudacious_status\e[0m
+              Player status (Playing/Paused/Stopped/Not running)
+
+
+       \e[1maudacious_title (max length)\e[0m
+              Title of current tune with optional maximum length specifier
+
+
+       \e[1maudacious_main_volume\e[0m
+              The current volume fetched from Audacious
+
+
+       \e[1mbattery (num)\e[0m
+              Battery status and remaining percentage capacity of ACPI or  APM
+              battery.  ACPI  battery number can be given as argument (default
+              is BAT0).
+
+
+       \e[1mbattery_short (num)\e[0m
+              Battery status and remaining percentage capacity of ACPI or  APM
+              battery.  ACPI  battery number can be given as argument (default
+              is BAT0).  This mode display a short status, which means that  C
+              is  displayed  instead of charging and D is displayed instead of
+              discharging.
+
+
+       \e[1mbattery_bar (height),(width) (num)\e[0m
+              Battery percentage remaining of ACPI battery in a bar. ACPI bat‐
+              tery number can be given as argument (default is BAT0).
+
+
+       \e[1mbattery_percent (num)\e[0m
+              Battery percentage remaining for ACPI battery. ACPI battery num‐
+              ber can be given as argument (default is BAT0).
+
+
+       \e[1mbattery_time (num)\e[0m
+              Battery charge/discharge time remaining of  ACPI  battery.  ACPI
+              battery number can be given as argument (default is BAT0).
+
+
+       \e[1mbmpx_artist\e[0m
+              Artist in current BMPx track
+
+
+       \e[1mbmpx_album\e[0m
+              Album in current BMPx track
+
+
+       \e[1mbmpx_title\e[0m
+              Title of the current BMPx track
+
+
+       \e[1mbmpx_track\e[0m
+              Track number of the current BMPx track
+
+
+       \e[1mbmpx_bitrate\e[0m
+              Bitrate of the current BMPx track
+
+
+       \e[1mbmpx_uri\e[0m
+              URI of the current BMPx track
+
+
+       \e[1mbuffers\e[0m
+              Amount of memory buffered
+
+
+       \e[1mcached \e[22mAmount of memory cached
+
+
+       \e[1mcolor (color)\e[0m
+              Change drawing color to color
+
+
+       \e[1mcolorN \e[22mChange  drawing color to colorN configuration option, where N is
+              a digit between 0 and 9, inclusively.
+
+
+       \e[1mcombine var1 var2\e[0m
+              Places the lines of var2 to the  right  of  the  lines  of  var1
+              seperated  by  the chars that are put between var1 and var2. For
+              example: ${combine ${head /proc/cpuinfo 2} - ${head /proc/memin‐
+              fo 1}} gives as output "cpuinfo_line1 - meminfo_line1" on line 1
+              and "cpuinfo_line2 -" on line 2. $combine vars can also be nest‐
+              ed to place more vars next to each other.
+
+
+       \e[1mconky_version\e[0m
+              Conky version
+
+
+       \e[1mconky_build_date\e[0m
+              Date Conky was built
+
+
+       \e[1mconky_build_arch\e[0m
+              CPU architecture Conky was built for
+
+
+       \e[1mcpu (cpuN)\e[0m
+              CPU  usage  in percents. For SMP machines, the CPU number can be
+              provided as an argument. ${cpu cpu0} is  the  total  usage,  and
+              ${cpu cpuX} (X >= 1) are individual CPUs.
+
+
+       \e[1mcpubar (cpuN) (height),(width)\e[0m
+              Bar  that shows CPU usage, height is bar's height in pixels. See
+              $cpu for more info on SMP.
+
+
+       \e[1mcpugauge (cpuN) (height),(width)\e[0m
+              Elliptical gauge that shows CPU  usage,  height  and  width  are
+              gauge's  vertical and horizontal axis respectively. See $cpu for
+              more info on SMP.
+
+
+       \e[1mcpugraph (cpuN) ("normal"|"log") (height),(width) (gradient  colour  1)\e[0m
+       \e[1m(gradient colour 2) (scale)\e[0m
+              CPU  usage graph, with optional colours in hex, minus the #. See
+              $cpu for more info on SMP. Uses  a  logarithmic  scale  (to  see
+              small numbers) when you use "log" instead of "normal".
+
+
+       \e[1mdiskio (device)\e[0m
+              Displays current disk IO. Device is optional, and takes the form
+              of sda for /dev/sda. Individual partitions are allowed.
+
+
+       \e[1mdiskiograph ("normal"|"log") (height),(width) (gradient colour 1) (gra‐\e[0m
+       \e[1mdient colour 2) (scale) (device)\e[0m
+              Disk  IO graph, colours defined in hex, minus the #. If scale is
+              non-zero, it becomes the scale for the graph. Uses a logarithmic
+              scale (to see small numbers) when you use "log" instead of "nor‐
+              mal".
+
+
+       \e[1mdiskio_read (device)\e[0m
+              Displays current disk IO for reads. Device as in diskio.
+
+
+       \e[1mdiskiograph_read ("normal"|"log") (height),(width) (gradient colour  1)\e[0m
+       \e[1m(gradient colour 2) (scale) (device)\e[0m
+              Disk IO graph for reads, colours defined in hex, minus the #. If
+              scale is non-zero, it becomes the scale for the graph. Device as
+              in  diskio. Uses a logarithmic scale (to see small numbers) when
+              you use "log" instead of "normal".
+
+
+       \e[1mdiskio_write (device)\e[0m
+              Displays current disk IO for writes. Device as in diskio.
+
+
+       \e[1mdiskiograph_write ("normal"|"log") (height),(width) (gradient colour 1)\e[0m
+       \e[1m(gradient colour 2) (scale) (device)\e[0m
+              Disk  IO  graph for writes, colours defined in hex, minus the #.
+              If scale is non-zero, it becomes the scale for the graph. Device
+              as  in  diskio.  Uses a logarithmic scale (to see small numbers)
+              when you use "log" instead of "normal".
+
+
+       \e[1mdisk_protect device\e[0m
+              Disk  protection  status,  if  supported  (needs  kernel-patch).
+              Prints either "frozen" or "free " (note the padding).
+
+
+       \e[1mdownspeed net\e[0m
+              Download speed in KiB
+
+
+       \e[1mdownspeedf net\e[0m
+              Download speed in KiB with one decimal
+
+
+       \e[1mdownspeedgraph  ("normal"|"log")  (height),(width)  (gradient colour 1)\e[0m
+       \e[1m(gradient colour 2) (scale) (net)\e[0m
+              Download speed graph, colours defined in hex, minus  the  #.  If
+              scale  is  non-zero,  it becomes the scale for the graph. Uses a
+              logarithmic scale (to see small numbers) when you use "log"  in‐
+              stead of "normal".
+
+
+       \e[1melse   \e[22mText to show if any of the above are not true
+
+
+       \e[1mentropy_avail\e[0m
+              Current entropy available for crypto freaks
+
+
+       \e[1mentropy_bar (height),(width)\e[0m
+              Normalized bar of available entropy for crypto freaks
+
+
+       \e[1mentropy_poolsize\e[0m
+              Total size of system entropy pool for crypto freaks
+
+
+       \e[1meval string\e[0m
+              Evalutates given string according to the rules of TEXT interpre‐
+              tation, i.e. parsing any contained  text  object  specifications
+              into  their  output,  any occuring '$$' into a single '$' and so
+              on. The output is then being parsed again.
+
+
+       \e[1mexec command\e[0m
+              Executes a shell command and displays the output in conky. warn‐
+              ing:  this  takes a lot more resources than other variables. I'd
+              recommend coding wanted behaviour in C and posting a patch.
+
+
+       \e[1mexecbar command\e[0m
+              Same as exec, except if the first value return is  a  value  be‐
+              tween  0-100,  it  will  use that number for a bar. The size for
+              bars can be controlled via the default_bar_size config setting.
+
+
+       \e[1mexecgauge command\e[0m
+              Same as exec, except if the first value returned is a value  be‐
+              tween  0-100,  it will use that number for a gauge. The size for
+              gauges can be controlled via the default_gauge_size config  set‐
+              ting.
+
+
+       \e[1mexecgraph ("normal"|"log") (height),(width) (gradient colour 1) (gradi‐\e[0m
+       \e[1ment colour 2) (scale) command\e[0m
+              Same as execbar, but graphs values. Uses a logaritmic scale when
+              the  log  option  is  given (to see small numbers). Values still
+              have to be between 0 and 100. The size for graphs  can  be  con‐
+              trolled via the default_graph_size config setting.
+
+
+       \e[1mexeci interval command\e[0m
+              Same  as exec but with specific interval. Interval can't be less
+              than update_interval in configuration. See also $texeci
+
+
+       \e[1mexecibar interval command\e[0m
+              Same as execbar, except with an interval
+
+
+       \e[1mexecigraph interval command\e[0m
+              Same as execgraph, but takes an interval arg and graphs values.
+
+
+       \e[1mexecigauge interval command\e[0m
+              Same as execgauge, but takes an interval arg and gauges values.
+
+
+       \e[1mexecp command\e[0m
+              Executes a shell command and displays the output in conky. warn‐
+              ing:  this  takes a lot more resources than other variables. I'd
+              recommend coding wanted behaviour in C and posting a patch. This
+              differs  from $exec in that it parses the output of the command,
+              so you can insert things like ${color  red}hi!${color}  in  your
+              script  and  have  it correctly parsed by Conky.  Caveats: Conky
+              parses and evaluates the  output  of  $execp  every  time  Conky
+              loops, and then destroys all the objects. If you try to use any‐
+              thing like $execi within an $execp statement, it will  function‐
+              ally run at the same interval that the $execp statement runs, as
+              it is created and destroyed at every interval.
+
+
+       \e[1mexecpi interval command\e[0m
+              Same as execp but with specific interval. Interval can't be less
+              than update_interval in configuration. Note that the output from
+              the $execpi command is still parsed and evaluated at  every  in‐
+              terval.
+
+
+       \e[1mfont (font)\e[0m
+              Specify  a  different font. This new font will apply to the cur‐
+              rent line and everything following. You can use a $font with  no
+              arguments  to  change  back  to the default font (much like with
+              $color)
+
+
+       \e[1mfreq (n)\e[0m
+              Returns CPU #n's frequency in MHz. CPUs are counted from  1.  If
+              omitted, the parameter defaults to 1.
+
+
+       \e[1mfreq_g (n)\e[0m
+              Returns  CPU  #n's frequency in GHz. CPUs are counted from 1. If
+              omitted, the parameter defaults to 1.
+
+
+       \e[1mfs_bar (height),(width) fs\e[0m
+              Bar that shows how much space is used on a file  system.  height
+              is the height in pixels. fs is any file on that file system.
+
+
+       \e[1mfs_bar_free (height),(width) fs\e[0m
+              Bar  that  shows how much space is free on a file system. height
+              is the height in pixels. fs is any file on that file system.
+
+
+       \e[1mfs_free (fs)\e[0m
+              Free space on a file system available for users.
+
+
+       \e[1mfs_free_perc (fs)\e[0m
+              Free percentage of space on a file system available for users.
+
+
+       \e[1mfs_size (fs)\e[0m
+              File system size.
+
+
+       \e[1mfs_type (fs)\e[0m
+              File system type.
+
+
+       \e[1mfs_used (fs)\e[0m
+              File system used space.
+
+
+       \e[1mfs_used_perc (fs)\e[0m
+              Percent of file system used space.
+
+
+       \e[1mgoto x \e[22mThe next element will be printed at position 'x'.
+
+
+       \e[1mgw_iface\e[0m
+              Displays the default route's interface or "multiple"/"none"  ac‐
+              cordingly.
+
+
+       \e[1mgw_ip  \e[22mDisplays  the  default gateway's IP or "multiple"/"none" accord‐
+              ingly.
+
+
+       \e[1mhddtemp dev, (host,(port))\e[0m
+              Displays temperature of a selected hard disk drive  as  reported
+              by  the  hddtemp  daemon  running on host:port.  Default host is
+              127.0.0.1, default port is 7634.
+
+
+       \e[1mhead logfile lines (interval)\e[0m
+              Displays first N lines of supplied text text file.  If  interval
+              is  not  supplied,  Conky assumes 2x Conky's interval. Max of 30
+              lines can be displayed, or until the text buffer is filled.
+
+
+       \e[1mhr (height)\e[0m
+              Horizontal line, height is the height in pixels
+
+
+       \e[1mhwmon (dev) type n\e[0m
+              Hwmon sensor from sysfs (Linux 2.6). Parameter dev may be  omit‐
+              ted  if you have only one hwmon device. Parameter type is either
+              'in' or 'vol' meaning voltage; 'fan' meaning fan; 'temp' meaning
+              temperature.   Parameter   n   is  number  of  the  sensor.  See
+              /sys/class/hwmon/ on your local computer.
+
+
+       \e[1miconv_start codeset_from codeset_to\e[0m
+              Convert text from one codeset to another using GNU iconv.  Needs
+              to be stopped with iconv_stop.
+
+
+       \e[1miconv_stop\e[0m
+              Stop iconv codeset conversion.
+
+
+       \e[1mi2c (dev) type n\e[0m
+              I2C  sensor from sysfs (Linux 2.6). Parameter dev may be omitted
+              if you have only one I2C device. Parameter type is  either  'in'
+              or 'vol' meaning voltage; 'fan' meaning fan; 'temp' meaning tem‐
+              perature.  Parameter  n   is   number   of   the   sensor.   See
+              /sys/bus/i2c/devices/ on your local computer.
+
+
+       \e[1mi8k_ac_status\e[0m
+              If  running the i8k kernel driver for Inspiron laptops, displays
+              whether ac power is on, as listed in  /proc/i8k  (translated  to
+              human-readable).  Beware  that this is by default not enabled by
+              i8k itself.
+
+
+       \e[1mi8k_bios\e[0m
+              If running the i8k kernel driver for Inspiron laptops,  displays
+              the bios version as listed in /proc/i8k.
+
+
+       \e[1mi8k_buttons_status\e[0m
+              If  running the i8k kernel driver for Inspiron laptops, displays
+              the volume buttons status as listed in /proc/i8k.
+
+
+       \e[1mi8k_cpu_temp\e[0m
+              If running the i8k kernel driver for Inspiron laptops,  displays
+              the cpu temperature in Celsius, as reported by /proc/i8k.
+
+
+       \e[1mi8k_left_fan_rpm\e[0m
+              If  running the i8k kernel driver for Inspiron laptops, displays
+              the left fan's rate of rotation, in revolutions  per  minute  as
+              listed in /proc/i8k. Beware, some laptops i8k reports these fans
+              in reverse order.
+
+
+       \e[1mi8k_left_fan_status\e[0m
+              If running the i8k kernel driver for Inspiron laptops,  displays
+              the left fan status as listed in /proc/i8k (translated to human-
+              readable). Beware, some laptops i8k reports these  fans  in  re‐
+              verse order.
+
+
+       \e[1mi8k_right_fan_rpm\e[0m
+              If  running the i8k kernel driver for Inspiron laptops, displays
+              the right fan's rate of rotation, in revolutions per  minute  as
+              listed in /proc/i8k. Beware, some laptops i8k reports these fans
+              in reverse order.
+
+
+       \e[1mi8k_right_fan_status\e[0m
+              If running the i8k kernel driver for Inspiron laptops,  displays
+              the  right  fan status as listed in /proc/i8k (translated to hu‐
+              man-readable). Beware, some laptops i8k reports  these  fans  in
+              reverse order.
+
+
+       \e[1mi8k_serial\e[0m
+              If  running the i8k kernel driver for Inspiron laptops, displays
+              your laptop serial number as listed in /proc/i8k.
+
+
+       \e[1mi8k_version\e[0m
+              If running the i8k kernel driver for Inspiron laptops,  displays
+              the version formatting of /proc/i8k.
+
+
+       \e[1mibm_fan\e[0m
+              If running the IBM ACPI, displays the fan speed.
+
+
+       \e[1mibm_temps N\e[0m
+              If  running the IBM ACPI, displays the temperatures from the IBM
+              temperature sensors (N=0..7) Sensor 0 is on the CPU, 3 is on the
+              GPU.
+
+
+       \e[1mibm_volume\e[0m
+              If  running  the  IBM  ACPI,  displays the "master" volume, con‐
+              trolled by the volume keys (0-14).
+
+
+       \e[1mibm_brightness\e[0m
+              If running the IBM ACPI, displays the brigtness of the laptops's
+              LCD (0-7).
+
+
+       \e[1mif_empty (var)\e[0m
+              if  conky  variable  VAR  is  empty,  display everything between
+              $if_empty and the matching $endif
+
+
+       \e[1mif_existing file (string)\e[0m
+              if FILE exists, display everything between if_existing  and  the
+              matching  $endif.  The optional second paramater checks for FILE
+              containing the specified string and  prints  everything  between
+              $if_existing and the matching $endif.
+
+
+       \e[1mif_gw  \e[22mif there is at least one default gateway, display everything be‐
+              tween $if_gw and the matching $endif
+
+
+       \e[1mif_match expression\e[0m
+              Evaluates the given boolean expression, printing everything  be‐
+              tween $if_match and the matching $endif depending on whether the
+              evaluation returns true or not.  Valid expressions consist of  a
+              left  side,  an  operator and a right side. Left and right sides
+              are being parsed for contained text objects  before  evaluation.
+              Recognised left and right side types are:
+
+              \e[1mdouble\e[22m: argument consists of only digits and a single dot.
+              \e[1mlong\e[22m: argument consists of only digits.
+              \e[1mstring\e[22m: argument is enclosed in quotation mark or the checks for
+              double and long failed before.
+
+              Valid operands are: '>', '<', '>=', '<=', '==', '!='.
+
+
+       \e[1mif_mixer_mute (mixer)\e[0m
+              If mixer exists, display everything between  $if_mixer_mute  and
+              the matching $endif. If no mixer is specified, "Master" is used.
+
+
+       \e[1mif_running (process)\e[0m
+              if  PROCESS  is  running, display everything $if_running and the
+              matching $endif. This uses the  ``pidof''  command,  so  the  -x
+              switch is also supported.
+
+
+       \e[1mif_mounted (mountpoint)\e[0m
+              if MOUNTPOINT is mounted, display everything between $if_mounted
+              and the matching $endif
+
+
+       \e[1mif_smapi_bat_installed (INDEX)\e[0m
+              when using smapi, if the battery with index INDEX is  installed,
+              display   everything  between  $if_smapi_bat_installed  and  the
+              matching $endif
+
+
+       \e[1mif_up (interface)\e[0m
+              if INTERFACE exists and is up, display everything between $if_up
+              and the matching $endif
+
+
+       \e[1mif_updatenr (updatenr)\e[0m
+              If  it's the UPDATENR-th time that conky updates, display every‐
+              thing between $if_updatenr and the matching $endif.  The counter
+              resets   when  the  highest  UPDATENR  is  reached.   Example  :
+              "{$if_updatenr 1}foo$endif{$if_updatenr 2}bar$endif{$if_updatenr
+              4}$endif"  shows  foo 25% of the time followed by bar 25% of the
+              time followed by nothing the other half of the time.
+
+
+       \e[1mimap_messages (args)\e[0m
+              Displays the number of messages in your global IMAP inbox by de‐
+              fault.  You  can  define  individual  IMAP inboxes seperately by
+              passing arguments to this object. Arguments are: "host user pass
+              [-i interval] [-p port] [-e command] [-r retries]". Default port
+              is 143, default interval is 5 minutes, and default number of re‐
+              tries before giving up is 5. If the password is supplied as '*',
+              you will be prompted to enter the password when Conky starts.
+
+
+       \e[1mimap_unseen (args)\e[0m
+              Displays the number of unseen messages in your global IMAP inbox
+              by default. You can define individual IMAP inboxes seperately by
+              passing arguments to this object. Arguments are: "host user pass
+              [-i interval] [-p port] [-e command] [-r retries]". Default port
+              is 143, default interval is 5 minutes, and default number of re‐
+              tries before giving up is 5. If the password is supplied as '*',
+              you will be prompted to enter the password when Conky starts.
+
+
+       \e[1mioscheduler disk\e[0m
+              Prints the current ioscheduler used  for  the  given  disk  name
+              (i.e. e.g. "hda" or "sdb")
+
+
+       \e[1mkernel \e[22mKernel version
+
+
+       \e[1mlaptop_mode\e[0m
+              The value of /proc/sys/vm/laptop_mode
+
+
+       \e[1mloadavg\e[0m
+              (1,2,3)> System load average, 1 is for past 1 minute, 2 for past
+              5 minutes and 3 for past 15 minutes.
+
+
+       \e[1mloadgraph ("normal"|"log") (height),(width) (gradient colour 1) (gradi‐\e[0m
+       \e[1ment colour 2) (scale)\e[0m
+              Load1  average graph, similar to xload, with optional colours in
+              hex, minus the #. Uses a logarithmic scale (to  see  small  num‐
+              bers) when you use "log" instead of "normal".
+
+
+       \e[1mlines textfile\e[0m
+              Displays the number of lines in the given file
+
+
+       \e[1mmachine\e[0m
+              Machine, i686 for example
+
+
+       \e[1mmails (mailbox) (interval)\e[0m
+              Mail  count  in the specified mailbox or your mail spool if not.
+              Both mbox and maildir type mailboxes are supported. You can  use
+              a  program  like  fetchmail  to get mails from some server using
+              your favourite protocol. See also new_mails.
+
+
+       \e[1mnew_mails (mailbox) (interval)\e[0m
+              Unread mail count in the specified mailbox or mail spool if not.
+              Both mbox and maildir type mailboxes are supported.
+
+
+       \e[1mseen_mails (maildir) (interval)\e[0m
+              Number  of mails marked as seen in the specified mailbox or mail
+              spool if not. Only maildir type mailboxes  are  supported,  mbox
+              type will return -1.
+
+
+       \e[1munseen_mails (maildir) (interval)\e[0m
+              Number  of  new or unseen mails in the specified mailbox or mail
+              spool if not. Only maildir type mailboxes  are  supported,  mbox
+              type will return -1.
+
+
+       \e[1mflagged_mails (maildir) (interval)\e[0m
+              Number  of  mails  marked as flagged in the specified mailbox or
+              mail spool if not. Only maildir type  mailboxes  are  supported,
+              mbox type will return -1.
+
+
+       \e[1munflagged_mails (maildir) (interval)\e[0m
+              Number  of  mails not marked as flagged in the specified mailbox
+              or mail spool if not. Only maildir type mailboxes are supported,
+              mbox type will return -1.
+
+
+       \e[1mforwarded_mails (maildir) (interval)\e[0m
+              Number  of mails marked as forwarded in the specified mailbox or
+              mail spool if not. Only maildir type  mailboxes  are  supported,
+              mbox type will return -1.
+
+
+       \e[1munforwarded_mails (maildir) (interval)\e[0m
+              Number of mails not marked as forwarded in the specified mailbox
+              or mail spool if not. Only maildir type mailboxes are supported,
+              mbox type will return -1.
+
+
+       \e[1mreplied_mails (maildir) (interval)\e[0m
+              Number  of  mails  marked as replied in the specified mailbox or
+              mail spool if not. Only maildir type  mailboxes  are  supported,
+              mbox type will return -1.
+
+
+       \e[1munreplied_mails (maildir) (interval)\e[0m
+              Number  of  mails not marked as replied in the specified mailbox
+              or mail spool if not. Only maildir type mailboxes are supported,
+              mbox type will return -1.
+
+
+       \e[1mdraft_mails (maildir) (interval)\e[0m
+              Number of mails marked as draft in the specified mailbox or mail
+              spool if not. Only maildir type mailboxes  are  supported,  mbox
+              type will return -1.
+
+
+       \e[1mtrashed_mails (maildir) (interval)\e[0m
+              Number  of  mails  marked as trashed in the specified mailbox or
+              mail spool if not. Only maildir type  mailboxes  are  supported,
+              mbox type will return -1.
+
+
+       \e[1mmboxscan (-n number of messages to print) (-fw from width) (-sw subject\e[0m
+       \e[1mwidth) mbox\e[0m
+              Print a summary of recent messages in an  mbox  format  mailbox.
+              mbox  parameter  is the filename of the mailbox (can be encapsu‐
+              lated using '"', ie. ${mboxscan -n 10 "/home/brenden/some box"}
+
+
+       \e[1mmem    \e[22mAmount of memory in use
+
+
+       \e[1mmembar (height),(width)\e[0m
+              Bar that shows amount of memory in use
+
+
+       \e[1mmemgauge (height),(width)\e[0m
+              Gauge that shows amount of memory in use (see cpugauge)
+
+
+       \e[1mmemgraph ("normal"|"log") (height),(width) (gradient colour 1)  (gradi‐\e[0m
+       \e[1ment colour 2) (scale)\e[0m
+              Memory  usage graph. Uses a logarithmic scale (to see small num‐
+              bers) when you use "log" instead of "normal".
+
+
+       \e[1mmemeasyfree\e[0m
+              Amount of free memory including the memory that is  very  easily
+              freed (buffers/cache)
+
+
+       \e[1mmemfree\e[0m
+              Amount of free memory
+
+
+       \e[1mmemmax \e[22mTotal amount of memory
+
+
+       \e[1mmemperc\e[0m
+              Percentage of memory in use
+
+
+       \e[1mmixer (device)\e[0m
+              Prints  the  mixer value as reported by the OS. Default mixer is
+              "vol", but you can specify one of the following  optional  argu‐
+              ments:  "vol",  "bass",  "treble",  "synth",  "pcm",  "speaker",
+              "line", "mic", "cd", "mix",  "pcm2",  "rec",  "igain",  "ogain",
+              "line1",  "line2",  "line3",  "dig1",  "dig2",  "dig3",  "phin",
+              "phout", "video", "radio", "monitor". Refer to the definition of
+              SOUND_DEVICE_NAMES  in  <linux/soundcard.h>  (on Linux), <sound‐
+              card.h> (on OpenBSD), or <sys/soundcard.h> to find the exact op‐
+              tions available on your system.
+
+
+       \e[1mmixerbar (device)\e[0m
+              Displays  mixer  value  in a bar as reported by the OS. See docs
+              for $mixer for details on arguments.
+
+
+       \e[1mmixerr (device)\e[0m
+              Prints the right channel mixer value as reported by the OS.  See
+              docs for $mixer for details on arguments.
+
+
+       \e[1mmixerrbar (device)\e[0m
+              Displays  the  right channel mixer value in a bar as reported by
+              the OS. See docs for $mixer for details on arguments.
+
+
+       \e[1mmixerl (device)\e[0m
+              Prints the left channel mixer value as reported by the  OS.  See
+              docs for $mixer for details on arguments.
+
+
+       \e[1mmixerlbar (device)\e[0m
+              Displays  the  left  channel mixer value in a bar as reported by
+              the OS. See docs for $mixer for details on arguments.
+
+
+       \e[1mmoc_state\e[0m
+              Current state of MOC; playing, stopped etc.
+
+
+       \e[1mmoc_file\e[0m
+              File name of the current MOC song
+
+
+       \e[1mmoc_title\e[0m
+              Title of the current MOC song
+
+
+       \e[1mmoc_artist\e[0m
+              Artist of the current MOC song
+
+
+       \e[1mmoc_song\e[0m
+              The current song name being played in MOC.
+
+
+       \e[1mmoc_album\e[0m
+              Album of the current MOC song
+
+
+       \e[1mmoc_totaltime\e[0m
+              Total length of the current MOC song
+
+
+       \e[1mmoc_timeleft\e[0m
+              Time left in the current MOC song
+
+
+       \e[1mmoc_curtime\e[0m
+              Current time of the current MOC song
+
+
+       \e[1mmoc_bitrate\e[0m
+              Bitrate in the current MOC song
+
+
+       \e[1mmoc_rate\e[0m
+              Rate of the current MOC song
+
+
+       \e[1mmonitor\e[0m
+              Number of the monitor on which conky is running
+
+
+       \e[1mmonitor_number\e[0m
+              Number of monitors
+
+
+       \e[1mmpd_artist\e[0m
+              Artist in current MPD song must be enabled at compile
+
+
+       \e[1mmpd_album\e[0m
+              Album in current MPD song
+
+
+       \e[1mmpd_bar (height),(width)\e[0m
+              Bar of mpd's progress
+
+
+       \e[1mmpd_bitrate\e[0m
+              Bitrate of current song
+
+
+       \e[1mmpd_status\e[0m
+              Playing, stopped, et cetera.
+
+
+       \e[1mmpd_title (max length)\e[0m
+              Title of current MPD song
+
+
+       \e[1mmpd_vol\e[0m
+              MPD's volume
+
+
+       \e[1mmpd_elapsed\e[0m
+              Song's elapsed time
+
+
+       \e[1mmpd_length\e[0m
+              Song's length
+
+
+       \e[1mmpd_percent\e[0m
+              Percent of song's progress
+
+
+       \e[1mmpd_random\e[0m
+              Random status (On/Off)
+
+
+       \e[1mmpd_repeat\e[0m
+              Repeat status (On/Off)
+
+
+       \e[1mmpd_track\e[0m
+              Prints the MPD track field
+
+
+       \e[1mmpd_name\e[0m
+              Prints the MPD name field
+
+
+       \e[1mmpd_file\e[0m
+              Prints the file name of the current MPD song
+
+
+       \e[1mmpd_smart (max length)\e[0m
+              Prints the song name in either the form "artist - title" or file
+              name, depending on whats available
+
+
+       \e[1mif_mpd_playing\e[0m
+              if   mpd  is  playing  or  paused,  display  everything  between
+              $if_mpd_playing and the matching $endif
+
+
+       \e[1mnameserver (index)\e[0m
+              Print a nameserver from /etc/resolv.conf. Index  starts  at  and
+              defaults to 0.
+
+
+       \e[1mnodename\e[0m
+              Hostname
+
+
+       \e[1mnvidia threshold temp ambient gpufreq memfreq imagequality\e[0m
+              Nvidia  graficcard support for the XNVCtrl library.  Each option
+              can be shortened to the least  significant  part.   Temperatures
+              are printed as float, all other values as integer.
+
+              \e[1mthreshold\e[22m: the thresholdtemperature at which the gpu slows down
+              \e[1mtemp\e[22m: gives the gpu current temperature
+              \e[1mambient\e[22m: gives current air temperature near GPU case
+              \e[1mgpufreq\e[22m: gives the current gpu frequency
+              \e[1mmemfreq\e[22m: gives the current mem frequency
+              \e[1mimagequality\e[22m: which imagequality should be choosen by OpenGL ap‐
+              plications
+
+
+       \e[1moutlinecolor (color)\e[0m
+              Change outline color
+
+
+       \e[1mpb_battery item\e[0m
+              If running on Apple powerbook/ibook, display information on bat‐
+              tery  status.  The item parameter specifies, what information to
+              display. Exactly one item must be specified. Valid items are:
+
+              \e[1mstatus\e[22m: Display if battery is fully charged, charging, discharg‐
+              ing or absent (running on AC)
+              \e[1mpercent\e[22m:  Display  charge  of battery in percent, if charging or
+              discharging. Nothing will be  displayed,  if  battery  is  fully
+              charged or absent.
+              \e[1mtime\e[22m: Display the time remaining until the battery will be fully
+              charged or discharged at current rate. Nothing is displayed,  if
+              battery  is  absent or if it's present but fully charged and not
+              discharging.
+
+
+       \e[1mplatform (dev) type n\e[0m
+              Platform sensor from sysfs (Linux 2.6).  Parameter  dev  may  be
+              omitted  if  you have only one platform device. Platform type is
+              either 'in' or 'vol' meaning voltage; 'fan' meaning fan;  'temp'
+              meaning  temperature.  Parameter  n is number of the sensor. See
+              /sys/bus/platform/devices/ on your local computer.
+
+
+       \e[1mpop3_unseen (args)\e[0m
+              Displays the number of unseen messages in your global POP3 inbox
+              by default. You can define individual POP3 inboxes seperately by
+              passing arguments to this object. Arguments are: "host user pass
+              [-i interval] [-p port] [-e command] [-r retries]". Default port
+              is 110, default interval is 5 minutes, and default number of re‐
+              tries before giving up is 5. If the password is supplied as '*',
+              you will be prompted to enter the password when Conky starts.
+
+
+       \e[1mpop3_used (args)\e[0m
+              Displays the amount of space (in MiB, 2^20) used in your  global
+              POP3  inbox  by  default. You can define individual POP3 inboxes
+              seperately by passing arguments to this object.  Arguments  are:
+              "host  user  pass  [-i  interval] [-p port] [-e command] [-r re‐
+              tries]". Default port is 110, default interval is 5 minutes, and
+              default number of retries before giving up is 5. If the password
+              is supplied as '*', you will be prompted to enter  the  password
+              when Conky starts.
+
+
+       \e[1mpre_exec shell command\e[0m
+              Executes a shell command one time before conky displays anything
+              and puts output as text.
+
+
+       \e[1mprocesses\e[0m
+              Total processes (sleeping and running)
+
+
+       \e[1mrunning_processes\e[0m
+              Running processes (not sleeping), requires Linux 2.6
+
+
+       \e[1mscroll length (step) text\e[0m
+              Scroll 'text' by 'step' characters showing  'length'  number  of
+              characters  at  the  same  time. The text may also contain vari‐
+              ables. 'step' is optional and defaults to 1 if not set. If a var
+              creates  output  on multiple lines then the lines are placed be‐
+              hind each other separated with a '|'-sign. Do NOT use vars  that
+              change  colors or otherwise affect the design inside a scrolling
+              text. If you want spaces  between  the  start  and  the  end  of
+              'text',  place them at the end of 'text' not at the front ("foo‐
+              bar" and " foobar" can both generate "barfoo" but "foobar " will
+              keep the spaces like this "bar foo").
+
+
+       \e[1mshadecolor (color)\e[0m
+              Change shading color
+
+
+       \e[1msmapi (ARGS)\e[0m
+              when  using  smapi,  display  contents of the /sys/devices/plat‐
+              form/smapi directory. ARGS are either '(FILENAME)' or 'bat  (IN‐
+              DEX)  (FILENAME)'  to  display the corresponding files' content.
+              This is a very raw method of accessing the  smapi  values.  When
+              available, better use one of the smapi_* variables instead.
+
+
+       \e[1msmapi_bat_bar (INDEX),(height),(width)\e[0m
+              when  using smapi, display the remaining capacity of the battery
+              with index INDEX as a bar.
+
+
+       \e[1msmapi_bat_perc (INDEX)\e[0m
+              when using smapi, display the remaining capacity in  percent  of
+              the  battery  with  index INDEX. This is a separate variable be‐
+              cause it supports the 'use_spacer' configuration option.
+
+
+       \e[1msmapi_bat_power INDEX\e[0m
+              when using smapi, display the current power of the battery  with
+              index  INDEX  in  watt.  This is a separate variable because the
+              original read out value is being converted from mW. The sign  of
+              the  output  reflects  charging (positive) or discharging (nega‐
+              tive) state.
+
+
+       \e[1msmapi_bat_temp INDEX\e[0m
+              when using smapi, display the current temperature of the battery
+              with  index INDEX in degree Celsius. This is a separate variable
+              because the original read out value is being converted from mil‐
+              li degree Celsius.
+
+
+       \e[1mstippled_hr (space)\e[0m
+              Stippled (dashed) horizontal line
+
+
+       \e[1mswapbar (height),(width)\e[0m
+              Bar that shows amount of swap in use
+
+
+       \e[1mswap   \e[22mAmount of swap in use
+
+
+       \e[1mswapmax\e[0m
+              Total amount of swap
+
+
+       \e[1mswapperc\e[0m
+              Percentage of swap in use
+
+
+       \e[1msysname\e[0m
+              System name, Linux for example
+
+
+       \e[1mtcp_portmon port_begin port_end item (index) \e[4m\e[22m(ip4\e[24m \e[4monly\e[24m \e[4mat\e[24m \e[4mpresent)\e[0m
+              TCP port monitor for specified local ports. Port numbers must be
+              in the range 1 to 65535. Valid items are:
+
+              \e[1mcount \e[22m- total number of connections in the range
+              \e[1mrip \e[22m- remote ip address
+              \e[1mrhost \e[22m- remote host name
+              \e[1mrport \e[22m- remote port number
+              \e[1mrservice \e[22m- remote service name from /etc/services
+              \e[1mlip \e[22m- local ip address
+              \e[1mlhost \e[22m- local host name
+              \e[1mlport \e[22m- local port number
+              \e[1mlservice \e[22m- local service name from /etc/services
+
+              The connection index provides you with access to each connection
+              in the port monitor. The monitor will return information for in‐
+              dex values from 0 to n-1 connections. Values higher than n-1 are
+              simply  ignored. For the "count" item, the connection index must
+              be omitted. It is required for all other items.
+
+              Examples:
+              \e[1m${tcp_portmon 6881 6999 count} \e[22m- displays the number of  connec‐
+              tions in the bittorrent port range
+              \e[1m${tcp_portmon  22 22 rip 0} \e[22m- displays the remote host ip of the
+              first sshd connection
+              \e[1m${tcp_portmon 22 22 rip 9} \e[22m- displays the remote host ip of  the
+              tenth sshd connection
+              \e[1m${tcp_portmon 1 1024 rhost 0} \e[22m- displays the remote host name of
+              the first connection on a privileged port
+              \e[1m${tcp_portmon 1 1024 rport 4} \e[22m- displays the remote host port of
+              the fifth connection on a privileged port
+              \e[1m${tcp_portmon  1 65535 lservice 14} \e[22m- displays the local service
+              name of the fifteenth connection in the range of all ports
+
+              Note that port monitor variables which share the same port range
+              actually refer to the same monitor, so many references to a sin‐
+              gle port range for different items and different indexes all use
+              the  same monitor internally. In other words, the program avoids
+              creating redundant monitors.
+
+       \e[1mtexeci interval command\e[0m
+              Runs a command at an interval inside a thread and  displays  the
+              output.  Same  as  $execi,  except  the  command is run inside a
+              thread. Use this if you have a slow script to keep Conky  updat‐
+              ing.  You should make the interval slightly longer then the time
+              it takes your script to execute. For  example,  if  you  have  a
+              script  that  take 5 seconds to execute, you should make the in‐
+              terval at least 6 seconds. See also $execi.
+
+
+       \e[1moffset (pixels)\e[0m
+              Move text over by N pixels. See also $voffset.
+
+
+       \e[1mrss url delay_in_minutes action (num_par (spaces_in_front))\e[0m
+              Download and parse RSS feeds. Action may be one of  the  follow‐
+              ing:  feed_title, item_title (with num par), item_desc (with num
+              par) and item_titles (when using this action and spaces_in_front
+              is given conky places that many spaces in front of each item).
+
+
+       \e[1mtab (width, (start))\e[0m
+              Puts a tab of the specified width, starting from column 'start'.
+              The unit is pixels for both arguments.
+
+
+       \e[1mtail logfile lines (interval)\e[0m
+              Displays last N lines of supplied text text file. If interval is
+              not supplied, Conky assumes 2x Conky's interval. Max of 30 lines
+              can be displayed, or until the text buffer is filled.
+
+
+       \e[1mtemplateN (arg1) (arg2) (arg3 ...)\e[0m
+              Evaluate the content of  the  templateN  configuration  variable
+              (where N is a value between 0 and 9, inclusively), applying sub‐
+              stitutions as described in the documentation of the  correspond‐
+              ing  configuration variable.  The number of arguments is option‐
+              al, but must match the highest referred index in  the  template.
+              You  can  use the same special sequences in each argument as the
+              ones valid for a template definition, e.g. to allow an  argument
+              to  contain  a  whitespace.  Also simple nesting of templates is
+              possible this way.
+
+              Here are some examples of template definitions:
+
+              template0 $\1\2
+              template1 \1: ${fs_used \2} / ${fs_size \2}
+              template2 \1 \2
+
+              The following list shows sample usage of the  templates  defined
+              above, with the equivalent syntax when not using any template at
+              all:
+
+              using template                            same without template
+              ─────────────────────────────────────────────────────────────────────────────────
+              ${template0 node name}                    $nodename
+              ${template1 root /}                       root:   ${fs_free   /}   /
+                                                        ${fs_size /}
+              ${template1 ${template2\ disk\ root} /}   disk root: ${fs_free /} / ${fs_size /}
+
+
+       \e[1mtime (format)\e[0m
+              Local  time, see man strftime to get more information about for‐
+              mat
+
+
+       \e[1mutime (format)\e[0m
+              Display time in UTC (universal coordinate time).
+
+
+       \e[1mtztime (timezone) (format)\e[0m
+              Local time for specified timezone, see man strftime to get  more
+              information  about format. The timezone argument is specified in
+              similar fashion as TZ environment variable. For hints,  look  in
+              /usr/share/zoneinfo. e.g. US/Pacific, Europe/Zurich, etc.
+
+
+       \e[1mtotaldown net\e[0m
+              Total  download, overflows at 4 GB on Linux with 32-bit arch and
+              there doesn't seem to be a way to know how many times it has al‐
+              ready done that before conky has started.
+
+
+       \e[1mtop type, num\e[0m
+              This  takes arguments in the form:top (name) (number) Basically,
+              processes are ranked from highest to lowest in terms of cpu  us‐
+              age,  which  is  what  (num)  represents. The types are: "name",
+              "pid", "cpu", "mem", "mem_res", "mem_vsize", and  "time".  There
+              can be a max of 10 processes listed.
+
+
+       \e[1mtop_mem type, num\e[0m
+              Same as top, except sorted by mem usage instead of cpu
+
+
+       \e[1mtop_time type, num\e[0m
+              Same  as top, except sorted by total CPU time instead of current
+              CPU usage
+
+
+       \e[1mtotalup net\e[0m
+              Total upload, this one too, may overflow
+
+
+       \e[1mupdates Number of updates\e[0m
+              for debugging
+
+
+       \e[1mupspeed net\e[0m
+              Upload speed in KiB
+
+
+       \e[1mupspeedf net\e[0m
+              Upload speed in KiB with one decimal
+
+
+       \e[1mupspeedgraph  ("normal"|"log")  (height),(width)  (gradient  colour  1)\e[0m
+       \e[1m(gradient colour 2) (scale) (net)\e[0m
+              Upload  speed  graph,  colours  defined  in hex, minus the #. If
+              scale is non-zero, it becomes the scale for the  graph.  Uses  a
+              logarithmic  scale (to see small numbers) when you use "log" in‐
+              stead of "normal".
+
+
+       \e[1muptime \e[22mUptime
+
+
+       \e[1muptime_short\e[0m
+              Uptime in a shorter format
+
+
+       \e[1muser_number\e[0m
+              Number of users logged in
+
+
+       \e[1muser_names\e[0m
+              Lists the names of the users logged in
+
+
+       \e[1muser_terms\e[0m
+              Lists the consoles in use
+
+
+       \e[1muser_times\e[0m
+              Lists how long users have been logged in for
+
+
+       \e[1mvoffset (pixels)\e[0m
+              Change vertical offset by N pixels. Negative values  will  cause
+              text to overlap. See also $offset.
+
+
+       \e[1mvoltage_mv (n)\e[0m
+              Returns  CPU  #n's  voltage  in  mV. CPUs are counted from 1. If
+              omitted, the parameter defaults to 1.
+
+
+       \e[1mvoltage_v (n)\e[0m
+              Returns CPU #n's voltage in V. CPUs are counted from 1. If omit‐
+              ted, the parameter defaults to 1.
+
+
+       \e[1mwireless_essid net\e[0m
+              Wireless access point ESSID (Linux only)
+
+
+       \e[1mwireless_mode net\e[0m
+              Wireless mode (Managed/Ad-Hoc/Master) (Linux only)
+
+
+       \e[1mwireless_bitrate net\e[0m
+              Wireless bitrate (ie 11 Mb/s) (Linux only)
+
+
+       \e[1mwireless_ap net\e[0m
+              Wireless access point MAC address (Linux only)
+
+
+       \e[1mwireless_link_qual net\e[0m
+              Wireless link quality (Linux only)
+
+
+       \e[1mwireless_link_qual_max net\e[0m
+              Wireless link quality maximum value (Linux only)
+
+
+       \e[1mwireless_link_qual_perc net\e[0m
+              Wireless link quality in percents (Linux only)
+
+
+       \e[1mwireless_link_bar (height), (width) net\e[0m
+              Wireless link quality bar (Linux only)
+
+
+       \e[1mwords textfile\e[0m
+              Displays the number of words in the given file
+
+
+       \e[1mxmms2_artist\e[0m
+              Artist in current XMMS2 song
+
+
+       \e[1mxmms2_album\e[0m
+              Album in current XMMS2 song
+
+
+       \e[1mxmms2_title\e[0m
+              Title in current XMMS2 song
+
+
+       \e[1mxmms2_genre\e[0m
+              Genre in current XMMS2 song
+
+
+       \e[1mxmms2_comment\e[0m
+              Comment in current XMMS2 song
+
+
+       \e[1mxmms2_url\e[0m
+              Full path to current song
+
+
+       \e[1mxmms2_tracknr\e[0m
+              Track number in current XMMS2 song
+
+
+       \e[1mxmms2_bitrate\e[0m
+              Bitrate of current song
+
+
+       \e[1mxmms2_id\e[0m
+              XMMS2 id of current song
+
+
+       \e[1mxmms2_duration\e[0m
+              Duration of current song
+
+
+       \e[1mxmms2_elapsed\e[0m
+              Song's elapsed time
+
+
+       \e[1mxmms2_size\e[0m
+              Size of current song
+
+
+       \e[1mxmms2_percent\e[0m
+              Percent of song's progress
+
+
+       \e[1mxmms2_date\e[0m
+              Returns song's date.
+
+
+       \e[1mxmms2_playlist\e[0m
+              Returns the XMMS2 playlist.
+
+
+       \e[1mxmms2_timesplayed\e[0m
+              Number of times a song was played (presumably).
+
+
+       \e[1mxmms2_status\e[0m
+              XMMS2 status (Playing, Paused, Stopped, or Disconnected)
+
+
+       \e[1mxmms2_bar (height),(width)\e[0m
+              Bar of XMMS2's progress
+
+
+       \e[1mxmms2_smart\e[0m
+              Prints the song name in either the form "artist - title" or file
+              name, depending on whats available
+
+
+       \e[1mif_xmms2_connected\e[0m
+              Display everything between $if_xmms2_connected and the  matching
+              $endif if xmms2 is running.
+
+
+       \e[1msony_fanspeed\e[0m
+              Displays  the Sony VAIO fanspeed information if sony-laptop ker‐
+              nel support is enabled. Linux only.
+
+
+       \e[1meve api_userid api_key character_id\e[0m
+              Fetches your currently training skill from the  Eve  Online  API
+              servers  (http://www.eve-online.com/)  and  displays  the  skill
+              along with the remaining training time.
+
+
+       \e[1mendif  \e[22mEnds an $if block.
+
+
+\e[1mEXAMPLES\e[0m
+       conky \e[1m-t '${time %D %H:%M}' -o -u 30\e[0m
+              Start Conky in its own window with date and clock as text and 30
+              sec update interval.
+
+       conky \e[1m-a top_left -x 5 -y 500 -d\e[0m
+              Start Conky to background at coordinates (5, 500).
+
+\e[1mFILES\e[0m
+       \e[4m~/.conkyrc\e[24m default configuration file
+
+\e[1mBUGS\e[0m
+       Drawing to root or some other desktop window directly doesn't work with
+       all window managers. Especially doesn't work well with Gnome and it has
+       been  reported  that  it  doesn't work with KDE either. Nautilus can be
+       disabled from drawing to desktop  with  program  gconf-editor.  Uncheck
+       show_desktop  in  /apps/nautilus/preferences/.  There  is  -w switch in
+       Conky to set some specific window id. You  might  find  xwininfo  -tree
+       useful  to  find  the  window  to draw to. You can also use -o argument
+       which makes Conky to create its own window. If you do try running Conky
+       in  its  own window, be sure to read up on the own_window_type settings
+       and experiment.
+
+\e[1mSEE ALSO\e[0m
+       ⟨http://conky.sourceforge.net/⟩
+
+       ⟨http://www.sourceforge.net/projects/conky⟩
+
+       #conky on irc.freenode.net
+
+\e[1mCOPYING\e[0m
+       Copyright (c) 2005-2009 Brenden Matthews, Philip Kovacs, et.  al.   Any
+       original torsmo code is licensed under the BSD license (see LICENSE.BSD
+       for a copy).  All code written since the fork of torsmo is licensed un‐
+       der the GPL (see LICENSE.GPL for a copy), except where noted different‐
+       ly (such as in portmon code, timed  thread  code,  and  audacious  code
+       which are LGPL, and prss which is an MIT-style license).
+
+\e[1mAUTHORS\e[0m
+       The Conky dev team (see AUTHORS for a full list of contributors).
+
+
+
+                                  2009-05-01                          conky(1)
index c2c911b..8702035 100644 (file)
@@ -614,6 +614,15 @@ AC_CHECK_HEADER(zlib.h,
 
 
 dnl
+dnl Check for OpenMP support
+dnl
+
+AX_OPENMP([
+  AC_DEFINE(HAVE_OPENMP,1,[Define if OpenMP is enabled])
+  CFLAGS="$CFLAGS $OPENMP_CFLAGS"
+])
+
+dnl
 dnl Check doc stuff
 dnl
 
@@ -626,7 +635,6 @@ else
   AM_CONDITIONAL(HAVE_DOCSTUFF, true)
 fi
 
-
 dnl
 dnl kstat in Solaris
 dnl
diff --git a/m4/ax_openmp.m4 b/m4/ax_openmp.m4
new file mode 100644 (file)
index 0000000..492675d
--- /dev/null
@@ -0,0 +1,98 @@
+# ===========================================================================
+#            http://www.nongnu.org/autoconf-archive/ax_openmp.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+#   AX_OPENMP([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+#
+# DESCRIPTION
+#
+#   This macro tries to find out how to compile programs that use OpenMP a
+#   standard API and set of compiler directives for parallel programming
+#   (see http://www-unix.mcs/)
+#
+#   On success, it sets the OPENMP_CFLAGS/OPENMP_CXXFLAGS/OPENMP_F77FLAGS
+#   output variable to the flag (e.g. -omp) used both to compile *and* link
+#   OpenMP programs in the current language.
+#
+#   NOTE: You are assumed to not only compile your program with these flags,
+#   but also link it with them as well.
+#
+#   If you want to compile everything with OpenMP, you should set:
+#
+#       CFLAGS="$CFLAGS $OPENMP_CFLAGS"
+#       #OR#  CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
+#       #OR#  FFLAGS="$FFLAGS $OPENMP_FFLAGS"
+#
+#   (depending on the selected language).
+#
+#   The user can override the default choice by setting the corresponding
+#   environment variable (e.g. OPENMP_CFLAGS).
+#
+#   ACTION-IF-FOUND is a list of shell commands to run if an OpenMP flag is
+#   found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it is
+#   not found. If ACTION-IF-FOUND is not specified, the default action will
+#   define HAVE_OPENMP.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
+#
+#   This program is free software: you can redistribute it and/or modify it
+#   under the terms of the GNU General Public License as published by the
+#   Free Software Foundation, either version 3 of the License, or (at your
+#   option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+#   Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License along
+#   with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+#   As a special exception, the respective Autoconf Macro's copyright owner
+#   gives unlimited permission to copy, distribute and modify the configure
+#   scripts that are the output of Autoconf when processing the Macro. You
+#   need not follow the terms of the GNU General Public License when using
+#   or distributing such scripts, even though portions of the text of the
+#   Macro appear in them. The GNU General Public License (GPL) does govern
+#   all other use of the material that constitutes the Autoconf Macro.
+#
+#   This special exception to the GPL applies to versions of the Autoconf
+#   Macro released by the Autoconf Archive. When you make and distribute a
+#   modified version of the Autoconf Macro, you may extend this special
+#   exception to the GPL to apply to your modified version as well.
+
+AC_DEFUN([AX_OPENMP], [
+AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX
+
+AC_CACHE_CHECK([for OpenMP flag of _AC_LANG compiler], ax_cv_[]_AC_LANG_ABBREV[]_openmp, [save[]_AC_LANG_PREFIX[]FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
+ax_cv_[]_AC_LANG_ABBREV[]_openmp=unknown
+# Flags to try:  -fopenmp (gcc), -openmp (icc), -mp (SGI & PGI),
+#                -xopenmp (Sun), -omp (Tru64), -qsmp=omp (AIX), none
+ax_openmp_flags="-fopenmp -openmp -mp -xopenmp -omp -qsmp=omp none"
+if test "x$OPENMP_[]_AC_LANG_PREFIX[]FLAGS" != x; then
+  ax_openmp_flags="$OPENMP_[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flags"
+fi
+for ax_openmp_flag in $ax_openmp_flags; do
+  case $ax_openmp_flag in
+    none) []_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[] ;;
+    *) []_AC_LANG_PREFIX[]FLAGS="$save[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flag" ;;
+  esac
+  AC_TRY_LINK_FUNC(omp_set_num_threads,
+       [ax_cv_[]_AC_LANG_ABBREV[]_openmp=$ax_openmp_flag; break])
+done
+[]_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[]FLAGS
+])
+if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" = "xunknown"; then
+  m4_default([$2],:)
+else
+  if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" != "xnone"; then
+    OPENMP_[]_AC_LANG_PREFIX[]FLAGS=$ax_cv_[]_AC_LANG_ABBREV[]_openmp
+  fi
+  m4_default([$1], [AC_DEFINE(HAVE_OPENMP,1,[Define if OpenMP is enabled])])
+fi
+])dnl AX_OPENMP
+
index 3be9d86..020eb4e 100644 (file)
@@ -5090,7 +5090,7 @@ static inline int get_string_width_special(char *s)
        char *p, *final;
        int idx = 1;
        int width = 0;
-       unsigned int i;
+       long i;
 
        if ((output_methods & TO_X) == 0) {
 #endif
@@ -5109,7 +5109,7 @@ static inline int get_string_width_special(char *s)
                if (*p == SPECIAL_CHAR) {
                        /* shift everything over by 1 so that the special char
                         * doesn't mess up the size calculation */
-                       for (i = 0; i < strlen(p); i++) {
+                       for (i = 0; i < (long)strlen(p); i++) {
                                *(p + i) = *(p + i + 1);
                        }
                        if (specials[special_index + idx].type == GRAPH
index 3bd82ea..8d1cbc8 100644 (file)
@@ -228,11 +228,11 @@ struct information {
        float *cpu_usage;
        /* struct cpu_stat cpu_summed; what the hell is this? */
        unsigned int cpu_count;
-       unsigned int cpu_avg_samples;
+       int cpu_avg_samples;
 
-       unsigned int net_avg_samples;
+       int net_avg_samples;
 
-       unsigned int diskio_avg_samples;
+       int diskio_avg_samples;
 
        float loadavg[3];
 
index 4703304..613d453 100644 (file)
@@ -405,9 +405,12 @@ void update_net_stats(void)
                curtmp1 = 0;
                curtmp2 = 0;
                // get an average
-               for (i = 0; (unsigned) i < info.net_avg_samples; i++) {
-                       curtmp1 += ns->net_rec[i];
-                       curtmp2 += ns->net_trans[i];
+#ifdef HAVE_OPENMP
+#pragma omp parallel for
+#endif /* HAVE_OPENMP */
+               for (i = 0; i < info.net_avg_samples; i++) {
+                       curtmp1 = curtmp1 + ns->net_rec[i];
+                       curtmp2 = curtmp2 + ns->net_trans[i];
                }
                if (curtmp1 == 0) {
                        curtmp1 = 1;
@@ -418,6 +421,9 @@ void update_net_stats(void)
                ns->recv_speed = curtmp1 / (double) info.net_avg_samples;
                ns->trans_speed = curtmp2 / (double) info.net_avg_samples;
                if (info.net_avg_samples > 1) {
+#ifdef HAVE_OPENMP
+#pragma omp parallel for
+#endif /* HAVE_OPENMP */
                        for (i = info.net_avg_samples; i > 1; i--) {
                                ns->net_rec[i - 1] = ns->net_rec[i - 2];
                                ns->net_trans[i - 1] = ns->net_trans[i - 2];
@@ -592,7 +598,7 @@ inline static void update_stat(void)
        static int rep = 0;
        static struct cpu_info *cpu = NULL;
        char buf[256];
-       unsigned int i;
+       int i;
        unsigned int idx;
        double curtmp;
        const char *stat_template = NULL;
@@ -664,8 +670,11 @@ inline static void update_stat(void)
                                cpu[idx].cpu_last_active_total) /
                                (float) (cpu[idx].cpu_total - cpu[idx].cpu_last_total);
                        curtmp = 0;
+#ifdef HAVE_OPENMP
+#pragma omp parallel for reduction(+:curtmp)
+#endif /* HAVE_OPENMP */
                        for (i = 0; i < info.cpu_avg_samples; i++) {
-                               curtmp += cpu[idx].cpu_val[i];
+                               curtmp = curtmp + cpu[idx].cpu_val[i];
                        }
                        /* TESTING -- I've removed this, because I don't think it is right.
                         * You shouldn't divide by the cpu count here ...
@@ -681,6 +690,9 @@ inline static void update_stat(void)
 
                        cpu[idx].cpu_last_total = cpu[idx].cpu_total;
                        cpu[idx].cpu_last_active_total = cpu[idx].cpu_active_total;
+#ifdef HAVE_OPENMP
+#pragma omp parallel for
+#endif /* HAVE_OPENMP */
                        for (i = info.cpu_avg_samples - 1; i > 0; i--) {
                                cpu[idx].cpu_val[i] = cpu[idx].cpu_val[i - 1];
                        }
@@ -794,6 +806,9 @@ static int get_first_file_in_a_directory(const char *dir, char *s, int *rep)
                strncpy(s, namelist[0]->d_name, 255);
                s[255] = '\0';
 
+#ifdef HAVE_OPENMP
+#pragma omp parallel for
+#endif /* HAVE_OPENMP */
                for (i = 0; i < n; i++) {
                        free(namelist[i]);
                }
@@ -1454,6 +1469,9 @@ void init_batteries(void)
        if (batteries_initialized) {
                return;
        }
+#ifdef HAVE_OPENMP
+#pragma omp parallel for
+#endif /* HAVE_OPENMP */
        for (idx = 0; idx < MAX_BATTERY_COUNT; idx++) {
                batteries[idx][0] = '\0';
        }