1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-12-23 19:39:06 +00:00

added $execpi, new ebuild, various other misc updates

git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1027 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
Brenden Matthews 2008-03-22 06:10:54 +00:00
parent adcf34d5f7
commit 94bb46b868
10 changed files with 362 additions and 162 deletions

View File

@ -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

259
README
View File

@ -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

View File

@ -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
}

View 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:

View File

@ -675,11 +675,6 @@ Total size of system entropy pool for crypto freaks
\fB\*(T<\fBexec\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.
.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.
@ -700,6 +695,15 @@ Same as execbar, except with an interval
\fB\*(T<\fBexecigraph\fR\*(T>\fR \*(T<\fBinterval command\fR\*(T>
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)

View File

@ -647,17 +647,6 @@
<para></para></listitem>
</varlistentry>
<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>
@ -708,6 +697,27 @@
<para></para></listitem>
</varlistentry>
<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>

View File

@ -1,5 +1,5 @@
##
## Syntax highlighting for conky .rc files.
## Syntax highlighting for conkyrc files.
##
## $Id$
##

View 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

View 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 =