diff --git a/AUTHORS b/AUTHORS index 9f97a2b3..2e855aab 100644 --- a/AUTHORS +++ b/AUTHORS @@ -270,6 +270,7 @@ roiban adi Ryan Tandy fs_type patch + if_mpd_playing patch Rui Paulo NetBSD support diff --git a/ChangeLog b/ChangeLog index 8e4c00bb..b628012f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,7 @@ 2008-10-08 * Applied OpenBSD patches + * Added $if_mpd_playing patch (thanks tarpman) 2008-09-24 * Introduced (buggy) support for IMAP IDLE diff --git a/README b/README index af78f429..47028ec7 100644 --- a/README +++ b/README @@ -1230,8 +1230,13 @@ conky(1) conky(1) name, depending on whats available + 1mif_mpd_playing0m + if mpd is playing or paused, display everything between + $if_mpd_playing and the matching $endif + + 1mnameserver (index)0m - 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. @@ -1245,8 +1250,8 @@ conky(1) conky(1) 1mnvidia threshold temp gpufreq memfreq imagequality0m - Nvidia graficcard support for the XNVCtrl library. Each option - can be shortened to the least significant part. Temperatures + Nvidia graficcard support for the XNVCtrl library. Each option + can be shortened to the least significant part. Temperatures are printed as float, all other values as integer. 1mthreshold22m: the thresholdtemperature at which the gpu slows down @@ -1263,26 +1268,26 @@ conky(1) conky(1) 1mpb_battery item0m 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: 1mstatus22m: Display if battery is fully charged, charging, discharg‐ ing or absent (running on AC) - 1mpercent22m: Display charge of battery in percent, if charging or - discharging. Nothing will be displayed, if battery is fully + 1mpercent22m: Display charge of battery in percent, if charging or + discharging. Nothing will be displayed, if battery is fully charged or absent. 1mtime22m: 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. 1mplatform (dev) type n0m - 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. @@ -1297,13 +1302,13 @@ conky(1) conky(1) 1mpop3_used (args)0m - 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] [-r re‐ + 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] [-r re‐ tries]". Default port is 110, default interval is 5 minutes, and default number of retries before giving up is 5. If the password - is supplied as ’*’, you will be prompted to enter the password + is supplied as ’*’, you will be prompted to enter the password when Conky starts. @@ -1321,14 +1326,14 @@ conky(1) conky(1) 1mscroll length (step) text0m - Scroll ’text’ by ’step’ characters showing ’length’ number of - characters at the same time. The text may also contain vari‐ + Scroll ’text’ by ’step’ characters showing ’length’ number of + characters at the same time. The text may also contain vari‐ ables. ’step’ is optional and defaults to 1 if not set. If a var - creates output on multiple lines then the lines are placed be‐ - hind each other separated with a ’|’-sign. Do NOT use vars that - change colors or otherwise affect the design inside a scrolling - text. If you want spaces between the start and the end of - ’text’, place them at the end of ’text’ not at the front ("foo‐ + creates output on multiple lines then the lines are placed be‐ + hind each other separated with a ’|’-sign. Do NOT use vars that + change colors or otherwise affect the design inside a scrolling + text. If you want spaces between the start and the end of + ’text’, place them at the end of ’text’ not at the front ("foo‐ bar" and " foobar" can both generate "barfoo" but "foobar " will keep the spaces like this "bar foo"). @@ -1338,35 +1343,35 @@ conky(1) conky(1) 1msmapi (ARGS)0m - 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. 1msmapi_bat_bar (INDEX),(height),(width)0m - 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. 1msmapi_bat_perc (INDEX)0m - 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. 1msmapi_bat_power INDEX0m - when using smapi, display the current power of the battery with - index INDEX in watt. This is a separate variable because the - original read out value is being converted from mW. The sign of - the output reflects charging (positive) or discharging (nega‐ + when using smapi, display the current power of the battery with + index INDEX in watt. This is a separate variable because the + original read out value is being converted from mW. The sign of + the output reflects charging (positive) or discharging (nega‐ tive) state. 1msmapi_bat_temp INDEX0m when using smapi, display the current temperature of the battery - with index INDEX in degree Celsius. This is a separate variable + with index INDEX in degree Celsius. This is a separate variable because the original read out value is being converted from mil‐ li degree Celsius. @@ -1411,36 +1416,36 @@ conky(1) conky(1) 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: - 1m${tcp_portmon 6881 6999 count} 22m- displays the number of connec‐ + 1m${tcp_portmon 6881 6999 count} 22m- displays the number of connec‐ tions in the bittorrent port range - 1m${tcp_portmon 22 22 rip 0} 22m- displays the remote host ip of the + 1m${tcp_portmon 22 22 rip 0} 22m- displays the remote host ip of the first sshd connection - 1m${tcp_portmon 22 22 rip 9} 22m- displays the remote host ip of the + 1m${tcp_portmon 22 22 rip 9} 22m- displays the remote host ip of the tenth sshd connection 1m${tcp_portmon 1 1024 rhost 0} 22m- displays the remote host name of the first connection on a privileged port 1m${tcp_portmon 1 1024 rport 4} 22m- displays the remote host port of the fifth connection on a privileged port - 1m${tcp_portmon 1 65535 lservice 14} 22m- displays the local service + 1m${tcp_portmon 1 65535 lservice 14} 22m- 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. 1mtexeci interval command0m - 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. @@ -1449,8 +1454,8 @@ conky(1) conky(1) 1mrss url delay_in_minutes action item_num0m - 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. @@ -1465,7 +1470,7 @@ conky(1) conky(1) 1mtime (format)0m - Local time, see man strftime to get more information about for‐ + Local time, see man strftime to get more information about for‐ mat @@ -1474,23 +1479,23 @@ conky(1) conky(1) 1mtztime (timezone) (format)0m - 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. 1mtotaldown net0m - 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. 1mtop type, num0m - 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. @@ -1514,11 +1519,11 @@ conky(1) conky(1) Upload speed in KiB with one decimal - 1mupspeedgraph normal|log net (height),(width) (gradient colour 1) (gra‐0m + 1mupspeedgraph normal|log net (height),(width) (gradient colour 1) (gra‐0m 1mdient colour 2) (scale)0m - Upload speed graph, colours defined in hex, minus the #. If - scale is non-zero, it becomes the scale for the graph. Uses a - logarithmic scale (to see small numbers) when you use "log" in‐ + Upload speed graph, colours defined in hex, minus the #. If + scale is non-zero, it becomes the scale for the graph. Uses a + logarithmic scale (to see small numbers) when you use "log" in‐ stead of "normal". @@ -1546,12 +1551,12 @@ conky(1) conky(1) 1mvoffset (pixels)0m - 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. 1mvoltage_mv (n)0m - 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. @@ -1670,7 +1675,7 @@ conky(1) conky(1) 1meve api_userid api_key character_id0m - Fetches your currently training skill from the Eve Online API + Fetches your currently training skill from the Eve Online API servers (http://www.eve-online.com/) and displays the skill along with the remaining training time. @@ -1689,13 +1694,13 @@ conky(1) conky(1) 1mBUGS0m 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. 1mSEE ALSO0m @@ -1706,11 +1711,11 @@ conky(1) conky(1) #conky on irc.freenode.net 1mCOPYING0m - 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). 1mAUTHORS0m @@ -1718,4 +1723,4 @@ conky(1) conky(1) - 2008-09-28 conky(1) + 2008-10-08 conky(1) diff --git a/doc/conky.1 b/doc/conky.1 index 70dd03ea..b194b531 100644 --- a/doc/conky.1 +++ b/doc/conky.1 @@ -5,7 +5,7 @@ \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac -.TH conky 1 2008-09-28 "" "" +.TH conky 1 2008-10-08 "" "" .SH NAME conky \- A system monitor for X originally based on the torsmo code, but more kickass. It just keeps on given'er. Yeah. .SH SYNOPSIS @@ -1048,6 +1048,10 @@ Prints the file name of the current MPD song \fB\*(T<\fBmpd_smart\fR\*(T>\fR \*(T<\fB(max length)\fR\*(T> Prints the song name in either the form "artist - title" or file name, depending on whats available +.TP +\fB\*(T<\fBif_mpd_playing\fR\*(T>\fR +if mpd is playing or paused, display everything between $if_mpd_playing and the matching $endif + .TP \fB\*(T<\fBnameserver\fR\*(T>\fR \*(T<\fB(index)\fR\*(T> Print a nameserver from /etc/resolv.conf. Index starts at and defaults to 0. diff --git a/doc/docs.xml b/doc/docs.xml index 4b9d9fd4..5d5d5599 100644 --- a/doc/docs.xml +++ b/doc/docs.xml @@ -16,7 +16,7 @@ Brenden Matthews - 2008-09-28 + 2008-10-08 diff --git a/doc/variables.xml b/doc/variables.xml index 925b6e4d..fcab7c44 100644 --- a/doc/variables.xml +++ b/doc/variables.xml @@ -1572,6 +1572,15 @@ + + + + + + if mpd is playing or paused, display everything between $if_mpd_playing and the matching $endif + + + diff --git a/src/conky.c b/src/conky.c index 3081b2b7..878f8a41 100644 --- a/src/conky.c +++ b/src/conky.c @@ -1317,6 +1317,7 @@ enum text_object_type { OBJ_mpd_file, OBJ_mpd_percent, OBJ_mpd_smart, + OBJ_if_mpd_playing, #endif #ifdef MOC OBJ_moc_state, @@ -2537,6 +2538,7 @@ static void free_text_objects(struct text_object_list *text_object_list, char fu case OBJ_mpd_file: case OBJ_mpd_percent: case OBJ_mpd_smart: + case OBJ_if_mpd_playing: if (full) { free_mpd_vars(&info.mpd); } @@ -3992,6 +3994,13 @@ static struct text_object *construct_text_object(const char *s, } else { obj->data.i = 0; } + END OBJ_THREAD(if_mpd_playing, INFO_MPD) + if (blockdepth >= MAX_IF_BLOCK_DEPTH) { + CRIT_ERR("MAX_IF_BLOCK_DEPTH exceeded"); + } + blockstart[blockdepth] = object_count; + obj->data.ifblock.pos = object_count + 2; + blockdepth++; #endif /* MPD */ #ifdef MOC END OBJ_THREAD(moc_state, INFO_MOC) @@ -5948,6 +5957,14 @@ static void generate_text_internal(char *p, int p_max_size, *p = 0; } } + OBJ(if_mpd_playing) { + if (cur->mpd.is_playing) { + if_jumped = 0; + } else { + i = obj->data.ifblock.pos; + if_jumped = 1; + } + } #endif #ifdef MOC diff --git a/src/mpd.c b/src/mpd.c index cc507577..150bb1cf 100644 --- a/src/mpd.c +++ b/src/mpd.c @@ -113,6 +113,7 @@ void clear_mpd_stats(struct mpd_s *mpd) *mpd->repeat = 0; *mpd->track = 0; *mpd->status = 0; + mpd->is_playing = 0; mpd->bitrate = 0; mpd->progress = 0; mpd->elapsed = 0; @@ -208,6 +209,7 @@ void *update_mpd(void *arg) } if (status->state == MPD_STATUS_STATE_PLAY || status->state == MPD_STATUS_STATE_PAUSE) { + mpd->is_playing = 1; mpd->bitrate = status->bitRate; mpd->progress = (float) status->elapsedTime / status->totalTime; diff --git a/src/mpd.h b/src/mpd.h index 2ff1b84a..b06871fc 100644 --- a/src/mpd.h +++ b/src/mpd.h @@ -14,6 +14,7 @@ struct mpd_s { char *track; char *name; char *file; + int is_playing; int volume; unsigned int port; char host[128];