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

add max_specials config item with default 512. really closes bug #1574523

git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@793 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
Philip Kovacs 2006-11-22 21:53:54 +00:00
parent 967963af12
commit 9609a330d8
8 changed files with 177 additions and 129 deletions

View File

@ -1,5 +1,10 @@
# $Id$
2006-11-22
* Added max_specials config item with default 512. This should
close bug #1574523 for real this time. Thanks to John Harrigan
<jfharrigan@fedex.com> for this one.
2006-11-21
* Changed autotools for subversion versioning.
* Updated svn ebuild for gentoo.

243
README
View File

@ -220,6 +220,11 @@ CONFIGURATION SETTINGS
Mail spool for mail checking
max_specials
Maximum number of special things, e.g. fonts, offsets, aligns,
etc. (default is 512)
max_user_text bytes
Maximum size of user text buffer, i.e. layout below TEXT line in
config file (default is 16384 bytes)
@ -234,12 +239,12 @@ CONFIGURATION SETTINGS
min_port_monitors
Allow for the creation of at least this number of port monitors
Allow for the creation of at least this number of port monitors
(if 0 or not set, default is 16)
min_port_monitor_connections
Allow each port monitor to track at least this many connections
Allow each port monitor to track at least this many connections
(if 0 or not set, default is 256)
@ -276,26 +281,26 @@ CONFIGURATION SETTINGS
own_window_type
if own_window is yes, you may specify type normal, desktop or
if own_window is yes, you may specify type normal, desktop or
override (default: normal). Desktop windows are special windows
that have no window decorations; are always visible on your
desktop; do not appear in your pager or taskbar; and are sticky
across all workspaces. Override windows are not under the con-
that have no window decorations; are always visible on your
desktop; do not appear in your pager or taskbar; and are sticky
across all workspaces. Override windows are not under the con-
trol of the window manager. Hints are ignored. This type of win-
dow can be useful for certain situations.
own_window_colour colour
If own_window_transparent no, set a specified background colour
(defaults to black). Takes either a hex value (#ffffff) or a
If own_window_transparent no, set a specified background colour
(defaults to black). Takes either a hex value (#ffffff) or a
valid RGB name (see /usr/lib/X11/rgb.txt)
own_window_hints undecorated,below,above,sticky,skip_taskbar,skip_pager
If own_window is yes, you may use these window manager hints to
If own_window is yes, you may use these window manager hints to
affect the way Conky displays. Notes: Use own_window_type desk-
top as another way to implement many of these hints implicitly.
If you use own_window_type override, window manager hints have
top as another way to implement many of these hints implicitly.
If you use own_window_type override, window manager hints have
no meaning and are ignored.
@ -307,9 +312,9 @@ CONFIGURATION SETTINGS
Pad percentages to this many decimals (0 = no padding)
pop3 Default global POP3 server. 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
pop3 Default global POP3 server. 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.
@ -318,7 +323,7 @@ CONFIGURATION SETTINGS
total_run_times
Total number of times for Conky to update before quitting. Zero
Total number of times for Conky to update before quitting. Zero
makes Conky run forever
@ -356,10 +361,10 @@ CONFIGURATION SETTINGS
VARIABLES
Colors are parsed using XParsecolor(), there might be a list of them:
/usr/X11R6/lib/X11/rgb.txt. Also, <http://sedition.com/perl/rgb.html>.
Color can be also in #rrggbb format (hex). Note that when displaying
bytes, power is 1024 and not 1000 so 1M really means 1024*1024 bytes
Colors are parsed using XParsecolor(), there might be a list of them:
/usr/X11R6/lib/X11/rgb.txt. Also, <http://sedition.com/perl/rgb.html>.
Color can be also in #rrggbb format (hex). Note that when displaying
bytes, power is 1024 and not 1000 so 1M really means 1024*1024 bytes
and not 1000*1000.
addr interface
@ -407,7 +412,7 @@ VARIABLES
apm_battery_time
Display remaining APM battery life in hh:mm:ss or "unknown" if
Display remaining APM battery life in hh:mm:ss or "unknown" if
AC adapterstatus is on-line or charging (FreeBSD only)
@ -464,7 +469,7 @@ VARIABLES
battery (num)
Remaining capacity in ACPI or APM battery. ACPI battery number
Remaining capacity in ACPI or APM battery. ACPI battery number
can be given as argument (default is BAT0).
@ -504,28 +509,28 @@ VARIABLES
cpu (cpuN)
CPU usage in percents. For SMP machines, the CPU number can be
provided as an argument. ${cpu 0} is the total usage, and ${cpu
CPU usage in percents. For SMP machines, the CPU number can be
provided as an argument. ${cpu 0} is the total usage, and ${cpu
X} (X >= 1) are individual CPUs.
cpubar (cpu number) (height),(width)
Bar that shows CPU usage, height is bar's height in pixels. See
Bar that shows CPU usage, height is bar's height in pixels. See
$cpu for more info on SMP.
cpugraph (cpu number) (height),(width) (gradient colour 1) (gradient
cpugraph (cpu number) (height),(width) (gradient colour 1) (gradient
colour 2)
CPU usage graph, with optional colours in hex, minus the #. See
CPU usage graph, with optional colours in hex, minus the #. See
$cpu for more info on SMP.
diskio Displays current disk IO.
diskiograph (height),(width) (gradient colour 1) (gradient colour 2)
diskiograph (height),(width) (gradient colour 1) (gradient colour 2)
(scale)
Disk IO graph, colours defined in hex, minus the #. If scale is
Disk IO graph, colours defined in hex, minus the #. If scale is
non-zero, it becomes the scale for the graph.
@ -539,7 +544,7 @@ VARIABLES
downspeedgraph net (height),(width) (gradient colour 1) (gradient
colour 2) (scale)
Download speed graph, colours defined in hex, minus the #. If
Download speed graph, colours defined in hex, minus the #. If
scale is non-zero, it becomes the scale for the graph.
@ -548,12 +553,12 @@ VARIABLES
exec command
Executes a shell command and displays the output in conky. warn-
ing: this takes a lot more resources than other variables. I'd
ing: this takes a lot more resources than other variables. I'd
recommend coding wanted behaviour in C and posting a patch.
execbar command
Same as exec, except if the first value return is a value be-
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
bar is currently fixed, but that may change in the future.
@ -563,7 +568,7 @@ VARIABLES
execi interval command
Same as exec but with specific interval. Interval can't be less
Same as exec but with specific interval. Interval can't be less
than update_interval in configuration. See also $texeci
@ -576,36 +581,36 @@ VARIABLES
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.
@ -629,14 +634,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.
@ -645,7 +650,7 @@ VARIABLES
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.
@ -654,75 +659,75 @@ VARIABLES
i2c (dev) type n
I2C sensor from sysfs (Linux 2.6). dev may be omitted if you
have only one I2C device. type is either in (or vol) meaning
I2C sensor from sysfs (Linux 2.6). dev may be omitted if you
have only one I2C device. type is either in (or vol) meaning
voltage, fan meaning fan or temp/tempf (first in C, second in F)
meaning temperature. n is number of the sensor. See
meaning temperature. 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.
@ -731,13 +736,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).
@ -747,25 +752,25 @@ VARIABLES
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)
if FILE exists, display everything between if_existing and the
if FILE exists, display everything between if_existing and the
matching $endif
if_mounted (mountpoint)
if MOUNTPOINT is mounted, display everything between if_mounted
if MOUNTPOINT is mounted, display everything between if_mounted
and the matching $endif
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.
@ -774,7 +779,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.
@ -795,8 +800,8 @@ VARIABLES
Machine, i686 for example
mails Mail count in mail spool. You can use program like fetchmail to
get mails from some server using your favourite protocol. See
mails Mail count in mail spool. You can use program like fetchmail to
get mails from some server using your favourite protocol. See
also new_mails.
@ -893,17 +898,17 @@ 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.
@ -911,17 +916,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.
@ -983,36 +988,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.
@ -1031,7 +1036,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
@ -1040,23 +1045,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", and "mem". There can be a max of 10 processes
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", and "mem". There can be a max of 10 processes
listed.
@ -1080,9 +1085,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.
@ -1094,12 +1099,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.
@ -1122,11 +1127,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

@ -127,6 +127,13 @@
<para></para></listitem>
</varlistentry>
<varlistentry>
<term><command><option>max_specials</option></command></term>
<listitem>
Maximum number of special things, e.g. fonts, offsets, aligns, etc. (default is 512)
<para></para></listitem>
</varlistentry>
<varlistentry>
<term><command><option>max_user_text</option></command>
<option>bytes</option>

View File

@ -209,6 +209,10 @@ Default global IMAP server. Arguments are: "host user pass [-i interval] [-f fol
\fB\*(T<\fBmail_spool\fR\*(T>\fR
Mail spool for mail checking
.TP
\fB\*(T<\fBmax_specials\fR\*(T>\fR
Maximum number of special things, e.g. fonts, offsets, aligns, etc. (default is 512)
.TP
\fB\*(T<\fBmax_user_text\fR\*(T>\fR \*(T<\fBbytes\fR\*(T>
Maximum size of user text buffer, i.e. layout below TEXT line in config file

View File

@ -6,7 +6,7 @@
syntax "conky" "\.*conkyrc.*$"
## Configuration items
color green "\<(alignment|background|border_margin|border_width|cpu_avg_samples|default_color|default_shade_color|default_outline_color|double_buffer|draw_borders|draw_graph_borders|draw_shades|draw_outline|font|gap_x|gap_y|mail_spool|max_user_text|maximum_width|minimum_size|min_port_monitor_connections|min_port_monitors|mpd_host|mpd_port|mpd_password|net_avg_samples|no_buffers|out_to_console|override_utf8_locale|own_window|own_window_transparent|own_window_type|own_window_hints|own_window_colour|pad_percents|stippled_borders|total_run_times|update_interval|uppercase|use_spacer|use_xft|wm_class_name|xftalpha|xftfont)\>"
color green "\<(alignment|background|border_margin|border_width|cpu_avg_samples|default_color|default_shade_color|default_outline_color|double_buffer|draw_borders|draw_graph_borders|draw_shades|draw_outline|font|gap_x|gap_y|mail_spool|max_specials|max_user_text|maximum_width|minimum_size|min_port_monitor_connections|min_port_monitors|mpd_host|mpd_port|mpd_password|net_avg_samples|no_buffers|out_to_console|override_utf8_locale|own_window|own_window_transparent|own_window_type|own_window_hints|own_window_colour|pad_percents|stippled_borders|total_run_times|update_interval|uppercase|use_spacer|use_xft|wm_class_name|xftalpha|xftfont)\>"
## Variables
color brightblue "\<(acpiacadapter|acpifan|acpitemp|acpitempf|addr|adt746xcpu|adt746xfan|align|alignr|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|bmpx_album|bmpx_artist|bmpx_bitrate|bmpx_title|bmpx_track|bmpx_uri|buffers|cached|color|colour|cpu|cpubar|diskio|downspeed|downspeedf|else|exec|execbar|execgraph|execi|execibar|execigraph|font|freq|freq_dyn|freq_dyn_g|freq_g|fs_bar|fs_free|fs_free_perc|fs_size|fs_used|goto|hddtemp|head|hr|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_cpu_tempf|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|if_existing|if_running|if_mounted|kernel|linkstatus|loadavg|machine|mails|mem|membar|memmax|memperc|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_smart|mpd_status|mpd_title|mpd_vol|new_mails|nodename|offset|outlinecolor|pre_exec|processes|running_processes|shadecolor|stippled_hr|swap|swapbar|swapmax|swapperc|sysname|tab|tail|tcp_portmon|texeci|time|top|top_mem|totaldown|totalup|tztime|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|voffset|voltage_mv|voltage_v)\>"

View File

@ -31,6 +31,7 @@ syn keyword ConkyrcSetting
\ gap_x
\ gap_y
\ mail_spool
\ max_specials
\ max_user_text
\ maximum_width
\ minimum_size

View File

@ -315,6 +315,9 @@ static int maximum_width;
#endif /* X11 */
/* maximum number of special things, e.g. fonts, offsets, aligns, etc. */
static unsigned int max_specials = MAX_SPECIALS_DEFAULT;
/* maximum size of config TEXT buffer, i.e. below TEXT line. */
static unsigned int max_user_text = MAX_USER_TEXT_DEFAULT;
@ -496,7 +499,7 @@ enum {
TAB,
};
static struct special_t {
struct special_t {
int type;
short height;
short width;
@ -508,18 +511,21 @@ static struct special_t {
short font_added;
unsigned long first_colour; // for graph gradient
unsigned long last_colour;
} specials[128];
};
static int special_count;
/* create specials array on heap instead of stack with introduction of max_specials */
static struct special_t *specials = NULL;
static unsigned int special_count;
#ifdef X11
static int special_index; /* used when drawing */
static unsigned int special_index; /* used when drawing */
#endif /* X11 */
#define MAX_GRAPH_DEPTH 256 /* why 256? cause an array of more then 256 doubles seems excessive, and who needs that kind of precision anyway? */
static struct special_t *new_special(char *buf, int t)
{
if (special_count >= 512)
if (special_count >= max_specials)
CRIT_ERR("too many special things in text");
buf[0] = SPECIAL_CHAR;
@ -5946,6 +5952,11 @@ void reload_config(void)
if (current_config) {
clear_fs_stats();
load_config_file(current_config);
/* re-init specials array */
if ((specials = realloc ((void *)specials, sizeof(struct special_t)*max_specials)) == 0)
ERR("failed to realloc specials array");
#ifdef X11
load_fonts();
set_font();
@ -5999,10 +6010,6 @@ void clean_up(void)
XFreeGC(display, window.gc);
#endif /* X11 */
/* it is really pointless to free() memory at the end of program but ak|ra
* wants me to do this */
free_text_objects(text_object_count, text_objects);
text_object_count = 0;
text_objects = NULL;
@ -6012,10 +6019,16 @@ void clean_up(void)
free(current_config);
free(current_mail_spool);
#ifdef TCP_PORT_MONITOR
destroy_tcp_port_monitor_collection( info.p_tcp_port_monitor_collection );
info.p_tcp_port_monitor_collection = NULL;
#endif
if (specials) {
free (specials);
specials=NULL;
}
}
static int string_to_bool(const char *s)
@ -6533,6 +6546,12 @@ else if (strcasecmp(name, a) == 0 || strcasecmp(name, b) == 0)
CONF("uppercase") {
stuff_in_upper_case = string_to_bool(value);
}
CONF("max_specials") {
if (value)
max_specials = atoi(value);
else
CONF_ERR;
}
CONF("max_user_text") {
if (value)
max_user_text = atoi(value);
@ -6747,6 +6766,10 @@ int main(int argc, char **argv)
set_default_configurations();
}
/* init specials array */
if ((specials = calloc (sizeof(struct special_t), max_specials)) == 0)
ERR("failed to create specials array");
#ifdef MAIL_FILE
if (current_mail_spool == NULL) {
char buf[256];

View File

@ -50,6 +50,9 @@
#define TEXT_BUFFER_SIZE 1280
#define P_MAX_SIZE ((TEXT_BUFFER_SIZE * 4) - 2)
/* maximum number of special things, e.g. fonts, offsets, aligns, etc. */
#define MAX_SPECIALS_DEFAULT 512
/* maximum size of config TEXT buffer, i.e. below TEXT line. */
#define MAX_USER_TEXT_DEFAULT 16384