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

* Added patch for the following (thanks larsko):

* New $loadgraph to show a graph of load averages,
* add "show_graph_scale" option to turn off/on the showing of the
current max value for the graph,
* minor code fixes,
* update nano and vim syntax highlighting stuff.

git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1104 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
Brenden Matthews 2008-04-13 04:10:35 +00:00
parent 4d7ecc7951
commit 801cf11545
10 changed files with 178 additions and 76 deletions

View File

@ -1,5 +1,13 @@
# $Id$
2008-04-12
* Added patch for the following (thanks larsko):
* New $loadgraph to show a graph of load averages,
* add "show_graph_scale" option to turn off/on the showing of the
current max value for the graph,
* minor code fixes,
* update nano and vim syntax highlighting stuff.
2008-04-10
* Getting rid of goto usage throughout code.
* Fix bug due to usage of gethostbyname() in threads (which is not

135
README
View File

@ -388,6 +388,10 @@ CONFIGURATION SETTINGS
fault is off.
show_graph_scale
Shows the maximum value in scaled graphs.
stippled_borders
Border stippling (dashing) in pixels
@ -1036,21 +1040,26 @@ VARIABLES
5 minutes and 3 for past 15 minutes.
loadgraph (height),(width) (gradient colour 1) (gradient colour 2)
Load1 average graph, similar to xload, with optional colours in
hex, minus the #.
machine
Machine, i686 for example
mails (mailbox) (interval)
Mail count in the specified mailbox or your mail spool if not.
Both mbox and maildir type mailboxes are supported. You can use
a program like fetchmail to get mails from some server using
Mail count in the specified mailbox or your mail spool if not.
Both mbox and maildir type mailboxes are supported. You can use
a program like fetchmail to get mails from some server using
your favourite protocol. See also new_mails.
mboxscan (-n number of messages to print) (-fw from width) (-sw subject
width) mbox
Print a summary of recent messages in an mbox format mailbox.
mbox parameter is the filename of the mailbox (can be encapsu-
Print a summary of recent messages in an mbox format mailbox.
mbox parameter is the filename of the mailbox (can be encapsu-
lated using '"', ie. ${mboxscan -n 10 "/home/brenden/some box"}
@ -1134,7 +1143,7 @@ VARIABLES
nameserver (index)
Print a nameserver from /etc/resolv.conf. Index starts at and
Print a nameserver from /etc/resolv.conf. Index starts at and
defaults to 0.
@ -1153,26 +1162,26 @@ VARIABLES
pb_battery item
If running on Apple powerbook/ibook, display information on bat-
tery status. The item parameter specifies, what information to
tery status. The item parameter specifies, what information to
display. Exactly one item must be specified. Valid items are:
status: Display if battery is fully charged, charging, discharg-
ing or absent (running on AC)
percent: Display charge of battery in percent, if charging or
discharging. Nothing will be displayed, if battery is fully
percent: Display charge of battery in percent, if charging or
discharging. Nothing will be displayed, if battery is fully
charged or absent.
time: Display the time remaining until the battery will be fully
charged or discharged at current rate. Nothing is displayed, if
battery is absent or if it's present but fully charged and not
charged or discharged at current rate. Nothing is displayed, if
battery is absent or if it's present but fully charged and not
discharging.
platform (dev) type n
Platform sensor from sysfs (Linux 2.6). Parameter dev may be
omitted if you have only one platform device. Platform type is
either 'in' or 'vol' meaning voltage; 'fan' meaning fan; 'temp'
Platform sensor from sysfs (Linux 2.6). Parameter dev may be
omitted if you have only one platform device. Platform type is
either 'in' or 'vol' meaning voltage; 'fan' meaning fan; 'temp'
(Celsius) or 'tempf' (Fahrenheit) meaning temperature. Parameter
n is number of the sensor. See /sys/bus/platform/devices/ on
n is number of the sensor. See /sys/bus/platform/devices/ on
your local computer.
@ -1180,17 +1189,17 @@ VARIABLES
Displays the number of unseen messages in your global POP3 inbox
by default. You can define individual POP3 inboxes seperately by
passing arguments to this object. Arguments are: "host user pass
[-i interval] [-p port] [-e command]". Default port is 110, de-
[-i interval] [-p port] [-e command]". Default port is 110, de-
fault interval is 5 minutes. If the password is supplied as '*',
you will be prompted to enter the password when Conky starts.
pop3_used (args)
Displays the amount of space (in MiB, 2^20) used in your global
POP3 inbox by default. You can define individual POP3 inboxes
seperately by passing arguments to this object. Arguments are:
"host user pass [-i interval] [-p port] [-e command]". Default
port is 110, default interval is 5 minutes. If the password is
Displays the amount of space (in MiB, 2^20) used in your global
POP3 inbox by default. You can define individual POP3 inboxes
seperately by passing arguments to this object. Arguments are:
"host user pass [-i interval] [-p port] [-e command]". Default
port is 110, default interval is 5 minutes. If the password is
supplied as '*', you will be prompted to enter the password when
Conky starts.
@ -1213,21 +1222,21 @@ VARIABLES
smapi (ARGS)
when using smapi, display contents of the /sys/devices/plat-
form/smapi directory. ARGS are either '(FILENAME)' or 'bat (IN-
DEX) (FILENAME)' to display the corresponding files' content.
This is a very raw method of accessing the smapi values. When
when using smapi, display contents of the /sys/devices/plat-
form/smapi directory. ARGS are either '(FILENAME)' or 'bat (IN-
DEX) (FILENAME)' to display the corresponding files' content.
This is a very raw method of accessing the smapi values. When
available, better use one of the smapi_* variables instead.
smapi_bat_perc (INDEX)
when using smapi, display the remaining capacity in percent of
the battery with index INDEX. This is a separate variable be-
when using smapi, display the remaining capacity in percent of
the battery with index INDEX. This is a separate variable be-
cause it supports the 'use_spacer' configuration option.
smapi_bat_bar (INDEX),(height),(width)
when using smapi, display the remaining capacity of the battery
when using smapi, display the remaining capacity of the battery
with index INDEX as a bar.
@ -1271,36 +1280,36 @@ VARIABLES
The connection index provides you with access to each connection
in the port monitor. The monitor will return information for in-
dex values from 0 to n-1 connections. Values higher than n-1 are
simply ignored. For the "count" item, the connection index must
simply ignored. For the "count" item, the connection index must
be omitted. It is required for all other items.
Examples:
${tcp_portmon 6881 6999 count} - displays the number of connec-
${tcp_portmon 6881 6999 count} - displays the number of connec-
tions in the bittorrent port range
${tcp_portmon 22 22 rip 0} - displays the remote host ip of the
${tcp_portmon 22 22 rip 0} - displays the remote host ip of the
first sshd connection
${tcp_portmon 22 22 rip 9} - displays the remote host ip of the
${tcp_portmon 22 22 rip 9} - displays the remote host ip of the
tenth sshd connection
${tcp_portmon 1 1024 rhost 0} - displays the remote host name of
the first connection on a privileged port
${tcp_portmon 1 1024 rport 4} - displays the remote host port of
the fifth connection on a privileged port
${tcp_portmon 1 65535 lservice 14} - displays the local service
${tcp_portmon 1 65535 lservice 14} - displays the local service
name of the fifteenth connection in the range of all ports
Note that port monitor variables which share the same port range
actually refer to the same monitor, so many references to a sin-
gle port range for different items and different indexes all use
the same monitor internally. In other words, the program avoids
the same monitor internally. In other words, the program avoids
creating redundant monitors.
texeci interval command
Runs a command at an interval inside a thread and displays the
output. Same as $execi, except the command is run inside a
thread. Use this if you have a slow script to keep Conky updat-
ing. You should make the interval slightly longer then the time
it takes your script to execute. For example, if you have a
script that take 5 seconds to execute, you should make the in-
Runs a command at an interval inside a thread and displays the
output. Same as $execi, except the command is run inside a
thread. Use this if you have a slow script to keep Conky updat-
ing. You should make the interval slightly longer then the time
it takes your script to execute. For example, if you have a
script that take 5 seconds to execute, you should make the in-
terval at least 6 seconds. See also $execi.
@ -1309,8 +1318,8 @@ VARIABLES
rss url delay_in_minutes action item_num
Download and parse RSS feeds. Action may be one of the follow-
ing: feed_title, item_title (with num par), item_desc (with num
Download and parse RSS feeds. Action may be one of the follow-
ing: feed_title, item_title (with num par), item_desc (with num
par) and item_titles.
@ -1325,7 +1334,7 @@ VARIABLES
time (format)
Local time, see man strftime to get more information about for-
Local time, see man strftime to get more information about for-
mat
@ -1334,23 +1343,23 @@ VARIABLES
tztime (timezone) (format)
Local time for specified timezone, see man strftime to get more
information about format. The timezone argument is specified in
similar fashion as TZ environment variable. For hints, look in
Local time for specified timezone, see man strftime to get more
information about format. The timezone argument is specified in
similar fashion as TZ environment variable. For hints, look in
/usr/share/zoneinfo. e.g. US/Pacific, Europe/Zurich, etc.
totaldown net
Total download, overflows at 4 GB on Linux with 32-bit arch and
Total download, overflows at 4 GB on Linux with 32-bit arch and
there doesn't seem to be a way to know how many times it has al-
ready done that before conky has started.
top type, num
This takes arguments in the form:top (name) (number) Basically,
processes are ranked from highest to lowest in terms of cpu us-
age, which is what (num) represents. The types are: "name",
"pid", "cpu", "mem", "mem_res", "mem_vsize", and "time". There
This takes arguments in the form:top (name) (number) Basically,
processes are ranked from highest to lowest in terms of cpu us-
age, which is what (num) represents. The types are: "name",
"pid", "cpu", "mem", "mem_res", "mem_vsize", and "time". There
can be a max of 10 processes listed.
@ -1374,9 +1383,9 @@ VARIABLES
Upload speed in kilobytes with one decimal
upspeedgraph net (height),(width) (gradient colour 1) (gradient colour
upspeedgraph net (height),(width) (gradient colour 1) (gradient colour
2) (scale)
Upload speed graph, colours defined in hex, minus the #. If
Upload speed graph, colours defined in hex, minus the #. If
scale is non-zero, it becomes the scale for the graph.
@ -1404,12 +1413,12 @@ VARIABLES
voffset (pixels)
Change vertical offset by N pixels. Negative values will cause
Change vertical offset by N pixels. Negative values will cause
text to overlap. See also $offset.
voltage_mv (n)
Returns CPU #n's voltage in mV. CPUs are counted from 1. If
Returns CPU #n's voltage in mV. CPUs are counted from 1. If
omitted, the parameter defaults to 1.
@ -1537,13 +1546,13 @@ FILES
BUGS
Drawing to root or some other desktop window directly doesn't work with
all window managers. Especially doesn't work well with Gnome and it has
been reported that it doesn't work with KDE either. Nautilus can be
disabled from drawing to desktop with program gconf-editor. Uncheck
show_desktop in /apps/nautilus/preferences/. There is -w switch in
Conky to set some specific window id. You might find xwininfo -tree
useful to find the window to draw to. You can also use -o argument
been reported that it doesn't work with KDE either. Nautilus can be
disabled from drawing to desktop with program gconf-editor. Uncheck
show_desktop in /apps/nautilus/preferences/. There is -w switch in
Conky to set some specific window id. You might find xwininfo -tree
useful to find the window to draw to. You can also use -o argument
which makes Conky to create its own window. If you do try running Conky
in its own window, be sure to read up on the own_window_type settings
in its own window, be sure to read up on the own_window_type settings
and experiment.
SEE ALSO
@ -1554,11 +1563,11 @@ SEE ALSO
#conky on irc.freenode.net
COPYING
Copyright (c) 2005-2008 Brenden Matthews, Philip Kovacs, et. al. Any
Copyright (c) 2005-2008 Brenden Matthews, Philip Kovacs, et. al. Any
original torsmo code is licensed under the BSD license (see LICENSE.BSD
for a copy). All code written since the fork of torsmo is licensed un-
der the GPL (see LICENSE.GPL for a copy), except where noted different-
ly (such as in portmon code, timed thread code, and audacious code
ly (such as in portmon code, timed thread code, and audacious code
which are LGPL, and prss which is an MIT-style license).
AUTHORS

View File

@ -49,6 +49,7 @@ stippled_borders 0
update_interval 3.0
uppercase no
use_spacer no
show_graph_scale no
TEXT
$nodename - $sysname $kernel on $machine

View File

@ -392,6 +392,13 @@
<para></para></listitem>
</varlistentry>
<varlistentry>
<term><command><option>show_graph_scale</option></command></term>
<listitem>
Shows the maximum value in scaled graphs.
<para></para></listitem>
</varlistentry>
<varlistentry>
<term><command><option>stippled_borders</option></command></term>
<listitem>

View File

@ -362,6 +362,10 @@ Default global POP3 server. Arguments are: "host user pass [-i interval] [-p por
\fB\*(T<\fBshort_units\fR\*(T>\fR
Shortens units to a single character (kiB->k, GiB->G, etc.). Default is off.
.TP
\fB\*(T<\fBshow_graph_scale\fR\*(T>\fR
Shows the maximum value in scaled graphs.
.TP
\fB\*(T<\fBstippled_borders\fR\*(T>\fR
Border stippling (dashing) in pixels
@ -917,6 +921,10 @@ The value of /proc/sys/vm/laptop_mode
\fB\*(T<\fBloadavg\fR\*(T>\fR
(1,2,3)> System load average, 1 is for past 1 minute, 2 for past 5 minutes and 3 for past 15 minutes.
.TP
\fB\*(T<\fBloadgraph\fR\*(T>\fR \*(T<\fB(height),(width) (gradient colour 1) (gradient colour 2)\fR\*(T>
Load1 average graph, similar to xload, with optional colours in hex, minus the #.
.TP
\fB\*(T<\fBmachine\fR\*(T>\fR
Machine, i686 for example

View File

@ -125,6 +125,9 @@ override_utf8_locale no
# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer none
# Shows the maximum value in scaled graphs.
show_graph_scale no
# Allow each port monitor to track at most this many connections (if 0 or not set, default is 256)
#max_port_monitor_connections 256

View File

@ -1215,6 +1215,16 @@
<para></para></listitem>
</varlistentry>
<varlistentry>
<term>
<command><option>loadgraph</option></command>
<option>(height),(width) (gradient colour 1) (gradient colour 2)</option>
</term>
<listitem>
Load1 average graph, similar to xload, with optional colours in hex, minus the #.
<para></para></listitem>
</varlistentry>
<varlistentry>
<term>
<command><option>machine</option></command>

View File

@ -6,10 +6,10 @@
syntax "conky" "(\.*conkyrc.*$|conky.conf)"
## Configuration items
color green "\<(alignment|background|border_margin|border_width|cpu_avg_samples|default_color|default_shade_color|default_outline_color|double_buffer|draw_borders|draw_graph_borders|draw_shades|draw_outline|font|gap_x|gap_y|imap|mail_spool|max_port_monitor_connections|max_specials|max_user_text|maximum_width|minimum_size|mpd_host|mpd_port|mpd_password|music_player_interval|net_avg_samples|no_buffers|out_to_console|override_utf8_locale|own_window|own_window_class|own_window_colour|own_window_hints|own_window_title|own_window_transparent|own_window_type|pad_percents|pop3|stippled_borders|total_run_times|update_interval|uppercase|use_spacer|use_xft|xftalpha|xftfont)\>"
color green "\<(alignment|background|border_margin|border_width|cpu_avg_samples|default_color|default_shade_color|default_outline_color|double_buffer|draw_borders|draw_graph_borders|draw_shades|draw_outline|font|gap_x|gap_y|imap|mail_spool|max_port_monitor_connections|max_specials|max_user_text|maximum_width|minimum_size|mpd_host|mpd_port|mpd_password|music_player_interval|net_avg_samples|no_buffers|out_to_console|override_utf8_locale|own_window|own_window_class|own_window_colour|own_window_hints|own_window_title|own_window_transparent|own_window_type|pad_percents|pop3|show_graph_scale|stippled_borders|total_run_times|update_interval|uppercase|use_spacer|use_xft|xftalpha|xftfont)\>"
## Variables
color brightblue "\<(acpiacadapter|acpifan|acpitemp|acpitempf|addr|adt746xcpu|adt746xfan|align|alignr|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|battery_time|bmpx_album|bmpx_artist|bmpx_bitrate|bmpx_title|bmpx_track|bmpx_uri|buffers|cached|color|colour|cpu|cpubar|cpugraph|diskio|diskiograph|downspeed|downspeedf|downspeedgraph|else|entropy_avail|entropy_bar|entropy_poolsize|exec|execbar|execgraph|execi|execibar|execigraph|font|freq|freq_dyn|freq_dyn_g|freq_g|fs_bar|fs_free|fs_free_perc|fs_size|fs_used|goto|hddtemp|head|hr|hwmon|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_cpu_tempf|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|if_existing|if_running|if_mounted|kernel|linkstatus|loadavg|machine|mails|mem|membar|memmax|memperc|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_smart|mpd_status|mpd_title|mpd_vol|new_mails|nodename|offset|outlinecolor|platform|pre_exec|processes|running_processes|shadecolor|stippled_hr|swap|swapbar|swapmax|swapperc|sysname|tab|tail|tcp_portmon|texeci|time|top|top_mem|totaldown|totalup|tztime|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|voffset|voltage_mv|voltage_v|xmms2_artist|xmms2_album|xmms2_title|xmms2_genre|xmms2_comment|xmms2_url|xmms2_tracknr|xmms2_bitrate|xmms2_id|xmms2_duration|xmms2_elapsed|xmms2_size|xmms2_percent|xmms2_status|xmms2_bar|xmms2_smart|xmms2_date|xmms2_timesplayed|xmms2_playlist)\>"
color brightblue "\<(acpiacadapter|acpifan|acpitemp|acpitempf|addr|adt746xcpu|adt746xfan|align|alignr|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|battery_time|bmpx_album|bmpx_artist|bmpx_bitrate|bmpx_title|bmpx_track|bmpx_uri|buffers|cached|color|colour|cpu|cpubar|cpugraph|diskio|diskiograph|downspeed|downspeedf|downspeedgraph|else|entropy_avail|entropy_bar|entropy_poolsize|exec|execbar|execgraph|execi|execibar|execigraph|font|freq|freq_dyn|freq_dyn_g|freq_g|fs_bar|fs_free|fs_free_perc|fs_size|fs_used|goto|hddtemp|head|hr|hwmon|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_cpu_tempf|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|if_existing|if_running|if_mounted|kernel|linkstatus|loadavg|loadgraph|machine|mails|mem|membar|memmax|memperc|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_smart|mpd_status|mpd_title|mpd_vol|new_mails|nodename|offset|outlinecolor|platform|pre_exec|processes|running_processes|shadecolor|stippled_hr|swap|swapbar|swapmax|swapperc|sysname|tab|tail|tcp_portmon|texeci|time|top|top_mem|totaldown|totalup|tztime|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|voffset|voltage_mv|voltage_v|wireless_essid|wireless_mode|wireless_bitrate|wireless_ap|wireless_link_qual|wireless_link_qual_max|wireless_link_qual_perc|wireless_link_bar|xmms2_artist|xmms2_album|xmms2_title|xmms2_genre|xmms2_comment|xmms2_url|xmms2_tracknr|xmms2_bitrate|xmms2_id|xmms2_duration|xmms2_elapsed|xmms2_size|xmms2_percent|xmms2_status|xmms2_bar|xmms2_smart|xmms2_date|xmms2_timesplayed|xmms2_playlist)\>"
color brightblue "\$\{?[0-9A-Z_!@#$*?-]+\}?"
color cyan "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color brightred "^TEXT$"

View File

@ -54,6 +54,7 @@ syn keyword ConkyrcSetting
\ own_window_type
\ pad_percents
\ pop3
\ show_graph_scale
\ stippled_borders
\ total_run_times
\ update_interval
@ -188,6 +189,7 @@ syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour skipw
\ kernel
\ linkstatus
\ loadavg
\ loadgraph
\ machine
\ mails
\ mem
@ -241,6 +243,14 @@ syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour skipw
\ voffset
\ voltage_mv
\ voltage_v
\ wireless_essid
\ wireless_mode
\ wireless_bitrate
\ wireless_ap
\ wireless_link_qual
\ wireless_link_qual_max
\ wireless_link_qual_perc
\ wireless_link_bar
\ xmms2_artist
\ xmms2_album
\ xmms2_title

View File

@ -334,6 +334,8 @@ static int cpu_avg_samples, net_avg_samples;
#ifdef X11
static int show_graph_scale;
/* Position on the screen */
static int text_alignment;
static int gap_x, gap_y;
@ -522,6 +524,7 @@ struct special_t {
long arg;
double *graph;
double graph_scale;
short show_scale;
int graph_width;
int scaled;
unsigned long first_colour; // for graph gradient
@ -782,8 +785,10 @@ static void new_graph(char *buf, int w, int h, unsigned int first_colour,
} */
if (s->scaled) {
s->graph_scale = 1;
s->show_scale = 1;
} else {
s->graph_scale = scale;
s->show_scale = 0;
}
if (append) {
graph_append(s, i);
@ -1089,6 +1094,7 @@ enum text_object_type {
OBJ_cpu,
OBJ_cpubar,
OBJ_cpugraph,
OBJ_loadgraph,
OBJ_diskio,
OBJ_diskio_read,
OBJ_diskio_write,
@ -1433,6 +1439,9 @@ struct text_object {
char *addr;
int port;
char *dev;
double update_time;
char *temp;
char unit;
} hddtemp; /* 2 */
#endif
#ifdef RSS
@ -2623,6 +2632,17 @@ static struct text_object *construct_text_object(const char *s,
}
free(buf);
}
END OBJ(loadgraph, INFO_LOADAVG)
char *buf = scan_graph(arg, &obj->a, &obj->b, &obj->c, &obj->d,
&obj->e);
if (buf) {
int a = 1, r = 3;
if (arg) {
r = sscanf(arg, "%d", &a);
}
obj->data.loadavg[0] = (r >= 1) ? (unsigned char) a : 0;
free(buf);
}
END OBJ(diskio, INFO_DISKIO)
if (arg) {
obj->data.diskio = prepare_diskio_stat(DEV_NAME(arg));
@ -3756,6 +3776,7 @@ static struct text_object *construct_text_object(const char *s,
ERR("hddtemp needs arguments");
obj->type = OBJ_text;
obj->data.s = strndup("${hddtemp}", text_buffer_size);
obj->data.hddtemp.update_time = 0;
return NULL;
}
#endif
@ -4351,7 +4372,7 @@ static void generate_text_internal(char *p, int p_max_size,
if (obj->data.cpu_index > info.cpu_count) {
printf("obj->data.cpu_index %i info.cpu_count %i",
obj->data.cpu_index, info.cpu_count);
CRIT_ERR("attempting to use more CPUs then you have!");
CRIT_ERR("attempting to use more CPUs than you have!");
}
spaced_print(p, p_max_size, "%*d", 4, "cpu", pad_percents,
round_to_int(cur->cpu_usage[obj->data.cpu_index] * 100.0));
@ -4365,6 +4386,10 @@ static void generate_text_internal(char *p, int p_max_size,
round_to_int(cur->cpu_usage[obj->data.cpu_index] * 100),
100, 1);
}
OBJ(loadgraph) {
new_graph(p, obj->a, obj->b, obj->c, obj->d, cur->loadavg[0],
obj->e, 1);
}
OBJ(color) {
new_fg(p, obj->data.l);
}
@ -5285,17 +5310,17 @@ static void generate_text_internal(char *p, int p_max_size,
#endif
#ifdef HDDTEMP
OBJ(hddtemp) {
char *temp;
char unit;
temp = get_hddtemp_info(obj->data.hddtemp.dev,
obj->data.hddtemp.addr, obj->data.hddtemp.port, &unit);
if (!temp) {
if (obj->data.hddtemp.update_time < current_update_time - 30) {
obj->data.hddtemp.temp = get_hddtemp_info(obj->data.hddtemp.dev,
obj->data.hddtemp.addr, obj->data.hddtemp.port, &obj->data.hddtemp.unit);
obj->data.hddtemp.update_time = current_update_time;
}
if (!obj->data.hddtemp.temp) {
snprintf(p, p_max_size, "N/A");
} else if (unit == '*') {
snprintf(p, p_max_size, "%s", temp);
} else if (obj->data.hddtemp.unit == '*') {
snprintf(p, p_max_size, "%s", obj->data.hddtemp.temp);
} else {
snprintf(p, p_max_size, "%s%c", temp, unit);
snprintf(p, p_max_size, "%s%c", obj->data.hddtemp.temp, obj->data.hddtemp.unit);
}
}
#endif
@ -5435,7 +5460,7 @@ static void generate_text_internal(char *p, int p_max_size,
OBJ(memgraph) {
new_graph(p, obj->a, obj->b, obj->c, obj->d,
cur->memmax ? (cur->mem * 100.0) / (cur->memmax) : 0.0,
100, 1);
100, 0);
}
/* mixer stuff */
@ -6745,6 +6770,7 @@ static void draw_line(char *s)
char *p;
int cur_y_add = 0;
short font_h;
char *tmp_str;
cur_x = text_start_x;
cur_y += font_ascent();
@ -6838,6 +6864,8 @@ static void draw_line(char *s)
float gradient_update = 0;
unsigned long last_colour = current_color;
unsigned long tmpcolour = current_color;
int show_scale_x = cur_x + font_ascent() / 2;
int show_scale_y = cur_y + font_height() / 2;
if (cur_x - text_start_x > maximum_width
&& maximum_width > 0) {
break;
@ -6905,6 +6933,20 @@ static void draw_line(char *s)
} else {
set_foreground_color(default_fg_color);
} */
if (show_graph_scale && (specials[special_index].show_scale == 1)) {
int tmp_x = cur_x;
int tmp_y = cur_y;
cur_x = show_scale_x;
cur_y = show_scale_y;
tmp_str = (char *)
calloc(log10(floor(specials[special_index].graph_scale)) + 4,
sizeof(char));
sprintf(tmp_str, "%.1f", specials[special_index].graph_scale);
draw_string(tmp_str);
free(tmp_str);
cur_x = tmp_x;
cur_y = tmp_y;
}
set_foreground_color(last_colour);
break;
}
@ -7755,6 +7797,7 @@ static void set_default_configurations(void)
out_to_console = 1;
#endif
#ifdef X11
show_graph_scale = 0;
default_fg_color = WhitePixel(display, screen);
default_bg_color = BlackPixel(display, screen);
default_out_color = BlackPixel(display, screen);
@ -7907,6 +7950,9 @@ static void load_config_file(const char *f)
}
#endif /* X11 */
#ifdef X11
CONF("show_graph_scale") {
show_graph_scale = string_to_bool(value);
}
CONF("border_margin") {
if (value) {
border_margin = strtol(value, 0, 0);