Hello community, here is the log from the commit of package conky for openSUSE:Factory checked in at 2020-07-28 17:26:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/conky (Old) and /work/SRC/openSUSE:Factory/.conky.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "conky" Tue Jul 28 17:26:10 2020 rev:31 rq:823080 version:1.11.6 Changes: -------- --- /work/SRC/openSUSE:Factory/conky/conky.changes 2020-04-14 16:17:44.535401286 +0200 +++ /work/SRC/openSUSE:Factory/.conky.new.3592/conky.changes 2020-07-28 17:27:17.430037624 +0200 @@ -1,0 +2,12 @@ +Tue Jul 28 06:55:32 UTC 2020 - Michael Vetter <mvet...@suse.com> + +- Update to 1.11.6: + * Fix negative RAM usage (#878) + * Add nvidia driverversion variable (#889) + * properly format PIDs longer than 5 digits + * linux: update statistics based on newer kernel interface (#859) + * Fix segfault on pulseaudio tunnel sinks + * Added lower_case and upper_case commands +- Remove fix-negative-memory.patch: upstreamed + +------------------------------------------------------------------- Old: ---- conky-1.11.5.tar.gz fix-negative-memory.patch New: ---- conky-1.11.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ conky.spec ++++++ --- /var/tmp/diff_new_pack.F4P3og/_old 2020-07-28 17:27:20.342040928 +0200 +++ /var/tmp/diff_new_pack.F4P3og/_new 2020-07-28 17:27:20.342040928 +0200 @@ -25,7 +25,7 @@ %bcond_with xmms2 %endif Name: conky -Version: 1.11.5 +Version: 1.11.6 Release: 0 Summary: A System Monitor License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT @@ -37,7 +37,6 @@ Source3: README.SUSE Patch1: conky-1.10.1-avoid-git.patch Patch2: conky.timestamp.patch -Patch3: fix-negative-memory.patch BuildRequires: cmake BuildRequires: docbook-xsl-stylesheets BuildRequires: docbook2x ++++++ conky-1.10.1-avoid-git.patch ++++++ --- /var/tmp/diff_new_pack.F4P3og/_old 2020-07-28 17:27:20.378040970 +0200 +++ /var/tmp/diff_new_pack.F4P3og/_new 2020-07-28 17:27:20.378040970 +0200 @@ -1,6 +1,6 @@ -diff -urEbw conky-1.11.3/cmake/Conky.cmake conky-1.11.3.new/cmake/Conky.cmake ---- conky-1.11.3/cmake/Conky.cmake 2019-02-23 03:12:15.000000000 +0100 -+++ conky-1.11.3.new/cmake/Conky.cmake 2019-05-27 13:28:10.901251709 +0200 +diff -urEbw conky-1.11.6/cmake/Conky.cmake conky-1.11.6.new/cmake/Conky.cmake +--- conky-1.11.6/cmake/Conky.cmake 2020-07-27 14:01:52.000000000 +0200 ++++ conky-1.11.6.new/cmake/Conky.cmake 2020-07-28 09:01:36.198586808 +0200 @@ -18,7 +18,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # ++++++ conky-1.11.5.tar.gz -> conky-1.11.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/bin/clang-tidy-diff.py new/conky-1.11.6/bin/clang-tidy-diff.py --- old/conky-1.11.5/bin/clang-tidy-diff.py 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/bin/clang-tidy-diff.py 2020-07-27 14:01:52.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # #===- clang-tidy-diff.py - ClangTidy Diff Checker ------------*- python -*--===# # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/bin/run-clang-format.py new/conky-1.11.6/bin/run-clang-format.py --- old/conky-1.11.5/bin/run-clang-format.py 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/bin/run-clang-format.py 2020-07-27 14:01:52.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """A wrapper script around clang-format, suitable for linting multiple files and to use for continuous integration. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/cmake/Conky.cmake new/conky-1.11.6/cmake/Conky.cmake --- old/conky-1.11.5/cmake/Conky.cmake 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/cmake/Conky.cmake 2020-07-27 14:01:52.000000000 +0200 @@ -125,7 +125,7 @@ # Do version stuff set(VERSION_MAJOR "1") set(VERSION_MINOR "11") -set(VERSION_PATCH "5") +set(VERSION_PATCH "6") find_program(APP_AWK awk) if(NOT APP_AWK) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/cmake/scripts/clang-format-check-changed.py new/conky-1.11.6/cmake/scripts/clang-format-check-changed.py --- old/conky-1.11.5/cmake/scripts/clang-format-check-changed.py 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/cmake/scripts/clang-format-check-changed.py 2020-07-27 14:01:52.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import argparse import os @@ -116,7 +116,7 @@ def run_clang_format(clang_format_bin, changed_files): """ - Run clang format on a list of files + Run clang format on a list of files @return 0 if formatted correctly. """ if len(changed_files) == 0: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/data/conky.conf new/conky-1.11.6/data/conky.conf --- old/conky-1.11.5/data/conky.conf 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/data/conky.conf 2020-07-27 14:01:52.000000000 +0200 @@ -77,7 +77,7 @@ ${color grey}Networking: Up:$color ${upspeed} ${color grey} - Down:$color ${downspeed} $hr -${color grey}Name PID CPU% MEM% +${color grey}Name PID CPU% MEM% ${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/doc/config_settings.xml new/conky-1.11.6/doc/config_settings.xml --- old/conky-1.11.5/doc/config_settings.xml 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/doc/config_settings.xml 2020-07-27 14:01:52.000000000 +0200 @@ -1080,6 +1080,15 @@ <varlistentry> <term> <command> + <option>lowercase</option> + </command> + </term> + <listitem>Boolean value, if true, text is rendered in lower case. + <para /></listitem> + </varlistentry> + <varlistentry> + <term> + <command> <option>use_spacer</option> </command> </term> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/doc/variables.xml new/conky-1.11.6/doc/variables.xml --- old/conky-1.11.5/doc/variables.xml 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/doc/variables.xml 2020-07-27 14:01:52.000000000 +0200 @@ -2703,6 +2703,16 @@ <varlistentry> <term> <command> + <option>mpd_comment</option> + </command> + <option>(max length)</option> + </term> + <listitem>Comment of current MPD song. + <para /></listitem> + </varlistentry> + <varlistentry> + <term> + <command> <option>mpd_track</option> </command> </term> @@ -2923,6 +2933,10 @@ <command>modelname</command> <option>name of the GPU card</option> </member> + <member> + <command>driverversion</command> + <option>Driver version</option> + </member> </simplelist></para></listitem> </varlistentry> <varlistentry> @@ -3839,11 +3853,41 @@ <varlistentry> <term> <command> - <option>start_case</option> + <option>startcase</option> + </command> + <option>text</option> + </term> + <listitem>Capitalises the start of each word. + <para /></listitem> + </varlistentry> + <varlistentry> + <term> + <command> + <option>lowercase</option> + </command> + <option>text</option> + </term> + <listitem>Converts all letters into lowercase. + <para /></listitem> + </varlistentry> + <varlistentry> + <term> + <command> + <option>uppercase</option> + </command> + <option>text</option> + </term> + <listitem>Converts all letters into uppercase. + <para /></listitem> + </varlistentry> + <varlistentry> + <term> + <command> + <option>rstrip</option> </command> <option>text</option> </term> - <listitem>All words capitalized regardless. + <listitem>Strips all trailing whitespace from input. <para /></listitem> </varlistentry> <varlistentry> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/extras/nano/conky.nanorc new/conky-1.11.6/extras/nano/conky.nanorc --- old/conky-1.11.5/extras/nano/conky.nanorc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/extras/nano/conky.nanorc 2020-07-27 14:01:52.000000000 +0200 @@ -11,7 +11,7 @@ color yellow "\<(above|below|bottom_left|bottom_right|bottom_middle|desktop|dock|no|none|normal|override|skip_pager|skip_taskbar|sticky|top_left|top_right|top_middle|middle_left|middle_right|middle_middle|undecorated|yes)\>" ## Variables -color brightblue "\<(acpiacadapter|acpifan|acpitemp|addr|addrs|alignc|alignr|apcupsd|apcupsd_cable|apcupsd_charge|apcupsd_lastxfer|apcupsd_linev|apcupsd_load|apcupsd_loadbar|apcupsd_loadgauge|apcupsd_loadgraph|apcupsd_model|apcupsd_name|apcupsd_status|apcupsd_temp|apcupsd_timeleft|apcupsd_upsmode|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_main_volume|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|battery_bar|battery_percent|battery_short|battery_time|blink|buffers|cached|cat|catp|cmdline_to_pid|color|color0|color1|color2|color3|color4|color5|color6|color7|color8|color9|combine|conky_build_arch|conky_build_date|conky_version|cpu|cpubar|cpugauge|cpugraph|curl|desktop|desktop_name|desktop_number|disk_protect|diskio|diskio_read|diskio_write|diskiograph|diskiograph_read|diskiograph_write|distribution|downspeed|downspeedf|downspeedgraph|draft_mails|else|endif|entropy_avail|entropy_bar|entropy_perc|entropy_poolsize|eval|eve|exec|execbar|execgauge|execgraph|execi|execibar|execigauge|execigraph|execp|execpi|flagged_mails|font|font0|font1|font2|font3|font4|font5|font6|font7|font8|font9|format_time|forwarded_mails|freq|freq_g|fs_bar|fs_bar_free|fs_free|fs_free_perc|fs_size|fs_type|fs_used|fs_used_perc|goto|gw_iface|gw_ip|hddtemp|head|hr|hwmon|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|ibm_brightness|ibm_fan|ibm_temps|ibm_volume|ical|iconv_start|iconv_stop|if_empty|if_existing|if_gw|if_match|if_mixer_mute|if_mounted|if_mpd_playing|if_running|if_smapi_bat_installed|if_up|if_updatenr|if_pa_sink_muted|if_xmms2_connected|image|imap_messages|imap_unseen|ioscheduler|irc|journal|kernel|laptop_mode|lines|loadavg|loadgraph|lua|lua_bar|lua_gauge|lua_graph|lua_parse|machine|mails|mboxscan|mem|memwithbuffers|membar|memwithbuffersbar|memwithbuffersgraph|memeasyfree|memfree|memgauge|memgraph|memmax|memperc|mixer|mixerbar|mixerl|mixerlbar|mixerr|mixerrbar|moc_album|moc_artist|moc_bitrate|moc_curtime|moc_file|moc_rate|moc_song|moc_state|moc_timeleft|moc_title|moc_totaltime|monitor|monitor_number|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_random|mpd_repeat|mpd_smart|mpd_status|mpd_title|mpd_track|mpd_vol|mysql|nameserver|new_mails|nodename|nodename_short|no_update|nvidia|obsd_product|obsd_sensors_fan|obsd_sensors_temp|obsd_sensors_volt|obsd_vendor|offset|outlinecolor|pa_sink_volume|pa_sink_volumebar|pa_sink_description|pa_card_name pa_card_active_profile|pb_battery|pid_chroot|pid_cmdline|pid_cwd|pid_environ|pid_environ_list|pid_exe|pid_nice|pid_openfiles|pid_parent|pid_priority|pid_state|pid_state_short|pid_stderr|pid_stdin|pid_stdout|pid_threads|pid_thread_list|pid_time_kernelmode|pid_time_usermode|pid_time|pid_uid|pid_euid|pid_suid|pid_fsuid|pid_gid|pid_egid|pid_sgid|pid_fsgid|pid_read|pid_vmpeak|pid_vmsize|pid_vmlck|pid_vmhwm|pid_vmrss|pid_vmdata|pid_vmstk|pid_vmexe|pid_vmlib|pid_vmpte|pid_write|platform|pop3_unseen|pop3_used|processes|read_tcp|read_udp|replied_mails|rss|running_processes|running_threads|scroll|seen_mails|shadecolor|sip_status|smapi|smapi_bat_bar|smapi_bat_perc|smapi_bat_power|smapi_bat_temp|sony_fanspeed|stippled_hr|stock|swap|swapbar|swapfree|swapmax|swapperc|sysname|tab|tail|tcp_ping|tcp_portmon|template0|template1|template2|template3|template4|template5|template6|template7|template8|template9|texeci|texecpi|threads|time|to_bytes|top|top_io|top_mem|top_time|totaldown|totalup|trashed_mails|tztime|gid_name|uid_name|unflagged_mails|unforwarded_mails|unreplied_mails|unseen_mails|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|user_names|user_number|user_terms|user_times|user_time|utime|voffset|voltage_mv|voltage_v|weather|wireless_ap|wireless_bitrate|wireless_essid|wireless_link_bar|wireless_link_qual|wireless_link_qual_max|wireless_link_qual_perc|wireless_mode|words|xmms2_album|xmms2_artist|xmms2_bar|xmms2_bitrate|xmms2_comment|xmms2_date|xmms2_duration|xmms2_elapsed|xmms2_genre|xmms2_id|xmms2_percent|xmms2_playlist|xmms2_size|xmms2_smart|xmms2_status|xmms2_timesplayed|xmms2_title|xmms2_tracknr|xmms2_url)\>" +color brightblue "\<(acpiacadapter|acpifan|acpitemp|addr|addrs|alignc|alignr|apcupsd|apcupsd_cable|apcupsd_charge|apcupsd_lastxfer|apcupsd_linev|apcupsd_load|apcupsd_loadbar|apcupsd_loadgauge|apcupsd_loadgraph|apcupsd_model|apcupsd_name|apcupsd_status|apcupsd_temp|apcupsd_timeleft|apcupsd_upsmode|apm_adapter|apm_battery_life|apm_battery_time|audacious_bar|audacious_bitrate|audacious_channels|audacious_filename|audacious_frequency|audacious_length|audacious_length_seconds|audacious_main_volume|audacious_playlist_length|audacious_playlist_position|audacious_position|audacious_position_seconds|audacious_status|audacious_title|battery|battery_bar|battery_percent|battery_short|battery_time|blink|buffers|cached|cat|catp|cmdline_to_pid|color|color0|color1|color2|color3|color4|color5|color6|color7|color8|color9|combine|conky_build_arch|conky_build_date|conky_version|cpu|cpubar|cpugauge|cpugraph|curl|desktop|desktop_name|desktop_number|disk_protect|diskio|diskio_read|diskio_write|diskiograph|diskiograph_read|diskiograph_write|distribution|downspeed|downspeedf|downspeedgraph|draft_mails|else|endif|entropy_avail|entropy_bar|entropy_perc|entropy_poolsize|eval|eve|exec|execbar|execgauge|execgraph|execi|execibar|execigauge|execigraph|execp|execpi|flagged_mails|font|font0|font1|font2|font3|font4|font5|font6|font7|font8|font9|format_time|forwarded_mails|freq|freq_g|fs_bar|fs_bar_free|fs_free|fs_free_perc|fs_size|fs_type|fs_used|fs_used_perc|goto|gw_iface|gw_ip|hddtemp|head|hr|hwmon|i2c|i8k_ac_status|i8k_bios|i8k_buttons_status|i8k_cpu_temp|i8k_left_fan_rpm|i8k_left_fan_status|i8k_right_fan_rpm|i8k_right_fan_status|i8k_serial|i8k_version|ibm_brightness|ibm_fan|ibm_temps|ibm_volume|ical|iconv_start|iconv_stop|if_empty|if_existing|if_gw|if_match|if_mixer_mute|if_mounted|if_mpd_playing|if_running|if_smapi_bat_installed|if_up|if_updatenr|if_pa_sink_muted|if_xmms2_connected|image|imap_messages|imap_unseen|ioscheduler|irc|journal|kernel|laptop_mode|lines|loadavg|loadgraph|lua|lua_bar|lua_gauge|lua_graph|lua_parse|machine|mails|mboxscan|mem|memwithbuffers|membar|memwithbuffersbar|memwithbuffersgraph|memeasyfree|memfree|memgauge|memgraph|memmax|memperc|mixer|mixerbar|mixerl|mixerlbar|mixerr|mixerrbar|moc_album|moc_artist|moc_bitrate|moc_curtime|moc_file|moc_rate|moc_song|moc_state|moc_timeleft|moc_title|moc_totaltime|monitor|monitor_number|mpd_album|mpd_artist|mpd_bar|mpd_bitrate|mpd_elapsed|mpd_file|mpd_length|mpd_name|mpd_percent|mpd_random|mpd_repeat|mpd_smart|mpd_status|mpd_title|mpd_comment|mpd_track|mpd_vol|mysql|nameserver|new_mails|nodename|nodename_short|no_update|nvidia|obsd_product|obsd_sensors_fan|obsd_sensors_temp|obsd_sensors_volt|obsd_vendor|offset|outlinecolor|pa_sink_volume|pa_sink_volumebar|pa_sink_description|pa_card_name pa_card_active_profile|pb_battery|pid_chroot|pid_cmdline|pid_cwd|pid_environ|pid_environ_list|pid_exe|pid_nice|pid_openfiles|pid_parent|pid_priority|pid_state|pid_state_short|pid_stderr|pid_stdin|pid_stdout|pid_threads|pid_thread_list|pid_time_kernelmode|pid_time_usermode|pid_time|pid_uid|pid_euid|pid_suid|pid_fsuid|pid_gid|pid_egid|pid_sgid|pid_fsgid|pid_read|pid_vmpeak|pid_vmsize|pid_vmlck|pid_vmhwm|pid_vmrss|pid_vmdata|pid_vmstk|pid_vmexe|pid_vmlib|pid_vmpte|pid_write|platform|pop3_unseen|pop3_used|processes|read_tcp|read_udp|replied_mails|rss|running_processes|running_threads|scroll|seen_mails|shadecolor|sip_status|smapi|smapi_bat_bar|smapi_bat_perc|smapi_bat_power|smapi_bat_temp|sony_fanspeed|stippled_hr|stock|swap|swapbar|swapfree|swapmax|swapperc|sysname|tab|tail|tcp_ping|tcp_portmon|template0|template1|template2|template3|template4|template5|template6|template7|template8|template9|texeci|texecpi|threads|time|to_bytes|top|top_io|top_mem|top_time|totaldown|totalup|trashed_mails|tztime|gid_name|uid_name|unflagged_mails|unforwarded_mails|unreplied_mails|unseen_mails|updates|upspeed|upspeedf|upspeedgraph|uptime|uptime_short|user_names|user_number|user_terms|user_times|user_time|utime|voffset|voltage_mv|voltage_v|weather|wireless_ap|wireless_bitrate|wireless_essid|wireless_link_bar|wireless_link_qual|wireless_link_qual_max|wireless_link_qual_perc|wireless_mode|words|xmms2_album|xmms2_artist|xmms2_bar|xmms2_bitrate|xmms2_comment|xmms2_date|xmms2_duration|xmms2_elapsed|xmms2_genre|xmms2_id|xmms2_percent|xmms2_playlist|xmms2_size|xmms2_smart|xmms2_status|xmms2_timesplayed|xmms2_title|xmms2_tracknr|xmms2_url)\>" color brightblue "\$\{?[0-9A-Z_!@#$*?-]+\}?" color cyan "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/extras/vim/syntax/conkyrc.vim new/conky-1.11.6/extras/vim/syntax/conkyrc.vim --- old/conky-1.11.5/extras/vim/syntax/conkyrc.vim 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/extras/vim/syntax/conkyrc.vim 2020-07-27 14:01:52.000000000 +0200 @@ -50,7 +50,7 @@ syn match ConkyrcVarStuff /{\@<=/ms=s contained nextgroup=ConkyrcVarName -syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour skipwhite acpiacadapter acpifan acpitemp addr addrs alignc alignr apcupsd apcupsd_cable apcupsd_charge apcupsd_lastxfer apcupsd_linev apcupsd_load apcupsd_loadbar apcupsd_loadgauge apcupsd_loadgraph apcupsd_model apcupsd_name apcupsd_status apcupsd_temp apcupsd_timeleft apcupsd_upsmode apm_adapter apm_battery_life apm_battery_time audacious_bar audacious_bitrate audacious_channels audacious_filename audacious_frequency audacious_length audacious_length_seconds audacious_main_volume audacious_playlist_length audacious_playlist_position audacious_position audacious_position_seconds audacious_status audacious_title battery battery_bar battery_percent battery_short battery_time blink buffers cached cat catp cmdline_to_pid color color0 color1 color2 color3 color4 color5 color6 color7 color8 color9 combine conky_build_arch conky_build_date conky_version cpu cpubar cpugauge cpugraph curl desktop desktop_name desktop_number disk_protect diskio diskio_read diskio_write diskiograph diskiograph_read diskiograph_write distribution downspeed downspeedf downspeedgraph draft_mails else endif entropy_avail entropy_bar entropy_perc entropy_poolsize eval eve exec execbar execgauge execgraph execi execibar execigauge execigraph execp execpi flagged_mails font font0 font1 font2 font3 font4 font5 font6 font7 font8 font9 format_time forwarded_mails freq freq_g fs_bar fs_bar_free fs_free fs_free_perc fs_size fs_type fs_used fs_used_perc goto gw_iface gw_ip hddtemp head hr hwmon i2c i8k_ac_status i8k_bios i8k_buttons_status i8k_cpu_temp i8k_left_fan_rpm i8k_left_fan_status i8k_right_fan_rpm i8k_right_fan_status i8k_serial i8k_version ibm_brightness ibm_fan ibm_temps ibm_volume ical iconv_start iconv_stop if_pa_sink_muted if_empty if_existing if_gw if_match if_mixer_mute if_mounted if_mpd_playing if_running if_smapi_bat_installed if_up if_updatenr if_xmms2_connected image imap_messages imap_unseen ioscheduler irc journal kernel laptop_mode lines loadavg loadgraph lua lua_bar lua_gauge lua_graph lua_parse machine mails mboxscan mem memwithbuffers membar memwithbuffersbar memwithbuffersgraph memeasyfree memfree memgauge memgraph memmax memperc mixer mixerbar mixerl mixerlbar mixerr mixerrbar moc_album moc_artist moc_bitrate moc_curtime moc_file moc_rate moc_song moc_state moc_timeleft moc_title moc_totaltime monitor monitor_number mpd_album mpd_artist mpd_bar mpd_bitrate mpd_elapsed mpd_file mpd_length mpd_name mpd_percent mpd_random mpd_repeat mpd_smart mpd_status mpd_title mpd_track mpd_vol mysql nameserver new_mails nodename nodename_short no_update nvidia obsd_product obsd_sensors_fan obsd_sensors_temp obsd_sensors_volt obsd_vendor offset outlinecolor pa_sink_volume pa_sink_volumebar pa_sink_description pa_card_name pa_card_active_profile pb_battery pid_chroot pid_cmdline pid_cwd pid_environ pid_environ_list pid_exe pid_nice pid_openfiles pid_parent pid_priority pid_state pid_state_short pid_stderr pid_stdin pid_stdout pid_threads pid_thread_list pid_time_kernelmode pid_time_usermode pid_time pid_uid pid_euid pid_suid pid_fsuid pid_gid pid_egid pid_sgid pid_fsgid pid_read pid_vmpeak pid_vmsize pid_vmlck pid_vmhwm pid_vmrss pid_vmdata pid_vmstk pid_vmexe pid_vmlib pid_vmpte pid_write platform pop3_unseen pop3_used processes read_tcp read_udp replied_mails rss running_processes running_threads scroll seen_mails shadecolor sip_status smapi smapi_bat_bar smapi_bat_perc smapi_bat_power smapi_bat_temp sony_fanspeed stippled_hr stock swap swapbar swapfree swapmax swapperc sysname tab tail tcp_ping tcp_portmon template0 template1 template2 template3 template4 template5 template6 template7 template8 template9 texeci texecpi threads time to_bytes top top_io top_mem top_time totaldown totalup trashed_mails tztime gid_name uid_name unflagged_mails unforwarded_mails unreplied_mails unseen_mails updates upspeed upspeedf upspeedgraph uptime uptime_short user_names user_number user_terms user_times user_time utime voffset voltage_mv voltage_v weather wireless_ap wireless_bitrate wireless_essid wireless_link_bar wireless_link_qual wireless_link_qual_max wireless_link_qual_perc wireless_mode words xmms2_album xmms2_artist xmms2_bar xmms2_bitrate xmms2_comment xmms2_date xmms2_duration xmms2_elapsed xmms2_genre xmms2_id xmms2_percent xmms2_playlist xmms2_size xmms2_smart xmms2_status xmms2_timesplayed xmms2_title xmms2_tracknr xmms2_url +syn keyword ConkyrcVarName contained nextgroup=ConkyrcNumber,ConkyrcColour skipwhite acpiacadapter acpifan acpitemp addr addrs alignc alignr apcupsd apcupsd_cable apcupsd_charge apcupsd_lastxfer apcupsd_linev apcupsd_load apcupsd_loadbar apcupsd_loadgauge apcupsd_loadgraph apcupsd_model apcupsd_name apcupsd_status apcupsd_temp apcupsd_timeleft apcupsd_upsmode apm_adapter apm_battery_life apm_battery_time audacious_bar audacious_bitrate audacious_channels audacious_filename audacious_frequency audacious_length audacious_length_seconds audacious_main_volume audacious_playlist_length audacious_playlist_position audacious_position audacious_position_seconds audacious_status audacious_title battery battery_bar battery_percent battery_short battery_time blink buffers cached cat catp cmdline_to_pid color color0 color1 color2 color3 color4 color5 color6 color7 color8 color9 combine conky_build_arch conky_build_date conky_version cpu cpubar cpugauge cpugraph curl desktop desktop_name desktop_number disk_protect diskio diskio_read diskio_write diskiograph diskiograph_read diskiograph_write distribution downspeed downspeedf downspeedgraph draft_mails else endif entropy_avail entropy_bar entropy_perc entropy_poolsize eval eve exec execbar execgauge execgraph execi execibar execigauge execigraph execp execpi flagged_mails font font0 font1 font2 font3 font4 font5 font6 font7 font8 font9 format_time forwarded_mails freq freq_g fs_bar fs_bar_free fs_free fs_free_perc fs_size fs_type fs_used fs_used_perc goto gw_iface gw_ip hddtemp head hr hwmon i2c i8k_ac_status i8k_bios i8k_buttons_status i8k_cpu_temp i8k_left_fan_rpm i8k_left_fan_status i8k_right_fan_rpm i8k_right_fan_status i8k_serial i8k_version ibm_brightness ibm_fan ibm_temps ibm_volume ical iconv_start iconv_stop if_pa_sink_muted if_empty if_existing if_gw if_match if_mixer_mute if_mounted if_mpd_playing if_running if_smapi_bat_installed if_up if_updatenr if_xmms2_connected image imap_messages imap_unseen ioscheduler irc journal kernel laptop_mode lines loadavg loadgraph lua lua_bar lua_gauge lua_graph lua_parse machine mails mboxscan mem memwithbuffers membar memwithbuffersbar memwithbuffersgraph memeasyfree memfree memgauge memgraph memmax memperc mixer mixerbar mixerl mixerlbar mixerr mixerrbar moc_album moc_artist moc_bitrate moc_curtime moc_file moc_rate moc_song moc_state moc_timeleft moc_title moc_totaltime monitor monitor_number mpd_album mpd_artist mpd_bar mpd_bitrate mpd_elapsed mpd_file mpd_length mpd_name mpd_percent mpd_random mpd_repeat mpd_smart mpd_status mpd_title mpd_comment mpd_track mpd_vol mysql nameserver new_mails nodename nodename_short no_update nvidia obsd_product obsd_sensors_fan obsd_sensors_temp obsd_sensors_volt obsd_vendor offset outlinecolor pa_sink_volume pa_sink_volumebar pa_sink_description pa_card_name pa_card_active_profile pb_battery pid_chroot pid_cmdline pid_cwd pid_environ pid_environ_list pid_exe pid_nice pid_openfiles pid_parent pid_priority pid_state pid_state_short pid_stderr pid_stdin pid_stdout pid_threads pid_thread_list pid_time_kernelmode pid_time_usermode pid_time pid_uid pid_euid pid_suid pid_fsuid pid_gid pid_egid pid_sgid pid_fsgid pid_read pid_vmpeak pid_vmsize pid_vmlck pid_vmhwm pid_vmrss pid_vmdata pid_vmstk pid_vmexe pid_vmlib pid_vmpte pid_write platform pop3_unseen pop3_used processes read_tcp read_udp replied_mails rss running_processes running_threads scroll seen_mails shadecolor sip_status smapi smapi_bat_bar smapi_bat_perc smapi_bat_power smapi_bat_temp sony_fanspeed stippled_hr stock swap swapbar swapfree swapmax swapperc sysname tab tail tcp_ping tcp_portmon template0 template1 template2 template3 template4 template5 template6 template7 template8 template9 texeci texecpi threads time to_bytes top top_io top_mem top_time totaldown totalup trashed_mails tztime gid_name uid_name unflagged_mails unforwarded_mails unreplied_mails unseen_mails updates upspeed upspeedf upspeedgraph uptime uptime_short user_names user_number user_terms user_times user_time utime voffset voltage_mv voltage_v weather wireless_ap wireless_bitrate wireless_essid wireless_link_bar wireless_link_qual wireless_link_qual_max wireless_link_qual_perc wireless_mode words xmms2_album xmms2_artist xmms2_bar xmms2_bitrate xmms2_comment xmms2_date xmms2_duration xmms2_elapsed xmms2_genre xmms2_id xmms2_percent xmms2_playlist xmms2_size xmms2_smart xmms2_status xmms2_timesplayed xmms2_title xmms2_tracknr xmms2_url hi def link ConkyrcComment Comment hi def link ConkyrcSetting Keyword diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/ccurl_thread.cc new/conky-1.11.6/src/ccurl_thread.cc --- old/conky-1.11.5/src/ccurl_thread.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/ccurl_thread.cc 2020-07-27 14:01:52.000000000 +0200 @@ -166,7 +166,7 @@ */ struct curl_data { - char uri[128]; + char *uri; float interval; }; @@ -180,24 +180,31 @@ } void curl_parse_arg(struct text_object *obj, const char *arg) { - int argc; struct curl_data *cd; float interval = 0; + char *space; - cd = static_cast<struct curl_data *>(malloc(sizeof(struct curl_data))); - memset(cd, 0, sizeof(struct curl_data)); - - argc = sscanf(arg, "%127s %f", cd->uri, &interval); - if (argc < 1) { - free(cd); + if (strlen(arg) < 1) { NORM_ERR("wrong number of arguments for $curl"); return; } - if (argc == 1) { - cd->interval = 15 * 60; - } else { + + cd = static_cast<struct curl_data *>(malloc(sizeof(struct curl_data))); + memset(cd, 0, sizeof(struct curl_data)); + + // Default to a 15 minute interval + cd->interval = 15 * 60; + + cd->uri = strdup(arg); + space = strchr(cd->uri, ' '); + if (space) { + // If an explicit interval was given, use that + char *interval_str = &space[1]; + *space = '\0'; + sscanf(interval_str, "%f", &interval); cd->interval = interval > 0 ? interval * 60 : active_update_interval(); } + obj->data.opaque = cd; } @@ -211,4 +218,8 @@ ccurl_process_info(p, p_max_size, cd->uri, cd->interval); } -void curl_obj_free(struct text_object *obj) { free_and_zero(obj->data.opaque); } +void curl_obj_free(struct text_object *obj) { + struct curl_data *cd = static_cast<struct curl_data *>(obj->data.opaque); + free_and_zero(cd->uri); + free_and_zero(obj->data.opaque); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/common.cc new/conky-1.11.6/src/common.cc --- old/conky-1.11.5/src/common.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/common.cc 2020-07-27 14:01:52.000000000 +0200 @@ -293,6 +293,14 @@ /* if you registered a callback with conky::register_cb, this will run it */ conky::run_all_callbacks(); + +#if !defined(__linux__) + /* XXX: move the following into the update_meminfo() functions? */ + if (no_buffers.get(*state)) { + info.mem -= info.bufmem; + info.memeasyfree += info.bufmem; + } +#endif } /* Ohkie to return negative values for temperatures */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/conky.cc new/conky-1.11.6/src/conky.cc --- old/conky-1.11.5/src/conky.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/conky.cc 2020-07-27 14:01:52.000000000 +0200 @@ -283,6 +283,9 @@ static conky::simple_config_setting<bool> stuff_in_uppercase("uppercase", false, true); +static conky::simple_config_setting<bool> stuff_in_lowercase("lowercase", false, + true); + /* Run how many times? */ static conky::range_config_setting<unsigned long> total_run_times( "total_run_times", 0, std::numeric_limits<unsigned long>::max(), 0, true); @@ -584,10 +587,10 @@ } if (short_units.get(*state)) { width = 5; - format = "%.*f%.1s"; + format = "%.*f %.1s"; } else { width = 7; - format = "%.*f%-.3s"; + format = "%.*f %-.3s"; } if (llabs(num) < 1000LL) { @@ -794,6 +797,14 @@ *tmp_p = toupper(static_cast<unsigned char>(*tmp_p)); tmp_p++; } + } else if (stuff_in_lowercase.get(*state)) { + char *tmp_p; + + tmp_p = text_buffer; + while (*tmp_p != 0) { + *tmp_p = tolower(static_cast<unsigned char>(*tmp_p)); + tmp_p++; + } } double ui = active_update_interval(); @@ -1220,6 +1231,38 @@ memcpy(tmpstring1, s, tbs); } +#if defined(BUILD_MATH) && defined(BUILD_X11) +/// Format \a size as a real followed by closest SI unit, with \a prec number +/// of digits after the decimal point. +static std::string formatSizeWithUnits(double size, int prec = 1) { + int div = 0; + double rem = 0; + + while (size >= 1024.0 && + static_cast<size_t>(div) < (sizeof suffixes / sizeof *suffixes)) { + rem = fmod(size, 1024.0); + div++; + size /= 1024.0; + } + + double size_d = size + rem / 1024.0; + + std::ostringstream result; + result.setf(std::ios::fixed, std::ios::floatfield); + result.precision(prec); + result << size_d; + result << " "; + + if (short_units.get(*state)) { + result << suffixes[div][0]; + } else { + result << suffixes[div]; + } + + return result.str(); +} +#endif /* BUILD_MATH && BUILD_X11 */ + int draw_each_line_inner(char *s, int special_index, int last_special_applied) { #ifndef BUILD_X11 static int cur_x, cur_y; /* current x and y for drawing */ @@ -1489,13 +1532,12 @@ if (show_graph_scale.get(*state) && (current->show_scale == 1)) { int tmp_x = cur_x; int tmp_y = cur_y; - char *tmp_str; cur_x += font_ascent() / 2; cur_y += font_h / 2; - if (asprintf(&tmp_str, "%.1f", current->scale)) { - draw_string(tmp_str); - free(tmp_str); - } + std::string tmp_str = formatSizeWithUnits( + current->scale_log != 0 ? std::pow(10.0, current->scale) + : current->scale); + draw_string(tmp_str.c_str()); cur_x = tmp_x; cur_y = tmp_y; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/core.cc new/conky-1.11.6/src/core.cc --- old/conky-1.11.5/src/core.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/core.cc 2020-07-27 14:01:52.000000000 +0200 @@ -882,9 +882,21 @@ #ifdef __x86_64__ END OBJ(freq2, 0) obj->callbacks.print = &print_freq2; #endif /* __x86_64__ */ - + END OBJ(startcase, 0) obj->data.s = STRNDUP_ARG; + obj->callbacks.print = &print_startcase; + obj->callbacks.free = &gen_free_opaque; + // Deprecated, for compatibility purposes only END OBJ(start_case, 0) obj->data.s = STRNDUP_ARG; - obj->callbacks.print = &print_cap; + obj->callbacks.print = &print_startcase; + obj->callbacks.free = &gen_free_opaque; + END OBJ(lowercase, 0) obj->data.s = STRNDUP_ARG; + obj->callbacks.print = &print_lowercase; + obj->callbacks.free = &gen_free_opaque; + END OBJ(uppercase, 0) obj->data.s = STRNDUP_ARG; + obj->callbacks.print = &print_uppercase; + obj->callbacks.free = &gen_free_opaque; + END OBJ(rstrip, 0) obj->data.s = STRNDUP_ARG; + obj->callbacks.print = &strip_trailing_whitespace; obj->callbacks.free = &gen_free_opaque; END OBJ(catp, 0) obj->data.s = STRNDUP_ARG; obj->callbacks.print = &print_catp; @@ -1077,7 +1089,7 @@ obj->data.s = STRNDUP_ARG; obj->callbacks.iftest = &if_existing_iftest; obj->callbacks.free = &gen_free_opaque; -#ifdef __linux__ +#if defined(__linux__) || defined(__FreeBSD__) END OBJ_IF_ARG(if_mounted, 0, "if_mounted needs an argument") obj->data.s = STRNDUP_ARG; obj->callbacks.iftest = &check_mount; @@ -1566,6 +1578,8 @@ obj->callbacks.print = &print_mpd_title; END OBJ(mpd_date, nullptr) mpd_set_maxlen(mpd_date); obj->callbacks.print = &print_mpd_date; + END OBJ(mpd_comment, nullptr) mpd_set_maxlen(mpd_comment); + obj->callbacks.print = &print_mpd_comment; END OBJ(mpd_random, nullptr) obj->callbacks.print = &print_mpd_random; END OBJ(mpd_repeat, nullptr) obj->callbacks.print = &print_mpd_repeat; END OBJ(mpd_elapsed, nullptr) obj->callbacks.print = &print_mpd_elapsed; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/linux.cc new/conky-1.11.6/src/linux.cc --- old/conky-1.11.5/src/linux.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/linux.cc 2020-07-27 14:01:52.000000000 +0200 @@ -61,6 +61,7 @@ #define _LINUX_IF_H #endif #include <linux/route.h> +#include <linux/version.h> #include <math.h> #include <pthread.h> #include <atomic> @@ -179,11 +180,18 @@ /* unsigned int a; */ char buf[256]; - unsigned long long shmem = 0, sreclaimable = 0; - - info.mem = info.memwithbuffers = info.memmax = info.memdirty = info.swap = - info.swapfree = info.swapmax = info.bufmem = info.buffers = info.cached = - info.memfree = info.memeasyfree = 0; + /* With multi-threading, calculations that require + * multple steps to reach a final result can cause havok + * if the intermediary calculations are directly assigned to the + * information struct (they may be read by other functions in the meantime). + * These variables keep the calculations local to the function and finish off + * the function by assigning the results to the information struct */ + unsigned long long shmem = 0, sreclaimable = 0, curmem = 0, curbufmem = 0, + cureasyfree = 0, memavail = 0; + + info.memmax = info.memdirty = info.swap = info.swapfree = info.swapmax = + info.memwithbuffers = info.buffers = info.cached = info.memfree = + info.memeasyfree = 0; if (!(meminfo_fp = open_file("/proc/meminfo", &reported))) { return 0; } @@ -204,6 +212,8 @@ sscanf(buf, "%*s %llu", &info.cached); } else if (strncmp(buf, "Dirty:", 6) == 0) { sscanf(buf, "%*s %llu", &info.memdirty); + } else if (strncmp(buf, "MemAvailable:", 13) == 0) { + sscanf(buf, "%*s %llu", &memavail); } else if (strncmp(buf, "Shmem:", 6) == 0) { sscanf(buf, "%*s %llu", &shmem); } else if (strncmp(buf, "SReclaimable:", 13) == 0) { @@ -211,8 +221,8 @@ } } - info.mem = info.memwithbuffers = info.memmax - info.memfree; - info.memeasyfree = info.memfree; + curmem = info.memwithbuffers = info.memmax - info.memfree; + cureasyfree = info.memfree; info.swap = info.swapmax - info.swapfree; /* Reclaimable memory: does not include shared memory, which is part of cached @@ -220,17 +230,35 @@ Note: when shared memory is swapped out, shmem decreases and swapfree decreases - we want this. */ - info.bufmem = (info.cached - shmem) + info.buffers + sreclaimable; + curbufmem = (info.cached - shmem) + info.buffers + sreclaimable; - /* Now (info.mem - info.bufmem) is the *really used* (aka unreclaimable) - memory. When this value reaches the size of the physical RAM, and swap is - full or non-present, OOM happens. Therefore this is the value users want to - monitor, regarding their RAM. - */ + /* Calculate the memory usage. + * + * The Linux Kernel introduced a new field for memory available, + * when possible, use that. + * https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773 + */ if (no_buffers.get(*state)) { - info.mem -= info.bufmem; - info.memeasyfree += info.bufmem; +#if LINUX_VERSION_CODE <= KERNEL_VERSION(3, 14, 0) + /* Now ('info.mem' - 'info.bufmem') is the *really used* (aka unreclaimable) + memory. When this value reaches the size of the physical RAM, and swap is + full or non-present, OOM happens. Therefore this is the value users want + to monitor, regarding their RAM. + */ + curmem -= curbufmem; + cureasyfree += curbufmem; +#else + curmem = info.memmax - memavail; + cureasyfree += curbufmem; +#endif } + + /* Now that we know that every calculation is finished we can wrap up + * by assigning the values to the information structure */ + info.mem = curmem; + info.bufmem = curbufmem; + info.memeasyfree = cureasyfree; + fclose(meminfo_fp); return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/misc.cc new/conky-1.11.6/src/misc.cc --- old/conky-1.11.5/src/misc.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/misc.cc 2020-07-27 14:01:52.000000000 +0200 @@ -85,27 +85,48 @@ delete[] buf; } -void print_cap(struct text_object *obj, char *p, unsigned int p_max_size) { - unsigned int x = 0; - int z = 0; - char buf[DEFAULT_TEXT_BUFFER_SIZE]; - char *src = obj->data.s; - char *dest = buf; - +void print_startcase(struct text_object *obj, char *p, + unsigned int p_max_size) { evaluate(obj->data.s, p, p_max_size); - if (0 != strcmp(p, "")) { src = p; } - for (; *src && p_max_size - 1 > x; src++, x++) { - if (0 == z) { - *dest++ = (toupper(static_cast<unsigned char>(*src))); + for (unsigned int x = 0, z = 0; x < p_max_size - 1 && p[x]; x++) { + if (isspace(p[x])) { + z = 0; + } else { + p[x] = z ? tolower(p[x]) : toupper(p[x]); z++; - continue; } - *dest++ = *src; - if (' ' == *src) z = 0; } - *dest = '\0'; - snprintf(p, p_max_size, "%s", buf); +} + +void print_lowercase(struct text_object *obj, char *p, + unsigned int p_max_size) { + evaluate(obj->data.s, p, p_max_size); + + for (unsigned int x = 0; x < p_max_size - 1 && p[x]; x++) + p[x] = tolower(p[x]); +} + +void print_uppercase(struct text_object *obj, char *p, + unsigned int p_max_size) { + evaluate(obj->data.s, p, p_max_size); + + for (unsigned int x = 0; x < p_max_size - 1 && p[x]; x++) + p[x] = toupper(p[x]); +} + +void strip_trailing_whitespace(struct text_object *obj, char *p, + unsigned int p_max_size) { + evaluate(obj->data.s, p, p_max_size); + for (unsigned int x = p_max_size - 2;; x--) { + if (p[x] && !isspace(p[x])) { + p[x + 1] = '\0'; + break; + } else if (x == 0) { + p[x] = '\0'; + break; + } + } } long long int apply_base_multiplier(const char *s, long long int num) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/misc.h new/conky-1.11.6/src/misc.h --- old/conky-1.11.5/src/misc.h 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/misc.h 2020-07-27 14:01:52.000000000 +0200 @@ -35,6 +35,9 @@ void print_cat(struct text_object *, char *, unsigned int); void print_catp(struct text_object *, char *, unsigned int); -void print_cap(struct text_object *, char *, unsigned int); +void print_startcase(struct text_object *, char *, unsigned int); +void print_lowercase(struct text_object *, char *, unsigned int); +void print_uppercase(struct text_object *, char *, unsigned int); +void strip_trailing_whitespace(struct text_object *, char *, unsigned int); long long apply_base_multiplier(const char *, long long int); #endif /* _MISC_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/mpd.cc new/conky-1.11.6/src/mpd.cc --- old/conky-1.11.5/src/mpd.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/mpd.cc 2020-07-27 14:01:52.000000000 +0200 @@ -113,23 +113,24 @@ mpd_password_setting mpd_password; struct mpd_result { - std::string title; - std::string artist; - std::string albumartist; + float progress{}; + int bitrate{}; + int elapsed{}; + int is_playing{}; + int length{}; + int vol{}; std::string album; + std::string albumartist; + std::string artist; + std::string comment; std::string date; - std::string status; + std::string file; + std::string name; std::string random; std::string repeat; + std::string status; + std::string title; std::string track; - std::string name; - std::string file; - int is_playing{}; - int vol{}; - float progress{}; - int bitrate{}; - int length{}; - int elapsed{}; }; class mpd_cb : public conky::callback<mpd_result> { @@ -261,14 +262,15 @@ (a) = b; \ else \ (a) = ""; - SETSTRING(mpd_info.artist, song->artist); - SETSTRING(mpd_info.albumartist, song->albumartist); SETSTRING(mpd_info.album, song->album); - SETSTRING(mpd_info.title, song->title); + SETSTRING(mpd_info.albumartist, song->albumartist); + SETSTRING(mpd_info.artist, song->artist); + SETSTRING(mpd_info.comment, song->comment); SETSTRING(mpd_info.date, song->date); - SETSTRING(mpd_info.track, song->track); - SETSTRING(mpd_info.name, song->name); SETSTRING(mpd_info.file, song->file); + SETSTRING(mpd_info.name, song->name); + SETSTRING(mpd_info.title, song->title); + SETSTRING(mpd_info.track, song->track); if (entity != nullptr) { mpd_freeInfoEntity(entity); entity = nullptr; @@ -390,18 +392,19 @@ snprintf(p, p_max_size, fmt, get_mpd().name acc); \ } -MPD_PRINT_GENERATOR(title, "%s", .c_str()) -MPD_PRINT_GENERATOR(artist, "%s", .c_str()) -MPD_PRINT_GENERATOR(albumartist, "%s", .c_str()) MPD_PRINT_GENERATOR(album, "%s", .c_str()) +MPD_PRINT_GENERATOR(albumartist, "%s", .c_str()) +MPD_PRINT_GENERATOR(artist, "%s", .c_str()) +MPD_PRINT_GENERATOR(bitrate, "%d", ) +MPD_PRINT_GENERATOR(comment, "%s", .c_str()) MPD_PRINT_GENERATOR(date, "%s", .c_str()) +MPD_PRINT_GENERATOR(file, "%s", .c_str()) +MPD_PRINT_GENERATOR(name, "%s", .c_str()) MPD_PRINT_GENERATOR(random, "%s", .c_str()) MPD_PRINT_GENERATOR(repeat, "%s", .c_str()) +MPD_PRINT_GENERATOR(status, "%s", .c_str()) +MPD_PRINT_GENERATOR(title, "%s", .c_str()) MPD_PRINT_GENERATOR(track, "%s", .c_str()) -MPD_PRINT_GENERATOR(name, "%s", .c_str()) -MPD_PRINT_GENERATOR(file, "%s", .c_str()) MPD_PRINT_GENERATOR(vol, "%d", ) -MPD_PRINT_GENERATOR(bitrate, "%d", ) -MPD_PRINT_GENERATOR(status, "%s", .c_str()) #undef MPD_PRINT_GENERATOR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/mpd.h new/conky-1.11.6/src/mpd.h --- old/conky-1.11.5/src/mpd.h 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/mpd.h 2020-07-27 14:01:52.000000000 +0200 @@ -28,24 +28,25 @@ #include <cstdint> /* text object functions */ -void print_mpd_elapsed(struct text_object *, char *, unsigned int); -void print_mpd_length(struct text_object *, char *, unsigned int); -uint8_t mpd_percentage(struct text_object *); double mpd_barval(struct text_object *); -void print_mpd_smart(struct text_object *, char *, unsigned int); -void print_mpd_title(struct text_object *, char *, unsigned int); -void print_mpd_artist(struct text_object *, char *, unsigned int); -void print_mpd_albumartist(struct text_object *, char *, unsigned int); +int check_mpd_playing(struct text_object *); +uint8_t mpd_percentage(struct text_object *); void print_mpd_album(struct text_object *, char *, unsigned int); +void print_mpd_albumartist(struct text_object *, char *, unsigned int); +void print_mpd_artist(struct text_object *, char *, unsigned int); +void print_mpd_bitrate(struct text_object *, char *, unsigned int); +void print_mpd_comment(struct text_object *, char *, unsigned int); void print_mpd_date(struct text_object *, char *, unsigned int); +void print_mpd_elapsed(struct text_object *, char *, unsigned int); +void print_mpd_file(struct text_object *, char *, unsigned int); +void print_mpd_length(struct text_object *, char *, unsigned int); +void print_mpd_name(struct text_object *, char *, unsigned int); void print_mpd_random(struct text_object *, char *, unsigned int); void print_mpd_repeat(struct text_object *, char *, unsigned int); +void print_mpd_smart(struct text_object *, char *, unsigned int); +void print_mpd_status(struct text_object *, char *, unsigned int); +void print_mpd_title(struct text_object *, char *, unsigned int); void print_mpd_track(struct text_object *, char *, unsigned int); -void print_mpd_name(struct text_object *, char *, unsigned int); -void print_mpd_file(struct text_object *, char *, unsigned int); void print_mpd_vol(struct text_object *, char *, unsigned int); -void print_mpd_bitrate(struct text_object *, char *, unsigned int); -void print_mpd_status(struct text_object *, char *, unsigned int); -int check_mpd_playing(struct text_object *); #endif /*MPD_H_*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/net_stat.cc new/conky-1.11.6/src/net_stat.cc --- old/conky-1.11.5/src/net_stat.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/net_stat.cc 2020-07-27 14:01:52.000000000 +0200 @@ -343,7 +343,7 @@ } /** - * returns the download speed in kiB/s for the interface referenced by obj + * returns the download speed in B/s for the interface referenced by obj * * @param[in] obj struct containting a member data, which is a struct * containing a void * to a net_stat struct @@ -351,13 +351,13 @@ double downspeedgraphval(struct text_object *obj) { auto *ns = static_cast<struct net_stat *>(obj->data.opaque); - return (ns != nullptr ? (ns->recv_speed / 1024.0) : 0); + return (ns != nullptr ? ns->recv_speed : 0); } double upspeedgraphval(struct text_object *obj) { auto *ns = static_cast<struct net_stat *>(obj->data.opaque); - return (ns != nullptr ? (ns->trans_speed / 1024.0) : 0); + return (ns != nullptr ? ns->trans_speed : 0); } #endif /* BUILD_X11 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/nvidia.cc new/conky-1.11.6/src/nvidia.cc --- old/conky-1.11.5/src/nvidia.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/nvidia.cc 2020-07-27 14:01:52.000000000 +0200 @@ -54,9 +54,10 @@ * ambienttemp [gpu_id]}°C FAN ${nvidia fanspeed [gpu_id]} RPM (${nvidia * fanlevel [gpu_id]}%) * - * miscelaneas: + * Miscellaneous: * OPENGL ${nvidia imagequality [gpu_id]} * GPU ${nvidia modelname [gpu_id]} + * DRIVER ${nvidia driverversion [gpu_id]} * * --==| NVIDIA Bars |==-- * LOAD ${nvidiabar [height][,width] gpuutil [gpu_id]} @@ -135,7 +136,7 @@ "fanlevel", "imagequality", // Miscellaneous - "modelname"}; + "modelname", "driverversion"}; // Enum for module arguments typedef enum _ARG_ID { @@ -185,8 +186,8 @@ ARG_FAN_LEVEL, ARG_IMAGEQUALITY, - ARG_MODEL_NAME, + ARG_DRIVER_VERSION, ARG_UNKNOWN } ARG_ID; @@ -243,6 +244,9 @@ NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL, NV_CTRL_IMAGE_SETTINGS, + + NV_CTRL_STRING_PRODUCT_NAME, + NV_CTRL_STRING_NVIDIA_DRIVER_VERSION, }; // Enum for nvidia query attributes @@ -271,7 +275,7 @@ ATTR_IMAGE_QUALITY, ATTR_MODEL_NAME, - + ATTR_DRIVER_VERSION, } ATTR_ID; // Enum for query type @@ -655,6 +659,12 @@ nvs->attribute = ATTR_MODEL_NAME; break; + case ARG_DRIVER_VERSION: + nvs->query = QUERY_STRING; + nvs->target = TARGET_GPU; + nvs->attribute = ATTR_DRIVER_VERSION; + break; + default: // Unknown/invalid argument // Error printed by core.cc return 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/pulseaudio.cc new/conky-1.11.6/src/pulseaudio.cc --- old/conky-1.11.5/src/pulseaudio.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/pulseaudio.cc 2020-07-27 14:01:52.000000000 +0200 @@ -62,8 +62,13 @@ pdr->sink_mute = i->mute; pdr->sink_card = i->card; pdr->sink_index = i->index; - pdr->sink_active_port_name.assign(i->active_port->name); - pdr->sink_active_port_description.assign(i->active_port->description); + if (i->active_port != nullptr) { + pdr->sink_active_port_name.assign(i->active_port->name); + pdr->sink_active_port_description.assign(i->active_port->description); + } else { + pdr->sink_active_port_name.erase(); + pdr->sink_active_port_description.erase(); + } pdr->sink_volume = round_to_positive_int( 100.0f * (float)pa_cvolume_avg(&(i->volume)) / (float)PA_VOLUME_NORM); pa_threaded_mainloop_signal(pulseaudio->mainloop, 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/specials.cc new/conky-1.11.6/src/specials.cc --- old/conky-1.11.5/src/specials.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/specials.cc 2020-07-27 14:01:52.000000000 +0200 @@ -590,7 +590,10 @@ } s->tempgrad = g->tempgrad; #ifdef BUILD_MATH - if ((g->flags & SF_SHOWLOG) != 0) { s->scale = log10(s->scale + 1); } + if ((g->flags & SF_SHOWLOG) != 0) { + s->scale_log = 1; + s->scale = log10(s->scale + 1); + } #endif int graph_id = ((struct graph *)obj->special_data)->id; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/specials.h new/conky-1.11.6/src/specials.h --- old/conky-1.11.5/src/specials.h 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/specials.h 2020-07-27 14:01:52.000000000 +0200 @@ -66,7 +66,8 @@ short show_scale; int graph_width; int graph_allocated; - int scaled; /* auto adjust maximum */ + int scaled; /* auto adjust maximum */ + int scale_log; unsigned long first_colour; // for graph gradient unsigned long last_colour; short font_added; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/conky-1.11.5/src/top.cc new/conky-1.11.6/src/top.cc --- old/conky-1.11.5/src/top.cc 2019-08-12 23:53:54.000000000 +0200 +++ new/conky-1.11.6/src/top.cc 2020-07-27 14:01:52.000000000 +0200 @@ -390,10 +390,6 @@ } int update_top() { - // XXX: this was a separate callback. and it should be again, as soon as it's - // possible - update_meminfo(); - process_find_top(info.cpu, info.memu, info.time #ifdef BUILD_IOSTATS , @@ -521,7 +517,7 @@ if (pw != nullptr) { snprintf(p, p_max_size, "%.8s", pw->pw_name); } else { - NORM_ERR("The uid doesn't exist"); + snprintf(p, p_max_size, "%d", td->list[td->num]->uid); } } @@ -542,7 +538,7 @@ } PRINT_TOP_GENERATOR(cpu, (unsigned int)7, "%6.2f", amount) -PRINT_TOP_GENERATOR(pid, (unsigned int)6, "%5i", pid) +PRINT_TOP_GENERATOR(pid, (unsigned int)8, "%7i", pid) PRINT_TOP_GENERATOR(uid, (unsigned int)6, "%5i", uid) PRINT_TOP_HR_GENERATOR(mem_res, rss, 1) PRINT_TOP_HR_GENERATOR(mem_vsize, vsize, 1)