added $execpi, new ebuild, various other misc updates
authorBrenden Matthews <brenden1@rty.ca>
Sat, 22 Mar 2008 06:10:54 +0000 (06:10 +0000)
committerBrenden Matthews <brenden1@rty.ca>
Sat, 22 Mar 2008 06:10:54 +0000 (06:10 +0000)
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1027 7f574dfc-610e-0410-a909-a81674777703

ChangeLog
README
app-admin/conky/conky-1.5.0.ebuild [new file with mode: 0644]
doc/Makefile.am
doc/conky.1
doc/conky.conf [new file with mode: 0644]
doc/conkyrc.sample [deleted file]
doc/variables.xml
extras/nano/conky.nanorc
extras/vim/syntax/conkyrc.vim
src/conky.c

index 4e28738..97bc3e3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,7 +4,7 @@
        * Added CRLF characters to POP3 and IMAP stuff (should play nicer with
        some servers now).
        * Added preliminary support for parsing the output of external commands
-       (via $execp)
+       (via $execp and $execpi)
        * Applied FreeBSD total memory patch (thanks Nikos)
 
 2008-03-19
diff --git a/README b/README
index 8892073..7d8c19e 100644 (file)
--- a/README
+++ b/README
@@ -720,20 +720,6 @@ VARIABLES
              recommend coding wanted behaviour in C and posting a patch.
 
 
-       execp command
-             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.
-
-
        execbar command
              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 the
@@ -757,37 +743,58 @@ VARIABLES
              Same as execigraph, but takes an interval arg graphs values
 
 
+       execp command
+             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.
+
+
+       execpi interval command
+             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.
+
+
        font (font)
-             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
+             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)
 
 
        freq (n)
-             Returns  CPU  #n's frequency in MHz. CPUs are counted from 1. If
+             Returns CPU #n's frequency in MHz. CPUs are counted from  1.  If
              omitted, the parameter defaults to 1.
 
 
        freq_g (n)
-             Returns CPU #n's frequency in GHz. CPUs are counted from  1.  If
+             Returns  CPU  #n's frequency in GHz. CPUs are counted from 1. If
              omitted, the parameter defaults to 1.
 
 
        freq_dyn
-             Returns  CPU  frequency in MHz, but is calculated by counting to
-             clock cycles to complete  an  instruction.  Only  available  for
+             Returns CPU frequency in MHz, but is calculated by  counting  to
+             clock  cycles  to  complete  an  instruction. Only available for
              x86/amd64.
 
 
        freq_dyn_g
-             Returns  CPU  frequency in GHz, but is calculated by counting to
-             clock cycles to complete  an  instruction.  Only  available  for
+             Returns CPU frequency in GHz, but is calculated by  counting  to
+             clock  cycles  to  complete  an  instruction. Only available for
              x86/amd64.
 
 
        fs_bar (height),(width) fs
-             Bar  that  shows how much space is used on a file system. height
+             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.
 
 
@@ -815,14 +822,14 @@ VARIABLES
 
 
        hddtemp dev, (host,(port))
-             Displays temperature of a selected hard disk drive  as  reported
-             by  the  hddtemp  daemon  running on host:port.  Default host is
+             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.
 
 
        head logfile lines (interval)
-             Displays first N lines of supplied text text file.  If  interval
-             is  not  supplied,  Conky assumes 2x Conky's interval. Max of 30
+             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.
 
 
@@ -831,16 +838,16 @@ VARIABLES
 
 
        hwmon (dev) type n
-             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'  (Cel-
-             sius)  or  'tempf' (Fahrenheit) meaning temperature. Parameter n
-             is number of the sensor. See  /sys/class/hwmon/  on  your  local
+             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' (Cel-
+             sius) or 'tempf' (Fahrenheit) meaning temperature.  Parameter  n
+             is  number  of  the  sensor. See /sys/class/hwmon/ on your local
              computer.
 
 
        iconv_start codeset_from codeset_to
-             Convert  text from one codeset to another using GNU iconv. Needs
+             Convert text from one codeset to another using GNU iconv.  Needs
              to be stopped with iconv_stop.
 
 
@@ -849,75 +856,75 @@ VARIABLES
 
 
        i2c (dev) type n
-             I2C sensor from sysfs (Linux 2.6). Parameter dev may be  omitted
-             if  you  have only one I2C device. Parameter type is either 'in'
+             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' (Celsius) or
-             'tempf'  (Fahrenheit) meaning temperature. Parameter n is number
+             'tempf' (Fahrenheit) meaning temperature. Parameter n is  number
              of the sensor. See /sys/bus/i2c/devices/ on your local computer.
 
 
        i8k_ac_status
-             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
+             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.
 
 
        i8k_bios
-             If running the i8k kernel driver for Inspiron laptops,  displays
+             If  running the i8k kernel driver for Inspiron laptops, displays
              the bios version as listed in /proc/i8k.
 
 
        i8k_buttons_status
-             If  running the i8k kernel driver for Inspiron laptops, displays
+             If running the i8k kernel driver for Inspiron laptops,  displays
              the volume buttons status as listed in /proc/i8k.
 
 
        i8k_cpu_temp
-             If running the i8k kernel driver for Inspiron laptops,  displays
+             If  running the i8k kernel driver for Inspiron laptops, displays
              the cpu temperature in Celsius, as reported by /proc/i8k.
 
 
        i8k_cpu_tempf
-             If  running the i8k kernel driver for Inspiron laptops, displays
+             If running the i8k kernel driver for Inspiron laptops,  displays
              the cpu temperature in Fahrenheit, as reported by /proc/i8k.
 
 
        i8k_left_fan_rpm
-             If running the i8k kernel driver for Inspiron laptops,  displays
-             the  left  fan's  rate of rotation, in revolutions per minute as
+             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.
 
 
        i8k_left_fan_status
-             If  running the i8k kernel driver for Inspiron laptops, displays
+             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-
+             readable). Beware, some laptops i8k reports these  fans  in  re-
              verse order.
 
 
        i8k_right_fan_rpm
-             If running the i8k kernel driver for Inspiron laptops,  displays
-             the  right  fan's rate of rotation, in revolutions per minute as
+             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.
 
 
        i8k_right_fan_status
-             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
+             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.
 
 
        i8k_serial
-             If running the i8k kernel driver for Inspiron laptops,  displays
+             If  running the i8k kernel driver for Inspiron laptops, displays
              your laptop serial number as listed in /proc/i8k.
 
 
        i8k_version
-             If  running the i8k kernel driver for Inspiron laptops, displays
+             If running the i8k kernel driver for Inspiron laptops,  displays
              the version formatting of /proc/i8k.
 
 
@@ -926,13 +933,13 @@ VARIABLES
 
 
        ibm_temps N
-             If running the IBM ACPI, displays the temperatures from the  IBM
+             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.
 
 
        ibm_volume
-             If running the IBM ACPI,  displays  the  "master"  volume,  con-
+             If  running  the  IBM  ACPI,  displays the "master" volume, con-
              trolled by the volume keys (0-14).
 
 
@@ -942,19 +949,19 @@ VARIABLES
 
 
        if_empty (var)
-             if conky variable  VAR  is  empty,  display  everything  between
+             if  conky  variable  VAR  is  empty,  display everything between
              $if_empty and the matching $endif
 
 
        if_running (process)
-             if  PROCESS  is  running, display everything $if_running and the
+             if PROCESS is running, display everything  $if_running  and  the
              matching $endif
 
 
        if_existing file (string)
-             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  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.
 
 
@@ -964,8 +971,8 @@ VARIABLES
 
 
        if_smapi_bat_installed (INDEX)
-             when using smapi, if the battery with index INDEX is  installed,
-             display   everything  between  $if_smapi_bat_installed  and  the
+             when  using smapi, if the battery with index INDEX is installed,
+             display  everything  between  $if_smapi_bat_installed  and   the
              matching $endif
 
 
@@ -976,9 +983,9 @@ VARIABLES
 
        imap_messages (args)
              Displays the number of messages in your global IMAP inbox by de-
-             fault. You can define  individual  IMAP  inboxes  seperately  by
+             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]". Default port is 143,  de-
+             [-i  interval] [-p port] [-e command]". Default port is 143, de-
              fault interval is 5 minutes. If the password is supplied as '*',
              you will be prompted to enter the password when Conky starts.
 
@@ -987,7 +994,7 @@ VARIABLES
              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]". Default port is 143, de-
+             [-i interval] [-p port] [-e command]". Default port is 143,  de-
              fault interval is 5 minutes. If the password is supplied as '*',
              you will be prompted to enter the password when Conky starts.
 
@@ -1005,16 +1012,16 @@ VARIABLES
 
 
        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"}
 
 
@@ -1112,26 +1119,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.
 
 
@@ -1139,17 +1146,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.
 
@@ -1172,21 +1179,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.
 
 
@@ -1230,36 +1237,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.
 
 
@@ -1268,8 +1275,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.
 
 
@@ -1284,7 +1291,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
 
 
@@ -1293,23 +1300,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", and "time". There can be a max of  10  pro-
+             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", and "time". There can be a max of 10 pro-
              cesses listed.
 
 
@@ -1333,9 +1340,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.
 
 
@@ -1363,12 +1370,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.
 
 
@@ -1496,11 +1503,11 @@ 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.
 
 SEE ALSO
diff --git a/app-admin/conky/conky-1.5.0.ebuild b/app-admin/conky/conky-1.5.0.ebuild
new file mode 100644 (file)
index 0000000..926c481
--- /dev/null
@@ -0,0 +1,137 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit eutils
+# used for epause
+
+DESCRIPTION="An advanced, highly configurable system monitor for X"
+HOMEPAGE="http://conky.sourceforge.net/"
+SRC_URI="mirror://sourceforge/conky/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="audacious audacious-legacy bmpx debug hddtemp ipv6 mpd nano-syntax rss truetype vim-syntax
+smapi wifi X"
+
+DEPEND_COMMON="
+       virtual/libc
+       X? (
+               x11-libs/libICE
+               x11-libs/libXext
+               x11-libs/libX11
+               x11-libs/libSM
+               x11-libs/libXrender
+               x11-libs/libXdamage
+               x11-libs/libXft
+               truetype? ( >=media-libs/freetype-2 )
+               audacious? ( >=media-sound/audacious-1.4.0 )
+               audacious-legacy? ( <media-sound/audacious-1.4.0 )
+               bmpx? ( media-sound/bmpx
+                               >=sys-apps/dbus-0.35
+                       )
+       )
+       rss? ( dev-libs/libxml2
+                       net-misc/curl
+                       )
+       wifi? ( net-wireless/wireless-tools )
+       !ipv6? ( >=dev-libs/glib-2.0 )"
+RDEPEND="${DEPEND_COMMON}
+       hddtemp? ( app-admin/hddtemp )
+       vim-syntax? ( || ( app-editors/vim
+       app-editors/gvim ) )
+       nano-syntax? ( app-editors/nano )"
+
+DEPEND="
+       ${DEPEND_COMMON}
+       X? (
+               x11-libs/libXt
+               x11-proto/xextproto
+               x11-proto/xproto
+       )"
+
+pkg_setup() {
+       if use audacious; then
+               if has_version <media-sound/audacious-1.5.0 && ! built_with_use media-sound/audacious dbus; then
+                       eerror "media-sound/audacious is not built with dbus USE flag."
+                       eerror "Please add 'dbus' to your USE flags, and re-emerge media-sound/audacious."
+                       die "media-sound/audacious needs USE=dbus"
+               fi
+       fi
+}
+
+src_compile() {
+       local mymake
+       if useq ipv6 ; then
+               ewarn "You have the ipv6 USE flag enabled.  Please note that using"
+               ewarn "the ipv6 USE flag with Conky disables the port monitor."
+               epause
+       else
+               mymake="MPD_NO_IPV6=noipv6"
+       fi
+       local myconf
+       myconf="--enable-proc-uptime"
+       if useq X; then
+               myconf="${myconf} --enable-x11 --enable-double-buffer --enable-xdamage --enable-own-window"
+               myconf="${myconf} $(use_enable truetype xft)"
+       else
+               myconf="${myconf} --disable-x11 --disable-double-buffer --disable-xdamage --disable-own-window"
+               myconf="${myconf} --disable-xft"
+       fi
+       if useq audacious-legacy; then
+               myconf="${myconf} --enable-audacious=legacy"
+       elif useq audacious; then
+               myconf="${myconf} --enable-audacious"
+       fi
+       econf \
+               ${myconf} \
+               $(use_enable bmpx) \
+               $(use_enable debug) \
+               $(use_enable hddtemp ) \
+               $(use_enable mpd) \
+               $(use_enable rss) \
+               $(use_enable smapi) \
+               $(use_enable wifi wlan) \
+               $(use_enable !ipv6 portmon) || die "econf failed"
+       emake ${mymake} || die "compile failed"
+}
+
+src_install() {
+       emake DESTDIR="${D}" install || die "make install failed"
+       dodoc ChangeLog AUTHORS README
+       dohtml doc/docs.html doc/config_settings.html doc/variables.html
+
+       if use vim-syntax; then
+               insinto /usr/share/vim/vimfiles/ftdetect
+               doins "${S}"/extras/vim/ftdetect/conkyrc.vim
+
+               insinto /usr/share/vim/vimfiles/syntax
+               doins "${S}"/extras/vim/syntax/conkyrc.vim
+       fi
+
+       if use nano-syntax; then
+               insinto /usr/share/nano/
+               doins "${S}"/extras/nano/conky.nanorc
+       fi
+}
+
+pkg_postinst() {
+       elog "You can find the sample configuration file at"
+       elog "/etc/conky/conky.conf.  To customize it, copy"
+       elog "/etc/conky/conky.conf to ~/.conkyrc and edit"
+       elog "it to your liking."
+       elog
+       elog "For more info on Conky's new features,"
+       elog "please look at the README and ChangeLog:"
+       elog "/usr/share/doc/${PF}/README.bz2"
+       elog "/usr/share/doc/${PF}/ChangeLog.bz2"
+       elog "There are also pretty html docs available"
+       elog "on Conky's site or in /usr/share/doc/${PF}"
+       elog
+       elog "Also see http://www.gentoo.org/doc/en/conky-howto.xml"
+       elog
+       elog "Vim syntax highlighting for conkyrc now enabled with"
+       elog "USE=vim-syntax, for Nano with USE=nano-syntax"
+       elog
+}
index 28e0e52..64267ea 100644 (file)
@@ -24,6 +24,8 @@ endif
 
 man_MANS = conky.1
 
-EXTRA_DIST = $(DOCS) conkyrc.sample command_options.xml config_settings.xml docgen.sh docs.xml variables.xml variables.xsl config_settings.xsl
+sysconf_SYSCONFS = conky.conf
+
+EXTRA_DIST = $(DOCS) conky.conf command_options.xml config_settings.xml docgen.sh docs.xml variables.xml variables.xsl config_settings.xsl
 
 # vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
index e9bed58..103443a 100644 (file)
@@ -676,11 +676,6 @@ Total size of system entropy pool for crypto freaks
 Executes a shell command and displays the output in conky. warning: this takes a lot more resources than other variables. I'd recommend coding wanted behaviour in C and posting a patch.
 
 .TP 
-\fB\*(T<\fBexecp\fR\*(T>\fR \*(T<\fBcommand\fR\*(T> 
-Executes a shell command and displays the output in conky. warning: 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 anything like $execi within an $execp statement, it will functionally run at the same interval that the $execp statement runs, as it is created and destroyed at every interval.
-
-.TP 
 \fB\*(T<\fBexecbar\fR\*(T>\fR \*(T<\fBcommand\fR\*(T> 
 Same as exec, except if the first value return is a value between 0-100, it will use that number for a bar. The size for the bar is currently fixed, but that may change in the future.
 
@@ -701,6 +696,15 @@ Same as execbar, except with an interval
 Same as execigraph, but takes an interval arg graphs values
 
 .TP 
+\fB\*(T<\fBexecp\fR\*(T>\fR \*(T<\fBcommand\fR\*(T> 
+Executes a shell command and displays the output in conky. warning: 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 anything like $execi within an $execp statement, it will functionally run at the same interval that the $execp statement runs, as it is created and destroyed at every interval.
+
+.TP 
+\fB\*(T<\fBexecpi\fR\*(T>\fR \*(T<\fBinterval command\fR\*(T> 
+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 interval.
+
+.TP 
 \fB\*(T<\fBfont\fR\*(T>\fR \*(T<\fB(font)\fR\*(T> 
 Specify a different font. This new font will apply to the current line and everything following. You can use a $font with no arguments to change back to the default font (much like with $color)
 
diff --git a/doc/conky.conf b/doc/conky.conf
new file mode 100644 (file)
index 0000000..bb1d3da
--- /dev/null
@@ -0,0 +1,189 @@
+# Conky sample configuration
+#
+# the list of variables has been removed from this file in favour
+# of keeping the documentation more maintainable.
+# Check http://conky.sf.net for an up-to-date-list.
+
+# set to yes if you want Conky to be forked in the background
+background no
+
+# X font when Xft is disabled, you can pick one with program xfontsel
+#font 5x7
+#font 6x10
+#font 7x13
+#font 8x13
+#font 9x15
+#font *mintsmild.se*
+#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
+
+# Use Xft?
+use_xft yes
+
+# Xft font when Xft is enabled
+xftfont Bitstream Vera Sans Mono:size=8
+
+# Text alpha when using Xft
+xftalpha 0.8
+
+# Print everything to stdout?
+# out_to_console no
+
+# MPD host/port
+# mpd_host localhost
+# mpd_port 6600
+# mpd_password tinker_bell
+
+# Print everything to console?
+# out_to_console no
+
+# mail spool
+mail_spool $MAIL
+
+# Update interval in seconds
+update_interval 5.0
+
+# This is the number of times Conky will update before quitting.
+# Set to zero to run forever.
+total_run_times 0
+
+# Create own window instead of using desktop (required in nautilus)
+own_window yes
+
+# If own_window is yes, you may use type normal, desktop or override
+own_window_type normal
+
+# Use pseudo transparency with own_window?
+own_window_transparent yes
+
+# If own_window_transparent is set to no, you can set the background colour here
+own_window_colour hotpink
+
+# If own_window is yes, these window manager hints may be used
+#own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
+
+# Use double buffering (reduces flicker, may not work for everyone)
+double_buffer yes
+
+# Minimum size of text area
+minimum_size 280 5
+
+# Draw shades?
+draw_shades yes
+
+# Draw outlines?
+draw_outline no
+
+# Draw borders around text
+draw_borders yes
+
+# Draw borders around graphs
+draw_graph_borders yes
+
+# Stippled borders?
+stippled_borders 8
+
+# border margins
+border_margin 4
+
+# border width
+border_width 1
+
+# Default colors and also border colors
+default_color white
+default_shade_color black
+default_outline_color black
+
+# Text alignment, other possible values are commented
+#alignment top_left
+#alignment top_right
+alignment bottom_left
+#alignment bottom_right
+#alignment none
+
+# Gap between borders of screen and text
+# same thing as passing -x at command line
+gap_x 12
+gap_y 12
+
+# Subtract file system buffers from used memory?
+no_buffers yes
+
+# set to yes if you want all text to be in uppercase
+uppercase no
+
+# number of cpu samples to average
+# set to 1 to disable averaging
+cpu_avg_samples 2
+
+# number of net samples to average
+# set to 1 to disable averaging
+net_avg_samples 2
+
+# Force UTF8? note that UTF8 support required XFT
+override_utf8_locale no
+
+# Add spaces to keep things from moving about?  This only affects certain objects.
+use_spacer 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
+
+# Maximum number of special things, e.g. fonts, offsets, aligns, etc.
+#max_specials 512
+
+# Maximum size of buffer for user text, i.e. below TEXT line.
+#max_user_text 16384
+
+# Timing interval for music player thread, e.g. mpd, audacious
+#music_player_interval (update_interval is default)
+
+# variable is given either in format $variable or in ${variable}. Latter
+# allows characters right after the variable and must be used in network
+# stuff because of an argument
+
+# stuff after 'TEXT' will be formatted on screen
+
+TEXT
+$nodename - $sysname $kernel on $machine
+$stippled_hr
+${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
+${color lightgrey}CPU Usage:${color #cc2222} $cpu% ${cpubar}
+${color red}${cpugraph 0000ff 00ff00}
+${color lightgrey}RAM Usage:$color $mem/$memmax - $memperc% ${membar}
+${color lightgrey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar}
+${color lightgrey}Processes:$color $processes  ${color grey}Running:$color $running_processes
+$color$stippled_hr
+${color lightgrey}Networking:
+ Down:${color #8844ee} ${downspeed eth0} k/s${color lightgrey} ${offset 80}Up:${color #22ccff} ${upspeed eth0} k/s
+${color #0000ff}${downspeedgraph eth0 32,150 ff0000 0000ff} ${color #22ccff}${upspeedgraph eth0 32,150 0000ff ff0000}
+${color lightgrey}File systems:
+ / $color${fs_used /}/${fs_size /} ${fs_bar /}
+${color #88aadd}MPD: ${alignc}$mpd_artist - $mpd_title
+${color #88aadd}$mpd_bar
+${color #88aadd}${alignc}$mpd_status
+${color}Name              PID     CPU%   MEM%
+${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
+${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
+${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
+${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
+${color}Mem usage
+${color #ddaa00} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
+${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
+${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
+$stippled_hr
+${color #ddaa00}Port(s)${alignr}#Connections   
+$color Inbound: ${tcp_portmon 1 32767 count}  Outbound: ${tcp_portmon 32768 61000 count}${alignr}ALL: ${tcp_portmon 1 65535 count}
+${color #ddaa00}Inbound Connection ${alignr} Local Service/Port$color
+ ${tcp_portmon 1 32767 rhost 0} ${alignr} ${tcp_portmon 1 32767 lservice 0}
+ ${tcp_portmon 1 32767 rhost 1} ${alignr} ${tcp_portmon 1 32767 lservice 1}
+ ${tcp_portmon 1 32767 rhost 2} ${alignr} ${tcp_portmon 1 32767 lservice 2}
+ ${tcp_portmon 1 32767 rhost 3} ${alignr} ${tcp_portmon 1 32767 lservice 3}
+ ${tcp_portmon 1 32767 rhost 4} ${alignr} ${tcp_portmon 1 32767 lservice 4}
+ ${tcp_portmon 1 32767 rhost 5} ${alignr} ${tcp_portmon 1 32767 lservice 5}
+${color #ddaa00}Outbound Connection ${alignr} Remote Service/Port$color
+ ${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}
+ ${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}
+ ${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}
+ ${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3}
+ ${tcp_portmon 32768 61000 rhost 4} ${alignr} ${tcp_portmon 32768 61000 rservice 4}
+ ${tcp_portmon 32768 61000 rhost 5} ${alignr} ${tcp_portmon 32768 61000 rservice 5}
diff --git a/doc/conkyrc.sample b/doc/conkyrc.sample
deleted file mode 100644 (file)
index bb1d3da..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-# Conky sample configuration
-#
-# the list of variables has been removed from this file in favour
-# of keeping the documentation more maintainable.
-# Check http://conky.sf.net for an up-to-date-list.
-
-# set to yes if you want Conky to be forked in the background
-background no
-
-# X font when Xft is disabled, you can pick one with program xfontsel
-#font 5x7
-#font 6x10
-#font 7x13
-#font 8x13
-#font 9x15
-#font *mintsmild.se*
-#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
-
-# Use Xft?
-use_xft yes
-
-# Xft font when Xft is enabled
-xftfont Bitstream Vera Sans Mono:size=8
-
-# Text alpha when using Xft
-xftalpha 0.8
-
-# Print everything to stdout?
-# out_to_console no
-
-# MPD host/port
-# mpd_host localhost
-# mpd_port 6600
-# mpd_password tinker_bell
-
-# Print everything to console?
-# out_to_console no
-
-# mail spool
-mail_spool $MAIL
-
-# Update interval in seconds
-update_interval 5.0
-
-# This is the number of times Conky will update before quitting.
-# Set to zero to run forever.
-total_run_times 0
-
-# Create own window instead of using desktop (required in nautilus)
-own_window yes
-
-# If own_window is yes, you may use type normal, desktop or override
-own_window_type normal
-
-# Use pseudo transparency with own_window?
-own_window_transparent yes
-
-# If own_window_transparent is set to no, you can set the background colour here
-own_window_colour hotpink
-
-# If own_window is yes, these window manager hints may be used
-#own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
-
-# Use double buffering (reduces flicker, may not work for everyone)
-double_buffer yes
-
-# Minimum size of text area
-minimum_size 280 5
-
-# Draw shades?
-draw_shades yes
-
-# Draw outlines?
-draw_outline no
-
-# Draw borders around text
-draw_borders yes
-
-# Draw borders around graphs
-draw_graph_borders yes
-
-# Stippled borders?
-stippled_borders 8
-
-# border margins
-border_margin 4
-
-# border width
-border_width 1
-
-# Default colors and also border colors
-default_color white
-default_shade_color black
-default_outline_color black
-
-# Text alignment, other possible values are commented
-#alignment top_left
-#alignment top_right
-alignment bottom_left
-#alignment bottom_right
-#alignment none
-
-# Gap between borders of screen and text
-# same thing as passing -x at command line
-gap_x 12
-gap_y 12
-
-# Subtract file system buffers from used memory?
-no_buffers yes
-
-# set to yes if you want all text to be in uppercase
-uppercase no
-
-# number of cpu samples to average
-# set to 1 to disable averaging
-cpu_avg_samples 2
-
-# number of net samples to average
-# set to 1 to disable averaging
-net_avg_samples 2
-
-# Force UTF8? note that UTF8 support required XFT
-override_utf8_locale no
-
-# Add spaces to keep things from moving about?  This only affects certain objects.
-use_spacer 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
-
-# Maximum number of special things, e.g. fonts, offsets, aligns, etc.
-#max_specials 512
-
-# Maximum size of buffer for user text, i.e. below TEXT line.
-#max_user_text 16384
-
-# Timing interval for music player thread, e.g. mpd, audacious
-#music_player_interval (update_interval is default)
-
-# variable is given either in format $variable or in ${variable}. Latter
-# allows characters right after the variable and must be used in network
-# stuff because of an argument
-
-# stuff after 'TEXT' will be formatted on screen
-
-TEXT
-$nodename - $sysname $kernel on $machine
-$stippled_hr
-${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
-${color lightgrey}CPU Usage:${color #cc2222} $cpu% ${cpubar}
-${color red}${cpugraph 0000ff 00ff00}
-${color lightgrey}RAM Usage:$color $mem/$memmax - $memperc% ${membar}
-${color lightgrey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar}
-${color lightgrey}Processes:$color $processes  ${color grey}Running:$color $running_processes
-$color$stippled_hr
-${color lightgrey}Networking:
- Down:${color #8844ee} ${downspeed eth0} k/s${color lightgrey} ${offset 80}Up:${color #22ccff} ${upspeed eth0} k/s
-${color #0000ff}${downspeedgraph eth0 32,150 ff0000 0000ff} ${color #22ccff}${upspeedgraph eth0 32,150 0000ff ff0000}
-${color lightgrey}File systems:
- / $color${fs_used /}/${fs_size /} ${fs_bar /}
-${color #88aadd}MPD: ${alignc}$mpd_artist - $mpd_title
-${color #88aadd}$mpd_bar
-${color #88aadd}${alignc}$mpd_status
-${color}Name              PID     CPU%   MEM%
-${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
-${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
-${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
-${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
-${color}Mem usage
-${color #ddaa00} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
-${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
-${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
-$stippled_hr
-${color #ddaa00}Port(s)${alignr}#Connections   
-$color Inbound: ${tcp_portmon 1 32767 count}  Outbound: ${tcp_portmon 32768 61000 count}${alignr}ALL: ${tcp_portmon 1 65535 count}
-${color #ddaa00}Inbound Connection ${alignr} Local Service/Port$color
- ${tcp_portmon 1 32767 rhost 0} ${alignr} ${tcp_portmon 1 32767 lservice 0}
- ${tcp_portmon 1 32767 rhost 1} ${alignr} ${tcp_portmon 1 32767 lservice 1}
- ${tcp_portmon 1 32767 rhost 2} ${alignr} ${tcp_portmon 1 32767 lservice 2}
- ${tcp_portmon 1 32767 rhost 3} ${alignr} ${tcp_portmon 1 32767 lservice 3}
- ${tcp_portmon 1 32767 rhost 4} ${alignr} ${tcp_portmon 1 32767 lservice 4}
- ${tcp_portmon 1 32767 rhost 5} ${alignr} ${tcp_portmon 1 32767 lservice 5}
-${color #ddaa00}Outbound Connection ${alignr} Remote Service/Port$color
- ${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}
- ${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}
- ${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}
- ${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3}
- ${tcp_portmon 32768 61000 rhost 4} ${alignr} ${tcp_portmon 32768 61000 rservice 4}
- ${tcp_portmon 32768 61000 rhost 5} ${alignr} ${tcp_portmon 32768 61000 rservice 5}
index 6253781..dbd7ade 100644 (file)
 
 <varlistentry>
        <term>
-               <command><option>execp</option></command>
-       <option>command</option>
-       </term>
-       <listitem>
-               Executes a shell command and displays the output in conky. warning: 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 anything like $execi within an $execp statement, it will functionally run at the same interval that the $execp statement runs, as it is created and destroyed at every interval.
-       <para></para></listitem>
-</varlistentry>
-
-<varlistentry>
-       <term>
                <command><option>execbar</option></command>
        <option>command</option>
        </term>
 
 <varlistentry>
        <term>
+               <command><option>execp</option></command>
+       <option>command</option>
+       </term>
+       <listitem>
+               Executes a shell command and displays the output in conky. warning: 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 anything like $execi within an $execp statement, it will functionally run at the same interval that the $execp statement runs, as it is created and destroyed at every interval.
+       <para></para></listitem>
+</varlistentry>
+
+<varlistentry>
+       <term>
+               <command><option>execpi</option></command>
+               <option>interval command</option>
+       </term>
+       <listitem>
+               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 interval.
+               <para></para></listitem>
+</varlistentry>
+
+<varlistentry>
+       <term>
                <command><option>font</option></command>
        <option>(font)</option>
        </term>
index 9829b65..368e0be 100644 (file)
@@ -1,5 +1,5 @@
 ##
-## Syntax highlighting for conky .rc files.
+## Syntax highlighting for conkyrc files.
 ##
 ## $Id$
 ##
index 5085885..fdd5318 100644 (file)
@@ -69,6 +69,7 @@ syn keyword ConkyrcConstant
         \ below
         \ bottom_left
         \ bottom_right
+        \ bottom_middle
         \ desktop
         \ no
         \ none
@@ -79,6 +80,9 @@ syn keyword ConkyrcConstant
         \ sticky
         \ top_left
         \ top_right
+        \ top_middle
+        \ middle_left
+        \ middle_right
         \ undecorated
         \ yes
 
@@ -150,6 +154,7 @@ syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour skipw
         \ execi
         \ execibar
         \ execigraph
+        \ execp
         \ font
         \ freq
         \ freq_dyn
index b626aed..2c2ac74 100644 (file)
@@ -79,7 +79,7 @@ static void print_version()
        printf("Conky %s compiled %s for %s\n", VERSION, BUILD_DATE, BUILD_ARCH);
 
        printf("\nCompiled in features:\n\n"
-                  "system config file: %s\n\n"
+                  "System config file: %s\n\n"
 #ifdef X11
                   " X11:\n"
 # ifdef HAVE_XDAMAGE
@@ -1097,13 +1097,14 @@ enum text_object_type {
        OBJ_endif,
        OBJ_image,
        OBJ_exec,
-       OBJ_execp,
        OBJ_execi,
        OBJ_texeci,
        OBJ_execbar,
        OBJ_execgraph,
        OBJ_execibar,
        OBJ_execigraph,
+       OBJ_execp,
+       OBJ_execpi,
        OBJ_freq,
        OBJ_freq_g,
        OBJ_freq_dyn,
@@ -2031,17 +2032,11 @@ static void free_text_objects(unsigned int count, struct text_object *objs)
                        case OBJ_font:
                        case OBJ_image:
                        case OBJ_exec:
-                       case OBJ_execp:
                        case OBJ_execbar:
                        case OBJ_execgraph:
+                       case OBJ_execp:
                                free(objs[i].data.s);
                                break;
-                       /* case OBJ_execibar:
-                               free(objs[i].data.s);
-                               break;
-                       case OBJ_execigraph:
-                               free(objs[i].data.s);
-                               break; */
 #ifdef HAVE_ICONV
                        case OBJ_iconv_start:
                                free_iconv();
@@ -2148,7 +2143,10 @@ static void free_text_objects(unsigned int count, struct text_object *objs)
                                free(objs[i].data.s);
                                break;
 #endif /* !__OpenBSD__ */
+                       case OBJ_execpi:
                        case OBJ_execi:
+                       case OBJ_execibar:
+                       case OBJ_execigraph:
                                free(objs[i].data.execi.cmd);
                                free(objs[i].data.execi.buffer);
                                break;
@@ -2157,11 +2155,6 @@ static void free_text_objects(unsigned int count, struct text_object *objs)
                                free(objs[i].data.texeci.buffer);
                                break;
                        case OBJ_top:
-                               if (info.first_process) {
-                                       free_all_processes();
-                                       info.first_process = NULL;
-                               }
-                               break;
                        case OBJ_top_mem:
                                if (info.first_process) {
                                        free_all_processes();
@@ -2700,7 +2693,21 @@ static struct text_object *construct_text_object(const char *s,
                        obj->data.s = strdup(buf);
                } else {
                        obj->data.execi.cmd = strdup(arg + n);
-                       obj->data.execi.buffer = (char *) calloc(1, text_buffer_size);
+                       obj->data.execi.buffer = malloc(text_buffer_size);
+               }
+       END OBJ(execpi, 0)
+               unsigned int n;
+
+               if (!arg || sscanf(arg, "%f %n", &obj->data.execi.interval, &n) <= 0) {
+                       char buf[256];
+
+                       ERR("${execi <interval> command}");
+                       obj->type = OBJ_text;
+                       snprintf(buf, 256, "${%s}", s);
+                       obj->data.s = strdup(buf);
+               } else {
+                       obj->data.execi.cmd = strdup(arg + n);
+                       obj->data.execi.buffer = malloc(text_buffer_size);
                }
        END OBJ(texeci, 0)
                unsigned int n;
@@ -2714,7 +2721,7 @@ static struct text_object *construct_text_object(const char *s,
                        obj->data.s = strdup(buf);
                } else {
                        obj->data.texeci.cmd = strdup(arg + n);
-                       obj->data.texeci.buffer = (char *) calloc(1, text_buffer_size);
+                       obj->data.texeci.buffer = malloc(text_buffer_size);
                }
                obj->data.texeci.p_timed_thread = NULL;
        END OBJ(pre_exec, 0)
@@ -4719,7 +4726,6 @@ static void generate_text_internal(char *p, int p_max_size,
                                        char *output = obj->data.execi.buffer;
                                        FILE *fp = popen(obj->data.execi.cmd, "r");
 
-                                       // int length = fread(output, 1, text_buffer_size, fp);
                                        int length = fread(output, 1, text_buffer_size, fp);
 
                                        pclose(fp);
@@ -4732,6 +4738,35 @@ static void generate_text_internal(char *p, int p_max_size,
                                }
                                // parse_conky_vars(output, p, cur);
                        }
+                       OBJ(execpi) {
+                               struct information *my_info =
+                                       malloc(sizeof(struct information));
+                               memcpy(my_info, cur, sizeof(struct information));
+                               struct text_object_list *text_objects = 0;
+
+                               if (current_update_time - obj->data.execi.last_update
+                                               < obj->data.execi.interval
+                                               || obj->data.execi.interval == 0) {
+                                       text_objects = parse_conky_vars(obj->data.execi.buffer, p, my_info);
+                               } else {
+                                       char *output = obj->data.execi.buffer;
+                                       FILE *fp = popen(obj->data.execi.cmd, "r");
+                                       int length = fread(output, 1, text_buffer_size, fp);
+
+                                       pclose(fp);
+
+                                       output[length] = '\0';
+                                       if (length > 0 && output[length - 1] == '\n') {
+                                               output[length - 1] = '\0';
+                                       }
+                                       
+                                       text_objects = parse_conky_vars(obj->data.execi.buffer, p, my_info);
+                                       obj->data.execi.last_update = current_update_time;
+                               }
+                               free_text_objects(text_objects->text_object_count, text_objects->text_objects);
+                               free(text_objects);
+                               free(my_info);
+                       }
                        OBJ(texeci) {
                                if (!obj->data.texeci.p_timed_thread) {
                                        obj->data.texeci.p_timed_thread =