From: Brenden Matthews Date: Sat, 22 Mar 2008 06:10:54 +0000 (+0000) Subject: added $execpi, new ebuild, various other misc updates X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=94bb46b8688e20f5b3331adae4a45f2fe3d16d94;p=monky 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 --- diff --git a/ChangeLog b/ChangeLog index 4e28738..97bc3e3 100644 --- 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 --- 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 index 0000000..926c481 --- /dev/null +++ b/app-admin/conky/conky-1.5.0.ebuild @@ -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? ( =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 \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 index 0000000..bb1d3da --- /dev/null +++ b/doc/conky.conf @@ -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 index bb1d3da..0000000 --- a/doc/conkyrc.sample +++ /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} diff --git a/doc/variables.xml b/doc/variables.xml index 6253781..dbd7ade 100644 --- a/doc/variables.xml +++ b/doc/variables.xml @@ -649,17 +649,6 @@ - - - - - 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. - - - - - @@ -710,6 +699,27 @@ + + + + + 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. + + + + + + + + + + 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. + + + + + diff --git a/extras/nano/conky.nanorc b/extras/nano/conky.nanorc index 9829b65..368e0be 100644 --- a/extras/nano/conky.nanorc +++ b/extras/nano/conky.nanorc @@ -1,5 +1,5 @@ ## -## Syntax highlighting for conky .rc files. +## Syntax highlighting for conkyrc files. ## ## $Id$ ## diff --git a/extras/vim/syntax/conkyrc.vim b/extras/vim/syntax/conkyrc.vim index 5085885..fdd5318 100644 --- a/extras/vim/syntax/conkyrc.vim +++ b/extras/vim/syntax/conkyrc.vim @@ -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 diff --git a/src/conky.c b/src/conky.c index b626aed..2c2ac74 100644 --- a/src/conky.c +++ b/src/conky.c @@ -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 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 =