* Added patch for the following (thanks larsko):
authorBrenden Matthews <brenden1@rty.ca>
Sun, 13 Apr 2008 04:10:35 +0000 (04:10 +0000)
committerBrenden Matthews <brenden1@rty.ca>
Sun, 13 Apr 2008 04:10:35 +0000 (04:10 +0000)
* New $loadgraph to show a graph of load averages,
* add "show_graph_scale" option to turn off/on the showing of the
current max value for the graph,
* minor code fixes,
* update nano and vim syntax highlighting stuff.

git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1104 7f574dfc-610e-0410-a909-a81674777703

ChangeLog
README
data/conky.conf
doc/config_settings.xml
doc/conky.1
doc/conky.conf
doc/variables.xml
extras/nano/conky.nanorc
extras/vim/syntax/conkyrc.vim
src/conky.c

index d75048b..83d6ef7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 # $Id$
 
+2008-04-12
+       * Added patch for the following (thanks larsko):
+               * New $loadgraph to show a graph of load averages,
+               * add "show_graph_scale" option to turn off/on the showing of the
+               current max value for the graph,
+               * minor code fixes,
+               * update nano and vim syntax highlighting stuff.
+
 2008-04-10
        * Getting rid of goto usage throughout code.
        * Fix bug due to usage of gethostbyname() in threads (which is not
diff --git a/README b/README
index bc4b31e..7ad19b4 100644 (file)
--- a/README
+++ b/README
@@ -388,6 +388,10 @@ CONFIGURATION SETTINGS
              fault is off.
 
 
+       show_graph_scale
+             Shows the maximum value in scaled graphs.
+
+
        stippled_borders
              Border stippling (dashing) in pixels
 
@@ -1036,21 +1040,26 @@ VARIABLES
              5 minutes and 3 for past 15 minutes.
 
 
+       loadgraph (height),(width) (gradient colour 1) (gradient colour 2)
+             Load1 average graph, similar to xload, with optional colours  in
+             hex, minus the #.
+
+
        machine
              Machine, i686 for example
 
 
        mails (mailbox) (interval)
-             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
+             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.
 
 
        mboxscan (-n number of messages to print) (-fw from width) (-sw subject
        width) mbox
-             Print  a  summary  of recent messages in an mbox format mailbox.
-             mbox parameter is the filename of the mailbox (can  be  encapsu-
+             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"}
 
 
@@ -1134,7 +1143,7 @@ VARIABLES
 
 
        nameserver (index)
-             Print a nameserver from /etc/resolv.conf. Index  starts  at  and
+             Print  a  nameserver  from /etc/resolv.conf. Index starts at and
              defaults to 0.
 
 
@@ -1153,26 +1162,26 @@ VARIABLES
 
        pb_battery item
              If running on Apple powerbook/ibook, display information on bat-
-             tery  status.  The item parameter specifies, what information to
+             tery status. The item parameter specifies, what  information  to
              display. Exactly one item must be specified. Valid items are:
 
              status: Display if battery is fully charged, charging, discharg-
              ing or absent (running on AC)
-             percent:  Display  charge  of battery in percent, if charging or
-             discharging. Nothing will be  displayed,  if  battery  is  fully
+             percent: Display charge of battery in percent,  if  charging  or
+             discharging.  Nothing  will  be  displayed,  if battery is fully
              charged or absent.
              time: 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
+             charged  or discharged at current rate. Nothing is displayed, if
+             battery is absent or if it's present but fully charged  and  not
              discharging.
 
 
        platform (dev) type n
-             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'
+             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'
              (Celsius) or 'tempf' (Fahrenheit) meaning temperature. Parameter
-             n is number of the  sensor.  See  /sys/bus/platform/devices/  on
+             n  is  number  of  the sensor. See /sys/bus/platform/devices/ on
              your local computer.
 
 
@@ -1180,17 +1189,17 @@ VARIABLES
              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]". Default port is 110,  de-
+             [-i  interval] [-p port] [-e command]". Default port is 110, de-
              fault interval is 5 minutes. If the password is supplied as '*',
              you will be prompted to enter the password when Conky starts.
 
 
        pop3_used (args)
-             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]". Default
-             port is 110, default interval is 5 minutes. If the  password  is
+             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]".  Default
+             port  is  110, default interval is 5 minutes. If the password is
              supplied as '*', you will be prompted to enter the password when
              Conky starts.
 
@@ -1213,21 +1222,21 @@ VARIABLES
 
 
        smapi (ARGS)
-             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
+             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.
 
 
        smapi_bat_perc (INDEX)
-             when  using  smapi, display the remaining capacity in percent of
-             the battery with index INDEX. This is a  separate  variable  be-
+             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.
 
 
        smapi_bat_bar (INDEX),(height),(width)
-             when  using smapi, display the remaining capacity of the battery
+             when using smapi, display the remaining capacity of the  battery
              with index INDEX as a bar.
 
 
@@ -1271,36 +1280,36 @@ VARIABLES
              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
+             simply  ignored. For the "count" item, the connection index must
              be omitted. It is required for all other items.
 
              Examples:
-             ${tcp_portmon  6881 6999 count} - displays the number of connec-
+             ${tcp_portmon 6881 6999 count} - displays the number of  connec-
              tions in the bittorrent port range
-             ${tcp_portmon 22 22 rip 0} - displays the remote host ip of  the
+             ${tcp_portmon  22 22 rip 0} - displays the remote host ip of the
              first sshd connection
-             ${tcp_portmon  22 22 rip 9} - displays the remote host ip of the
+             ${tcp_portmon 22 22 rip 9} - displays the remote host ip of  the
              tenth sshd connection
              ${tcp_portmon 1 1024 rhost 0} - displays the remote host name of
              the first connection on a privileged port
              ${tcp_portmon 1 1024 rport 4} - displays the remote host port of
              the fifth connection on a privileged port
-             ${tcp_portmon 1 65535 lservice 14} - displays the local  service
+             ${tcp_portmon  1 65535 lservice 14} - 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
+             the  same monitor internally. In other words, the program avoids
              creating redundant monitors.
 
        texeci interval command
-             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-
+             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.
 
 
@@ -1309,8 +1318,8 @@ VARIABLES
 
 
        rss url delay_in_minutes action item_num
-             Download  and  parse RSS feeds. Action may be one of the follow-
-             ing: feed_title, item_title (with num par), item_desc (with  num
+             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.
 
 
@@ -1325,7 +1334,7 @@ VARIABLES
 
 
        time (format)
-             Local time, see man strftime to get more information about  for-
+             Local  time, see man strftime to get more information about for-
              mat
 
 
@@ -1334,23 +1343,23 @@ VARIABLES
 
 
        tztime (timezone) (format)
-             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
+             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.
 
 
        totaldown net
-             Total download, overflows at 4 GB on Linux with 32-bit arch  and
+             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.
 
 
        top type, num
-             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
+             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.
 
 
@@ -1374,9 +1383,9 @@ VARIABLES
              Upload speed in kilobytes with one decimal
 
 
-       upspeedgraph net (height),(width) (gradient colour 1) (gradient colour
+       upspeedgraph  net (height),(width) (gradient colour 1) (gradient colour
        2) (scale)
-             Upload speed graph, colours defined in  hex,  minus  the  #.  If
+             Upload  speed  graph,  colours  defined  in hex, minus the #. If
              scale is non-zero, it becomes the scale for the graph.
 
 
@@ -1404,12 +1413,12 @@ VARIABLES
 
 
        voffset (pixels)
-             Change  vertical  offset by N pixels. Negative values will cause
+             Change vertical offset by N pixels. Negative values  will  cause
              text to overlap. See also $offset.
 
 
        voltage_mv (n)
-             Returns CPU #n's voltage in mV. CPUs  are  counted  from  1.  If
+             Returns  CPU  #n's  voltage  in  mV. CPUs are counted from 1. If
              omitted, the parameter defaults to 1.
 
 
@@ -1537,13 +1546,13 @@ FILES
 BUGS
        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
+       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
+       in  its own window, be sure to read up on the own_window_type settings
        and experiment.
 
 SEE ALSO
@@ -1554,11 +1563,11 @@ SEE ALSO
        #conky on irc.freenode.net
 
 COPYING
-       Copyright  (c)  2005-2008 Brenden Matthews, Philip Kovacs, et. al.  Any
+       Copyright (c) 2005-2008 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
+       ly (such as in portmon code, timed  thread  code,  and  audacious  code
        which are LGPL, and prss which is an MIT-style license).
 
 AUTHORS
index 88a28df..14c92d7 100644 (file)
@@ -49,6 +49,7 @@ stippled_borders 0
 update_interval 3.0
 uppercase no
 use_spacer no
+show_graph_scale no
 
 TEXT
 $nodename - $sysname $kernel on $machine
index 256e7f6..360433a 100644 (file)
        </varlistentry>
 
        <varlistentry>
+               <term><command><option>show_graph_scale</option></command></term>
+               <listitem>
+                       Shows the maximum value in scaled graphs.
+                       <para></para></listitem>
+       </varlistentry>
+
+       <varlistentry>
                <term><command><option>stippled_borders</option></command></term>
                <listitem>
                        Border stippling (dashing) in pixels
index 6cb8868..602f439 100644 (file)
@@ -363,6 +363,10 @@ Default global POP3 server. Arguments are: "host user pass [-i interval] [-p por
 Shortens units to a single character (kiB->k, GiB->G, etc.). Default is off.
 
 .TP 
+\fB\*(T<\fBshow_graph_scale\fR\*(T>\fR
+Shows the maximum value in scaled graphs.
+
+.TP 
 \fB\*(T<\fBstippled_borders\fR\*(T>\fR
 Border stippling (dashing) in pixels
 
@@ -918,6 +922,10 @@ The value of /proc/sys/vm/laptop_mode
 (1,2,3)> System load average, 1 is for past 1 minute, 2 for past 5 minutes and 3 for past 15 minutes.
 
 .TP 
+\fB\*(T<\fBloadgraph\fR\*(T>\fR \*(T<\fB(height),(width) (gradient colour 1) (gradient colour 2)\fR\*(T> 
+Load1 average graph, similar to xload, with optional colours in hex, minus the #.
+
+.TP 
 \fB\*(T<\fBmachine\fR\*(T>\fR 
 Machine, i686 for example
 
index 204567b..1e1ec86 100644 (file)
@@ -125,6 +125,9 @@ override_utf8_locale no
 # Add spaces to keep things from moving about?  This only affects certain objects.
 use_spacer none
 
+# Shows the maximum value in scaled graphs.
+show_graph_scale no
+
 # Allow each port monitor to track at most this many connections (if 0 or not set, default is 256)
 #max_port_monitor_connections 256
 
index f571b40..fe25c98 100644 (file)
 
        <varlistentry>
                <term>
+                       <command><option>loadgraph</option></command>
+                       <option>(height),(width) (gradient colour 1) (gradient colour 2)</option>
+               </term>
+               <listitem>
+                       Load1 average graph, similar to xload, with optional colours in hex, minus the #.
+                       <para></para></listitem>
+       </varlistentry>
+
+       <varlistentry>
+               <term>
                        <command><option>machine</option></command>
                </term>
                <listitem>
index bc221ca..559e58a 100644 (file)
@@ -6,10 +6,10 @@
 syntax "conky" "(\.*conkyrc.*$|conky.conf)"
 
 ## Configuration items
-color green "\<(alignment|background|border_margin|border_width|cpu_avg_samples|default_color|default_shade_color|default_outline_color|double_buffer|draw_borders|draw_graph_borders|draw_shades|draw_outline|font|gap_x|gap_y|imap|mail_spool|max_port_monitor_connections|max_specials|max_user_text|maximum_width|minimum_size|mpd_host|mpd_port|mpd_password|music_player_interval|net_avg_samples|no_buffers|out_to_console|override_utf8_locale|own_window|own_window_class|own_window_colour|own_window_hints|own_window_title|own_window_transparent|own_window_type|pad_percents|pop3|stippled_borders|total_run_times|update_interval|uppercase|use_spacer|use_xft|xftalpha|xftfont)\>"
+color green "\<(alignment|background|border_margin|border_width|cpu_avg_samples|default_color|default_shade_color|default_outline_color|double_buffer|draw_borders|draw_graph_borders|draw_shades|draw_outline|font|gap_x|gap_y|imap|mail_spool|max_port_monitor_connections|max_specials|max_user_text|maximum_width|minimum_size|mpd_host|mpd_port|mpd_password|music_player_interval|net_avg_samples|no_buffers|out_to_console|override_utf8_locale|own_window|own_window_class|own_window_colour|own_window_hints|own_window_title|own_window_transparent|own_window_type|pad_percents|pop3|show_graph_scale|stippled_borders|total_run_times|update_interval|uppercase|use_spacer|use_xft|xftalpha|xftfont)\>"
 
 ## Variables
-color brightblue "\<(acpiacadapter|acpifan|acpitemp|acpitempf|addr|adt746xcpu|adt746xfan|align|alignr|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|battery_time|bmpx_album|bmpx_artist|bmpx_bitrate|bmpx_title|bmpx_track|bmpx_uri|buffers|cached|color|colour|cpu|cpubar|cpugraph|diskio|diskiograph|downspeed|downspeedf|downspeedgraph|else|entropy_avail|entropy_bar|entropy_poolsize|exec|execbar|execgraph|execi|execibar|execigraph|font|freq|freq_dyn|freq_dyn_g|freq_g|fs_bar|fs_free|fs_free_perc|fs_size|fs_used|goto|hddtemp|head|hr|hwmon|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_cpu_tempf|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|if_existing|if_running|if_mounted|kernel|linkstatus|loadavg|machine|mails|mem|membar|memmax|memperc|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_smart|mpd_status|mpd_title|mpd_vol|new_mails|nodename|offset|outlinecolor|platform|pre_exec|processes|running_processes|shadecolor|stippled_hr|swap|swapbar|swapmax|swapperc|sysname|tab|tail|tcp_portmon|texeci|time|top|top_mem|totaldown|totalup|tztime|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|voffset|voltage_mv|voltage_v|xmms2_artist|xmms2_album|xmms2_title|xmms2_genre|xmms2_comment|xmms2_url|xmms2_tracknr|xmms2_bitrate|xmms2_id|xmms2_duration|xmms2_elapsed|xmms2_size|xmms2_percent|xmms2_status|xmms2_bar|xmms2_smart|xmms2_date|xmms2_timesplayed|xmms2_playlist)\>"
+color brightblue "\<(acpiacadapter|acpifan|acpitemp|acpitempf|addr|adt746xcpu|adt746xfan|align|alignr|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|battery_time|bmpx_album|bmpx_artist|bmpx_bitrate|bmpx_title|bmpx_track|bmpx_uri|buffers|cached|color|colour|cpu|cpubar|cpugraph|diskio|diskiograph|downspeed|downspeedf|downspeedgraph|else|entropy_avail|entropy_bar|entropy_poolsize|exec|execbar|execgraph|execi|execibar|execigraph|font|freq|freq_dyn|freq_dyn_g|freq_g|fs_bar|fs_free|fs_free_perc|fs_size|fs_used|goto|hddtemp|head|hr|hwmon|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_cpu_tempf|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|if_existing|if_running|if_mounted|kernel|linkstatus|loadavg|loadgraph|machine|mails|mem|membar|memmax|memperc|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_smart|mpd_status|mpd_title|mpd_vol|new_mails|nodename|offset|outlinecolor|platform|pre_exec|processes|running_processes|shadecolor|stippled_hr|swap|swapbar|swapmax|swapperc|sysname|tab|tail|tcp_portmon|texeci|time|top|top_mem|totaldown|totalup|tztime|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|voffset|voltage_mv|voltage_v|wireless_essid|wireless_mode|wireless_bitrate|wireless_ap|wireless_link_qual|wireless_link_qual_max|wireless_link_qual_perc|wireless_link_bar|xmms2_artist|xmms2_album|xmms2_title|xmms2_genre|xmms2_comment|xmms2_url|xmms2_tracknr|xmms2_bitrate|xmms2_id|xmms2_duration|xmms2_elapsed|xmms2_size|xmms2_percent|xmms2_status|xmms2_bar|xmms2_smart|xmms2_date|xmms2_timesplayed|xmms2_playlist)\>"
 color brightblue "\$\{?[0-9A-Z_!@#$*?-]+\}?"
 color cyan "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
 color brightred "^TEXT$"
index fdd5318..aa1c0ba 100644 (file)
@@ -54,6 +54,7 @@ syn keyword ConkyrcSetting
         \ own_window_type
         \ pad_percents
         \ pop3
+        \ show_graph_scale
         \ stippled_borders
         \ total_run_times
         \ update_interval
@@ -188,6 +189,7 @@ syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour skipw
         \ kernel
         \ linkstatus
         \ loadavg
+        \ loadgraph
         \ machine
         \ mails
         \ mem
@@ -241,6 +243,14 @@ syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour skipw
         \ voffset
         \ voltage_mv
         \ voltage_v
+       \ wireless_essid
+       \ wireless_mode
+       \ wireless_bitrate
+       \ wireless_ap
+       \ wireless_link_qual
+       \ wireless_link_qual_max
+       \ wireless_link_qual_perc
+       \ wireless_link_bar
         \ xmms2_artist
         \ xmms2_album
         \ xmms2_title
index 5052f76..a8c5a47 100644 (file)
@@ -334,6 +334,8 @@ static int cpu_avg_samples, net_avg_samples;
 
 #ifdef X11
 
+static int show_graph_scale;
+
 /* Position on the screen */
 static int text_alignment;
 static int gap_x, gap_y;
@@ -522,6 +524,7 @@ struct special_t {
        long arg;
        double *graph;
        double graph_scale;
+       short show_scale;
        int graph_width;
        int scaled;
        unsigned long first_colour;     // for graph gradient
@@ -782,8 +785,10 @@ static void new_graph(char *buf, int w, int h, unsigned int first_colour,
        } */
        if (s->scaled) {
                s->graph_scale = 1;
+               s->show_scale = 1;
        } else {
                s->graph_scale = scale;
+               s->show_scale = 0;
        }
        if (append) {
                graph_append(s, i);
@@ -1089,6 +1094,7 @@ enum text_object_type {
        OBJ_cpu,
        OBJ_cpubar,
        OBJ_cpugraph,
+       OBJ_loadgraph,
        OBJ_diskio,
        OBJ_diskio_read,
        OBJ_diskio_write,
@@ -1433,6 +1439,9 @@ struct text_object {
                        char *addr;
                        int port;
                        char *dev;
+                       double update_time;
+                       char *temp;
+                       char unit;
                } hddtemp;              /* 2 */
 #endif
 #ifdef RSS
@@ -2623,6 +2632,17 @@ static struct text_object *construct_text_object(const char *s,
                        }
                        free(buf);
                }
+       END OBJ(loadgraph, INFO_LOADAVG)
+               char *buf = scan_graph(arg, &obj->a, &obj->b, &obj->c, &obj->d,
+                               &obj->e);
+               if (buf) {
+                       int a = 1, r = 3;
+                       if (arg) {
+                               r = sscanf(arg, "%d", &a);
+                       }
+                       obj->data.loadavg[0] = (r >= 1) ? (unsigned char) a : 0;
+                       free(buf);
+               }
        END OBJ(diskio, INFO_DISKIO)
                if (arg) {
                        obj->data.diskio = prepare_diskio_stat(DEV_NAME(arg));
@@ -3756,6 +3776,7 @@ static struct text_object *construct_text_object(const char *s,
                        ERR("hddtemp needs arguments");
                        obj->type = OBJ_text;
                        obj->data.s = strndup("${hddtemp}", text_buffer_size);
+                       obj->data.hddtemp.update_time = 0;
                        return NULL;
                }
 #endif
@@ -4351,7 +4372,7 @@ static void generate_text_internal(char *p, int p_max_size,
                                if (obj->data.cpu_index > info.cpu_count) {
                                        printf("obj->data.cpu_index %i info.cpu_count %i",
                                                obj->data.cpu_index, info.cpu_count);
-                                       CRIT_ERR("attempting to use more CPUs then you have!");
+                                       CRIT_ERR("attempting to use more CPUs than you have!");
                                }
                                spaced_print(p, p_max_size, "%*d", 4, "cpu", pad_percents,
                                        round_to_int(cur->cpu_usage[obj->data.cpu_index] * 100.0));
@@ -4365,6 +4386,10 @@ static void generate_text_internal(char *p, int p_max_size,
                                        round_to_int(cur->cpu_usage[obj->data.cpu_index] * 100),
                                        100, 1);
                        }
+                       OBJ(loadgraph) {
+                               new_graph(p, obj->a, obj->b, obj->c, obj->d, cur->loadavg[0],
+                                       obj->e, 1);
+                       }
                        OBJ(color) {
                                new_fg(p, obj->data.l);
                        }
@@ -5285,17 +5310,17 @@ static void generate_text_internal(char *p, int p_max_size,
 #endif
 #ifdef HDDTEMP
                        OBJ(hddtemp) {
-                               char *temp;
-                               char unit;
-
-                               temp = get_hddtemp_info(obj->data.hddtemp.dev,
-                                       obj->data.hddtemp.addr, obj->data.hddtemp.port, &unit);
-                               if (!temp) {
+                               if (obj->data.hddtemp.update_time < current_update_time - 30) {
+                                       obj->data.hddtemp.temp = get_hddtemp_info(obj->data.hddtemp.dev,
+                                                       obj->data.hddtemp.addr, obj->data.hddtemp.port, &obj->data.hddtemp.unit);
+                                       obj->data.hddtemp.update_time = current_update_time;
+                               }
+                               if (!obj->data.hddtemp.temp) {
                                        snprintf(p, p_max_size, "N/A");
-                               } else if (unit == '*') {
-                                       snprintf(p, p_max_size, "%s", temp);
+                               } else if (obj->data.hddtemp.unit == '*') {
+                                       snprintf(p, p_max_size, "%s", obj->data.hddtemp.temp);
                                } else {
-                                       snprintf(p, p_max_size, "%s%c", temp, unit);
+                                       snprintf(p, p_max_size, "%s%c", obj->data.hddtemp.temp, obj->data.hddtemp.unit);
                                }
                        }
 #endif
@@ -5435,7 +5460,7 @@ static void generate_text_internal(char *p, int p_max_size,
                        OBJ(memgraph) {
                                new_graph(p, obj->a, obj->b, obj->c, obj->d,
                                        cur->memmax ? (cur->mem * 100.0) / (cur->memmax) : 0.0,
-                                       100, 1);
+                                       100, 0);
                        }
 
                        /* mixer stuff */
@@ -6745,6 +6770,7 @@ static void draw_line(char *s)
        char *p;
        int cur_y_add = 0;
        short font_h;
+       char *tmp_str;
 
        cur_x = text_start_x;
        cur_y += font_ascent();
@@ -6838,6 +6864,8 @@ static void draw_line(char *s)
                                        float gradient_update = 0;
                                        unsigned long last_colour = current_color;
                                        unsigned long tmpcolour = current_color;
+                                       int show_scale_x = cur_x + font_ascent() / 2;
+                                       int show_scale_y = cur_y + font_height() / 2;
                                        if (cur_x - text_start_x > maximum_width
                                                        && maximum_width > 0) {
                                                break;
@@ -6905,6 +6933,20 @@ static void draw_line(char *s)
                                        } else {
                                                set_foreground_color(default_fg_color);
                                        } */
+                                       if (show_graph_scale && (specials[special_index].show_scale == 1)) {
+                                               int tmp_x = cur_x;
+                                               int tmp_y = cur_y;
+                                               cur_x = show_scale_x;
+                                               cur_y = show_scale_y;
+                                               tmp_str = (char *)
+                                                       calloc(log10(floor(specials[special_index].graph_scale)) + 4,
+                                                                       sizeof(char));
+                                               sprintf(tmp_str, "%.1f", specials[special_index].graph_scale);
+                                               draw_string(tmp_str);
+                                               free(tmp_str);
+                                               cur_x = tmp_x;
+                                               cur_y = tmp_y;
+                                       }
                                        set_foreground_color(last_colour);
                                        break;
                                }
@@ -7755,6 +7797,7 @@ static void set_default_configurations(void)
        out_to_console = 1;
 #endif
 #ifdef X11
+       show_graph_scale = 0;
        default_fg_color = WhitePixel(display, screen);
        default_bg_color = BlackPixel(display, screen);
        default_out_color = BlackPixel(display, screen);
@@ -7907,6 +7950,9 @@ static void load_config_file(const char *f)
                }
 #endif /* X11 */
 #ifdef X11
+               CONF("show_graph_scale") {
+                       show_graph_scale = string_to_bool(value);
+               }
                CONF("border_margin") {
                        if (value) {
                                border_margin = strtol(value, 0, 0);