mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-12-24 11:55:43 +00:00
spock's hddtemp & goto patches
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@679 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
parent
fe7ec00729
commit
ca79c81374
3
AUTHORS
3
AUTHORS
@ -126,6 +126,9 @@ Lucas Brutschy <lbrutschy at users dot sourceforge dot net>
|
||||
MLDonkey patch
|
||||
if constructs patch
|
||||
|
||||
Michal Januszewski <spock at gentoo dot org>
|
||||
hddtemp support
|
||||
|
||||
Moncelier Camille <pixdamix at users dot sourceforge dot net>
|
||||
METAR patch
|
||||
|
||||
|
206
README
206
README
@ -17,8 +17,8 @@ DESCRIPTION
|
||||
as well as the ability to execute programs and scripts, then display
|
||||
the output from stdout.
|
||||
|
||||
We are always looking for help, and anyone interested in becoming a
|
||||
developer is welcome. Please use the facilities at SourceForge to make
|
||||
We are always looking for help, and anyone interested in becoming a de-
|
||||
veloper is welcome. Please use the facilities at SourceForge to make
|
||||
bug reports, feature requests, and submit patches.
|
||||
|
||||
Thanks for your interest in Conky.
|
||||
@ -41,12 +41,12 @@ COMPILING
|
||||
|
||||
sh autogen.sh # Only required if building from Svn
|
||||
|
||||
./configure --prefix=/usr --mandir=/usr/share/man
|
||||
--infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
|
||||
--localstatedir=/var/lib --enable-xft --enable-seti --enable-dou-
|
||||
ble-buffer --enable-own-window --enable-proc-uptime --enable-mpd
|
||||
--enable-mldonkey --enable-x11 --enable-portmon --enable-xmms
|
||||
--enable-bmp --enable-audacious --enable-infopipe --enable-bmpx
|
||||
./configure --prefix=/usr --mandir=/usr/share/man --in-
|
||||
fodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --local-
|
||||
statedir=/var/lib --enable-xft --enable-seti --enable-double-buffer
|
||||
--enable-own-window --enable-proc-uptime --enable-mpd --enable-mldonkey
|
||||
--enable-x11 --enable-portmon --enable-xmms --enable-bmp --enable-auda-
|
||||
cious --enable-infopipe --enable-bmpx
|
||||
|
||||
make
|
||||
|
||||
@ -135,9 +135,9 @@ OPTIONS
|
||||
|
||||
CONFIGURATION SETTINGS
|
||||
Default configuration file is $HOME/.conkyrc (can be changed from
|
||||
conky.c among other things). See conkyrc.sample. If installing from
|
||||
Debian package, this should be in /usr/share/doc/conky/examples ("gun-
|
||||
zip conkyrc.sample.gz" to get conkyrc.sample).
|
||||
conky.c among other things). See conkyrc.sample. If installing from De-
|
||||
bian package, this should be in /usr/share/doc/conky/examples ("gunzip
|
||||
conkyrc.sample.gz" to get conkyrc.sample).
|
||||
|
||||
You might want to copy it to $HOME/.conkyrc and then start modifying
|
||||
it. Other configs can be found at http://conky.sf.net
|
||||
@ -216,8 +216,8 @@ CONFIGURATION SETTINGS
|
||||
imap Default global IMAP server. Arguments are: "host user pass [-i
|
||||
interval] [-f folder] [-p port] [-e command]". Default port is
|
||||
143, default folder is 'INBOX', default interval is 5 minutes.
|
||||
If the password is supplied as '*', you will be prompted to
|
||||
enter the password when Conky starts.
|
||||
If the password is supplied as '*', you will be prompted to en-
|
||||
ter the password when Conky starts.
|
||||
|
||||
|
||||
no_buffers
|
||||
@ -378,10 +378,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
|
||||
[http://sedition.com/perl/rgb.html]. Color can be also in #rrggbb for-
|
||||
mat (hex). Note that when displaying bytes, power is 1024 and not 1000
|
||||
so 1M really means 1024*1024 bytes and not 1000*1000.
|
||||
/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
|
||||
IP address for an interface
|
||||
@ -522,9 +522,9 @@ VARIABLES
|
||||
|
||||
|
||||
execbar command
|
||||
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.
|
||||
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.
|
||||
|
||||
|
||||
execgraph command
|
||||
@ -594,6 +594,15 @@ VARIABLES
|
||||
File system used space
|
||||
|
||||
|
||||
goto x The next element will be printed at position 'x'.
|
||||
|
||||
|
||||
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
|
||||
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
|
||||
@ -658,8 +667,8 @@ VARIABLES
|
||||
i8k_left_fan_status
|
||||
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
|
||||
reverse order.
|
||||
readable). Beware, some laptops i8k reports these fans in re-
|
||||
verse order.
|
||||
|
||||
|
||||
i8k_right_fan_rpm
|
||||
@ -671,8 +680,8 @@ VARIABLES
|
||||
|
||||
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
|
||||
human-readable). Beware, some laptops i8k reports these fans in
|
||||
the right fan status as listed in /proc/i8k (translated to hu-
|
||||
man-readable). Beware, some laptops i8k reports these fans in
|
||||
reverse order.
|
||||
|
||||
|
||||
@ -722,23 +731,21 @@ VARIABLES
|
||||
|
||||
|
||||
imap_messages (args)
|
||||
Displays the number of messages in your global IMAP inbox by
|
||||
default. You can define individual IMAP inboxes seperately by
|
||||
Displays the number of messages in your global IMAP inbox by de-
|
||||
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 110,
|
||||
default interval is 5 minutes. If the password is supplied as
|
||||
'*', you will be prompted to enter the password when Conky
|
||||
starts.
|
||||
[-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.
|
||||
|
||||
|
||||
imap_unseen (args)
|
||||
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 110,
|
||||
default interval is 5 minutes. If the password is supplied as
|
||||
'*', you will be prompted to enter the password when Conky
|
||||
starts.
|
||||
[-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.
|
||||
|
||||
|
||||
kernel Kernel version
|
||||
@ -860,11 +867,9 @@ VARIABLES
|
||||
|
||||
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
|
||||
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
|
||||
@ -875,18 +880,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,
|
||||
default interval is 5 minutes. If the password is supplied as
|
||||
'*', you will be prompted to enter the password when Conky
|
||||
starts.
|
||||
[-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.
|
||||
|
||||
@ -936,69 +940,59 @@ VARIABLES
|
||||
in the range 1 to 65535. Valid items are:
|
||||
|
||||
count - total number of connections in the range
|
||||
|
||||
rip - remote ip address
|
||||
|
||||
rhost - remote host name
|
||||
|
||||
rport - remote port number
|
||||
|
||||
rservice - remote service name from /etc/services
|
||||
|
||||
lip - local ip address
|
||||
|
||||
lhost - local host name
|
||||
|
||||
lport - local port number
|
||||
|
||||
lservice - local service name from /etc/services
|
||||
|
||||
The connection index provides you with access to each connection
|
||||
in the port monitor. The monitor will return information for
|
||||
index values from 0 to n-1 connections. Values higher than n-1
|
||||
are simply ignored. For the "count" item, the connection index
|
||||
must be omitted. It is required for all other items.
|
||||
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
|
||||
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
|
||||
interval at least 6 seconds. See also $execi.
|
||||
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.
|
||||
|
||||
|
||||
offset (pixels)
|
||||
Move text over by N pixels. See also $voffset.
|
||||
|
||||
|
||||
tab (width, (start))
|
||||
Puts a tab of the specified width, starting from column 'start'.
|
||||
|
||||
|
||||
tail logfile lines (interval)
|
||||
Displays last N lines of supplied text text file. If interval is
|
||||
not supplied, Conky assumes 2x Conky's interval. Max of 30 lines
|
||||
@ -1010,17 +1004,28 @@ VARIABLES
|
||||
mat
|
||||
|
||||
|
||||
utime (format)
|
||||
Display time in UTC (universal coordinate time).
|
||||
|
||||
|
||||
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
|
||||
/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
|
||||
there doesn't seem to be a way to know how many times it has
|
||||
already done that before conky has started.
|
||||
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
|
||||
usage, 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.
|
||||
|
||||
|
||||
@ -1044,9 +1049,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.
|
||||
|
||||
|
||||
@ -1070,12 +1075,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.
|
||||
|
||||
|
||||
@ -1093,12 +1098,12 @@ VARIABLES
|
||||
|
||||
|
||||
xmms_channels
|
||||
xmms / bmp / audacious / infopipe: number of audio channels of
|
||||
xmms / bmp / audacious / infopipe: number of audio channels of
|
||||
current tune
|
||||
|
||||
|
||||
xmms_filename
|
||||
xmms / bmp / audacious / infopipe: full path and filename of
|
||||
xmms / bmp / audacious / infopipe: full path and filename of
|
||||
current tune
|
||||
|
||||
|
||||
@ -1108,17 +1113,17 @@ VARIABLES
|
||||
|
||||
|
||||
xmms_length
|
||||
xmms / bmp / audacious / infopipe: total length of current tune
|
||||
xmms / bmp / audacious / infopipe: total length of current tune
|
||||
as MM:SS
|
||||
|
||||
|
||||
xmms_length_seconds
|
||||
xmms / bmp / audacious / infopipe: total length of current tune
|
||||
xmms / bmp / audacious / infopipe: total length of current tune
|
||||
in seconds
|
||||
|
||||
|
||||
xmms_playlist_position
|
||||
xmms / bmp / audacious / infopipe: playlist position of current
|
||||
xmms / bmp / audacious / infopipe: playlist position of current
|
||||
tune
|
||||
|
||||
|
||||
@ -1127,12 +1132,12 @@ VARIABLES
|
||||
|
||||
|
||||
xmms_position
|
||||
xmms / bmp / audacious / infopipe: MM:SS position of current
|
||||
xmms / bmp / audacious / infopipe: MM:SS position of current
|
||||
tune
|
||||
|
||||
|
||||
xmms_position_seconds
|
||||
xmms / bmp / audacious / infopipe: position of current tune in
|
||||
xmms / bmp / audacious / infopipe: position of current tune in
|
||||
seconds
|
||||
|
||||
|
||||
@ -1159,18 +1164,17 @@ 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
|
||||
http://conky.sourceforge.net [http://conky.sourceforge.net]
|
||||
<http://conky.sourceforge.net>
|
||||
|
||||
http://www.sourceforge.net/projects/conky [http://www.source-
|
||||
forge.net/projects/conky]
|
||||
<http://www.sourceforge.net/projects/conky>
|
||||
|
||||
#conky on irc.freenode.net
|
||||
|
||||
|
18
configure.in
18
configure.in
@ -291,6 +291,20 @@ if test x$want_seti = xyes; then
|
||||
AC_DEFINE(SETI, 1, [Define if you want SETI at Home stats])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Hddtemp
|
||||
dnl
|
||||
|
||||
want_hddtemp=yes
|
||||
AC_ARG_ENABLE(hddtemp,
|
||||
[ --enable-hddtemp enable if you want hddtemp support [[default=yes]]],
|
||||
[want_hddtemp="$enableval"])
|
||||
|
||||
AM_CONDITIONAL(BUILD_HDDTEMP, test x$want_hddtemp = xyes)
|
||||
if test x$want_hddtemp = xyes; then
|
||||
AC_DEFINE(HDDTEMP, 1, [Define if you want hddtemp support])
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl MPD
|
||||
dnl
|
||||
@ -311,7 +325,7 @@ dnl
|
||||
|
||||
want_xmms2=no
|
||||
AC_ARG_ENABLE(xmms2,
|
||||
[ --enable-xmms2 enable if you want XMMS2 support [[default=no]]],
|
||||
[ --enable-xmms2 enable if you want XMMS2 support [[default=no]]],
|
||||
[want_xmms2="$enableval"])
|
||||
|
||||
AM_CONDITIONAL(BUILD_XMMS2, test x$want_xmms2 = xyes)
|
||||
@ -327,7 +341,7 @@ dnl
|
||||
|
||||
want_imlib2=no
|
||||
AC_ARG_ENABLE(imlib2,
|
||||
[ --enable-imlib2 enable if you want Imlib2 support [[default=no]]],
|
||||
[ --enable-imlib2 enable if you want Imlib2 support [[default=no]]],
|
||||
[want_imlib2="$enableval"])
|
||||
|
||||
AM_CONDITIONAL(BUILD_IMLIB2, test x$want_imlib2 = xyes)
|
||||
|
547
doc/conky.1
547
doc/conky.1
File diff suppressed because it is too large
Load Diff
@ -452,6 +452,27 @@
|
||||
<para></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command><option>goto</option></command>
|
||||
<option>x</option>
|
||||
</term>
|
||||
<listitem>
|
||||
The next element will be printed at position 'x'.
|
||||
<para></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command><option>hddtemp</option></command>
|
||||
<option>dev, (host,(port))</option>
|
||||
</term>
|
||||
<listitem>
|
||||
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.
|
||||
<para></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command><option>head</option></command>
|
||||
@ -1174,6 +1195,16 @@
|
||||
<para></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command><option>tab</option></command>
|
||||
<option>(width, (start))</option>
|
||||
</term>
|
||||
<listitem>
|
||||
Puts a tab of the specified width, starting from column 'start'.
|
||||
<para></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>
|
||||
<command><option>tail</option></command>
|
||||
|
@ -62,9 +62,13 @@ if BUILD_X11
|
||||
x11 = x11.c
|
||||
endif
|
||||
|
||||
conky_SOURCES = common.c fs.c $(linux) mail.c mixer.c $(seti) $(mpd) $(xmms2) $(solaris) $(freebsd) $(netbsd) $(port_monitors) conky.c conky.h $(x11) $(mldonkey) remoted.c remoted.h remotec.c remotec.h $(xmms) $(bmpx)
|
||||
if BUILD_HDDTEMP
|
||||
hddtemp = hddtemp.c
|
||||
endif
|
||||
|
||||
conky_SOURCES = common.c fs.c $(linux) mail.c mixer.c $(seti) $(mpd) $(xmms2) $(solaris) $(freebsd) $(netbsd) $(port_monitors) conky.c conky.h $(x11) $(mldonkey) remoted.c remoted.h remotec.c remotec.h $(xmms) $(bmpx) $(hddtemp)
|
||||
|
||||
AM_LDFLAGS = $(X11_LIBS) $(XFT_LIBS) $(CAIRO_LIBS) $(PTHREAD_LIBS) -lm
|
||||
|
||||
EXTRA_DIST = seti.c linux.c solaris.c freebsd.c netbsd.c mpd.c libmpdclient.c \
|
||||
libmpdclient.h xmms2.c top.h mldonkey.c ftp.c ftp.h x11.c
|
||||
libmpdclient.h xmms2.c top.h mldonkey.c ftp.c ftp.h x11.c hddtemp.c
|
||||
|
216
src/conky.c
216
src/conky.c
@ -450,6 +450,8 @@ enum {
|
||||
OFFSET,
|
||||
VOFFSET,
|
||||
FONT,
|
||||
GOTO,
|
||||
TAB,
|
||||
};
|
||||
|
||||
static struct special_t {
|
||||
@ -752,6 +754,17 @@ static inline void new_alignc(char *buf, long c)
|
||||
new_special(buf, ALIGNC)->arg = c;
|
||||
}
|
||||
|
||||
static inline void new_goto(char *buf, long c)
|
||||
{
|
||||
new_special(buf, GOTO)->arg = c;
|
||||
}
|
||||
|
||||
static inline void new_tab(char *buf, int a, int b) {
|
||||
struct special_t *s = new_special(buf, TAB);
|
||||
s->width = a;
|
||||
s->arg = b;
|
||||
}
|
||||
|
||||
/* quite boring functions */
|
||||
|
||||
static inline void for_each_line(char *b, void (*f) (char *))
|
||||
@ -856,6 +869,8 @@ enum text_object_type {
|
||||
OBJ_fs_size,
|
||||
OBJ_fs_used,
|
||||
OBJ_fs_used_perc,
|
||||
OBJ_goto,
|
||||
OBJ_tab,
|
||||
OBJ_hr,
|
||||
OBJ_offset,
|
||||
OBJ_voffset,
|
||||
@ -1032,6 +1047,9 @@ enum text_object_type {
|
||||
OBJ_iconv_start,
|
||||
OBJ_iconv_stop,
|
||||
#endif
|
||||
#ifdef HDDTEMP
|
||||
OBJ_hddtemp,
|
||||
#endif
|
||||
};
|
||||
|
||||
struct text_object {
|
||||
@ -1112,6 +1130,11 @@ struct text_object {
|
||||
int connection_index; /* 0 to n-1 connections. */
|
||||
} tcp_port_monitor;
|
||||
#endif
|
||||
struct {
|
||||
char *addr;
|
||||
int port;
|
||||
char *dev;
|
||||
} hddtemp; /* 2 */
|
||||
} data;
|
||||
};
|
||||
|
||||
@ -1961,6 +1984,12 @@ static void free_text_objects(unsigned int count, struct text_object *objs)
|
||||
info.first_process = NULL;
|
||||
}
|
||||
break;
|
||||
#ifdef HDDTEMP
|
||||
case OBJ_hddtemp:
|
||||
free(objs[i].data.hddtemp.dev);
|
||||
free(objs[i].data.hddtemp.addr);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
free(objs);
|
||||
@ -2313,6 +2342,28 @@ static struct text_object *construct_text_object(const char *s, const char *arg,
|
||||
END OBJ(hr, 0) obj->data.i = arg ? atoi(arg) : 1;
|
||||
END OBJ(offset, 0) obj->data.i = arg ? atoi(arg) : 1;
|
||||
END OBJ(voffset, 0) obj->data.i = arg ? atoi(arg) : 1;
|
||||
END OBJ(goto, 0)
|
||||
|
||||
if (!arg) {
|
||||
ERR("goto needs arguments");
|
||||
obj->type = OBJ_text;
|
||||
obj->data.s = strdup("${goto}");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
obj->data.i = atoi(arg);
|
||||
|
||||
END OBJ(tab, 0)
|
||||
int a = 10, b = 0;
|
||||
if (arg) {
|
||||
if (sscanf(arg, "%d %d", &a, &b) != 2)
|
||||
sscanf(arg, "%d", &b);
|
||||
}
|
||||
if (a <= 0)
|
||||
a = 1;
|
||||
obj->data.pair.a = a;
|
||||
obj->data.pair.b = b;
|
||||
|
||||
END OBJ(i2c, INFO_I2C) char buf1[64], buf2[64];
|
||||
int n;
|
||||
|
||||
@ -2876,6 +2927,17 @@ static struct text_object *construct_text_object(const char *s, const char *arg,
|
||||
memset(&(info.bmpx), 0, sizeof(struct bmpx_s));
|
||||
END
|
||||
#endif
|
||||
#ifdef HDDTEMP
|
||||
OBJ(hddtemp, 0)
|
||||
if (!arg || scan_hddtemp(arg, &obj->data.hddtemp.dev,
|
||||
&obj->data.hddtemp.addr, &obj->data.hddtemp.port)) {
|
||||
ERR("hddtemp needs arguments");
|
||||
obj->type = OBJ_text;
|
||||
obj->data.s = strdup("${hddtemp}");
|
||||
return NULL;
|
||||
}
|
||||
END
|
||||
#endif
|
||||
#ifdef TCP_PORT_MONITOR
|
||||
OBJ(tcp_portmon, INFO_TCP_PORT_MONITOR)
|
||||
int argc, port_begin, port_end, item, connection_index;
|
||||
@ -3871,9 +3933,29 @@ static void generate_text_internal(char *p, int p_max_size, struct text_object *
|
||||
v[obj->data.loadavg[0] -
|
||||
1]);
|
||||
}
|
||||
OBJ(goto) {
|
||||
new_goto(p, obj->data.i);
|
||||
}
|
||||
OBJ(tab) {
|
||||
new_tab(p, obj->data.pair.a, obj->data.pair.b);
|
||||
}
|
||||
OBJ(hr) {
|
||||
new_hr(p, obj->data.i);
|
||||
}
|
||||
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) {
|
||||
snprintf(p, p_max_size, "N/A");
|
||||
} else if (unit == '*') {
|
||||
snprintf(p, p_max_size, "%s", temp);
|
||||
} else {
|
||||
snprintf(p, p_max_size, "%s?%c", temp, unit);
|
||||
}
|
||||
}
|
||||
OBJ(offset) {
|
||||
new_offset(p, obj->data.i);
|
||||
}
|
||||
@ -4834,57 +4916,9 @@ static inline int get_string_width_special(char *s)
|
||||
}
|
||||
|
||||
#ifdef X11
|
||||
static void text_size_updater(char *s);
|
||||
|
||||
int last_font_height;
|
||||
static void text_size_updater(char *s)
|
||||
{
|
||||
int w = 0;
|
||||
char *p;
|
||||
/* get string widths and skip specials */
|
||||
p = s;
|
||||
while (*p) {
|
||||
if (*p == SPECIAL_CHAR) {
|
||||
*p = '\0';
|
||||
w += get_string_width(s);
|
||||
*p = SPECIAL_CHAR;
|
||||
|
||||
if (specials[special_index].type == BAR
|
||||
|| specials[special_index].type == GRAPH) {
|
||||
w += specials[special_index].width;
|
||||
if (specials[special_index].height > last_font_height) {
|
||||
last_font_height = specials[special_index].height;
|
||||
last_font_height += font_ascent();
|
||||
}
|
||||
} else if (specials[special_index].type == OFFSET) {
|
||||
w += specials[special_index].arg + get_string_width("a"); /* filthy, but works */
|
||||
} else if (specials[special_index].type == VOFFSET) {
|
||||
last_font_height += specials[special_index].arg;
|
||||
} else if (specials[special_index].type == FONT) {
|
||||
selected_font = specials[special_index].font_added;
|
||||
if (font_height() > last_font_height) {
|
||||
last_font_height = font_height();
|
||||
}
|
||||
}
|
||||
|
||||
special_index++;
|
||||
s = p + 1;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
w += get_string_width(s);
|
||||
if (w > text_width) {
|
||||
text_width = w;
|
||||
}
|
||||
if (text_width > maximum_width && maximum_width) {
|
||||
text_width = maximum_width;
|
||||
}
|
||||
|
||||
text_height += last_font_height;
|
||||
last_font_height = font_height();
|
||||
}
|
||||
#endif /* X11 */
|
||||
|
||||
|
||||
#ifdef X11
|
||||
static void update_text_area()
|
||||
{
|
||||
int x, y;
|
||||
@ -4974,6 +5008,64 @@ static int cur_x, cur_y; /* current x and y for drawing */
|
||||
static int draw_mode; /* FG, BG or OUTLINE */
|
||||
static long current_color;
|
||||
|
||||
#ifdef X11
|
||||
static void text_size_updater(char *s)
|
||||
{
|
||||
int w = 0;
|
||||
char *p;
|
||||
/* get string widths and skip specials */
|
||||
p = s;
|
||||
while (*p) {
|
||||
if (*p == SPECIAL_CHAR) {
|
||||
*p = '\0';
|
||||
w += get_string_width(s);
|
||||
*p = SPECIAL_CHAR;
|
||||
|
||||
if (specials[special_index].type == BAR
|
||||
|| specials[special_index].type == GRAPH) {
|
||||
w += specials[special_index].width;
|
||||
if (specials[special_index].height > last_font_height) {
|
||||
last_font_height = specials[special_index].height;
|
||||
last_font_height += font_ascent();
|
||||
}
|
||||
} else if (specials[special_index].type == OFFSET) {
|
||||
w += specials[special_index].arg + get_string_width("a"); /* filthy, but works */
|
||||
} else if (specials[special_index].type == VOFFSET) {
|
||||
last_font_height += specials[special_index].arg;
|
||||
} else if (specials[special_index].type == GOTO) {
|
||||
if (specials[special_index].arg >= 0)
|
||||
w += (int)specials[special_index].arg - cur_x;
|
||||
} else if (specials[special_index].type == TAB) {
|
||||
int start = specials[special_index].arg;
|
||||
int step = specials[special_index].width;
|
||||
if (!step || step < 0)
|
||||
step = 10;
|
||||
w += step - (cur_x - text_start_x - start) % step;
|
||||
} else if (specials[special_index].type == FONT) {
|
||||
selected_font = specials[special_index].font_added;
|
||||
if (font_height() > last_font_height) {
|
||||
last_font_height = font_height();
|
||||
}
|
||||
}
|
||||
|
||||
special_index++;
|
||||
s = p + 1;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
w += get_string_width(s);
|
||||
if (w > text_width) {
|
||||
text_width = w;
|
||||
}
|
||||
if (text_width > maximum_width && maximum_width) {
|
||||
text_width = maximum_width;
|
||||
}
|
||||
|
||||
text_height += last_font_height;
|
||||
last_font_height = font_height();
|
||||
}
|
||||
#endif /* X11 */
|
||||
|
||||
static inline void set_foreground_color(long c)
|
||||
{
|
||||
current_color = c;
|
||||
@ -5410,14 +5502,26 @@ static void draw_line(char *s)
|
||||
arg);
|
||||
break;
|
||||
|
||||
case OFFSET:
|
||||
{
|
||||
w += specials[special_index].arg;
|
||||
}
|
||||
case OFFSET:
|
||||
w += specials[special_index].arg;
|
||||
break;
|
||||
case VOFFSET:
|
||||
|
||||
case VOFFSET:
|
||||
cur_y += specials[special_index].arg;
|
||||
break;
|
||||
|
||||
case GOTO:
|
||||
if (specials[special_index].arg >= 0)
|
||||
cur_x = (int)specials[special_index].arg;
|
||||
break;
|
||||
|
||||
case TAB:
|
||||
{
|
||||
cur_y += specials[special_index].arg;
|
||||
int start = specials[special_index].arg;
|
||||
int step = specials[special_index].width;
|
||||
if (!step || step < 0)
|
||||
step = 10;
|
||||
w = step - (cur_x - text_start_x - start) % step;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -599,6 +599,12 @@ extern mldonkey_config mlconfig;
|
||||
int get_mldonkey_status(mldonkey_config * config, mldonkey_info * info);
|
||||
#endif
|
||||
|
||||
/* in hddtemp.c */
|
||||
#ifdef HDDTEMP
|
||||
int scan_hddtemp(const char *arg, char **dev, char **addr, int *port);
|
||||
char *get_hddtemp_info(char *dev, char *addr, int port, char *unit);
|
||||
#endif /* HDDTEMP */
|
||||
|
||||
/* in linux.c */
|
||||
|
||||
/* nothing to see here */
|
||||
@ -607,3 +613,5 @@ int get_mldonkey_status(mldonkey_config * config, mldonkey_info * info);
|
||||
extern int do_it(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user