Conky Showcase 2023

This thread is the continuation of the annual Conky Showcase thread.

Previous years:

The same rules apply:

Share your conky thread

Share what ever you use for conky - just remember - credit where credit is due.

Basic guidelines

If your conky script is based on another conky - your header should use something like this

conky.config = {
-- original author https://github.com/altinukshini/conky_blue
-- modified by linux-aarhus
...

When you post large amounts of code

  1. Use code fence - select your code and click the </> in the post toolbar
  2. Use the details tag - select your fenced code and click :gear: โ†’ Hide details

Below screenshot credit @linux-aarhus :

Back when I was an ISO maintainer - I utilized some scripts displaying network addresses on polybar.

The scripts can be used for conky as well.

The check-network-wan displays a shield next to the ip if a vpn is up.

The containing package is named manjaro-openbox-scripts

#!/bin/bash
# root.nix.dk
# polybar wan/vpn status script
#

broken="๏„ง"
state1="๎ซฃ"
state2="๎ซค"
state3="๎ซฅ"
connected="๎ญƒ"
shield="๏„ฒ"
wan="๎ ‹"
vpn="๎˜ฏ"

network=$(ip a | grep ' state UP' | cut -d' ' -f2 | cut -d':' -f1)
if [[ -z ${network} ]]; then
    echo ${wan} ${broken} ${state1}; sleep 0.5
    echo ${wan} ${broken} ${state2}; sleep 0.5
    echo ${wan} ${broken} ${state3}; sleep 0.5
else
    device=$(ip a | grep 'tun')
    if [[ -z $device ]]; then
        device=$(ip a | grep 'proton')
    fi

    if [[ ${device} == "" ]]; then
        echo ${wan} $(curl -s https://get.geojs.io/v1/ip)
    else
        echo ${shield} $(curl -s https://get.geojs.io/v1/ip)
    fi
fi
2 Likes

Howโ€™d you get this to work? I spent hours and never figured it out

took a bit of work, my fork and personal branch is here,

1 Like

thank you so much

My take on your sysinfo. The network part need further fixing.

Summary
conky.config = {
  alignment = 'top_right',
  background = true,
  border_width = 0.5,
  cpu_avg_samples = 4,
  default_color = 'white',
  default_outline_color = 'grey',
  default_shade_color = 'black',
  draw_borders = true,
  draw_graph_borders = true,
  draw_outline = false,
  draw_shades = false,
  use_xft = true,
  font = 'OpenSans:size=10',
  gap_x = 1,
  gap_y = 0,
  maximum_width = 240,
  minimum_height = 5,
  minimum_width = 240,
  net_avg_samples = 2,
  double_buffer = true,
  out_to_console = false,
  out_to_stderr = false,
  extra_newline = false,
  own_window = true,
  own_window_colour = '000000',
  own_window_class = 'Conky',
  own_window_argb_visual = true,
  own_window_type = 'desktop',
  own_window_transparent = false,
own_window_colour = 000000,
own_window_argb_value = 192,
  own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
  stippled_borders = 0,
  update_interval = 1,
  uppercase = false,
  use_spacer = 'none',
  show_graph_scale = false,
  show_graph_range = false
};

conky.text = [[
${font MesloLGS NF:bold:size=18}$alignc${color Green}๏Œ’ Manjaro ${execi 100000 lsb_release -sc}
${voffset -90} 
${color white}
${font}
#System
${font MesloLGS NF:size=20}${color Green}๏Œš ${voffset -5}${font OxygenSans:bold:size=11}${color Green}SYSTEM ${color White}${hr 2}
$alignc${font OpenSans:bold:size=10}${color White}$sysname $kernel ${font}
Hostname: $alignr${nodename}
Uptime: $alignr${uptime}
Battery: $alignr ${battery_bar 6,140 BAT0}  ${battery_percent BAT0}%
#CPU
${font MesloLGS NF:size=20}${color Green}๏กš ${voffset -5}${font OxygenSans:bold:size=11}${color Green}CPU ${color White}${hr 2}
$alignc${font OpenSans:bold:size=10}${color White}CPU Usage: ${cpu cpu0}%   ${font MesloLGS NF:bold:size=10}๎:${font OpenSans:bold:size=10}${hwmon 4 temp 1}ยฐC
$font${color White}${cpubar cpu1 6,54} ${freq_g 1}GHz ${alignr}${cpubar cpu2 6,54} ${freq_g 2}GHz${alignr}
${cpubar cpu3 6,54} ${freq_g 3}GHz ${alignr}${cpubar cpu4 6,54} ${freq_g 4}GHz${alignr}
#MEMORY
${font MesloLGS NF:size=20}${color Green}๎‰ฆ ${voffset -5}${font OxygenSans:bold:size=11}${color Green}MEMORY ${color White}${hr 2}
$font${color White}MEM $alignc $mem / $memmax $alignr $memperc%
$membar
$font${color White}SWAP $alignc $swap / $swapmax $alignr $swapperc%
$swapbar
#HDD
${font MesloLGS NF:size=20}${color Green}๏‚ฎ ${voffset -5}${font OxygenSans:bold:size=11}${color Green}SSD ${color White}${hr 2}
$font${color White}Root $alignc ${fs_used /} / ${fs_size /} $alignr ${fs_used_perc /}%
${fs_bar /}
#TOP CPU
${font MesloLGS NF:size=20}${color Green}๏‘ฉ ${voffset -5}${font OxygenSans:bold:size=11}${color Green}TOP CPU ${color White}${hr 2}
${color White}$font${top name 1}${alignr}${top cpu 1} %
$font${top name 2}${alignr}${top cpu 2} %
$font${top name 3}${alignr}${top cpu 3} %
$font${top name 4}${alignr}${top cpu 4} %
#TOP MEMORY
${font MesloLGS NF:size=20}${color Green}๎‰ฆ ${voffset -5}${font OxygenSans:bold:size=11}${color Green}TOP MEMORY ${color White}${hr 2}
${color White}$font${top_mem name 1}${alignr}${top_mem mem_res 1}
$font${top_mem name 2}${alignr}${top_mem mem_res 2}
$font${top_mem name 3}${alignr}${top_mem mem_res 3}
$font${top_mem name 4}${alignr}${top_mem mem_res 4}
#NETWORK WLAN0
${if_existing /proc/net/route wlp0s20f3}${font MesloLGS NF:size=20}${color Green}๏ชจ ${voffset -5}${font OxygenSans:bold:size=11}${color Green}NETWORK ${color White}${hr 2}
$font${color White}${wireless_essid wlp0s20f3} Quality: $alignr ${wireless_link_qual_perc wlp0s20f3}%
${wireless_link_bar wlp0s20f3}
$font${color White}Local IP: $alignr ${addrs wlp0s20f3}
Download: ${downspeed wlp0s20f3}/s ${alignr}Total: ${totaldown wlp0s20f3}
${color}${downspeedgraph wlp0s20f3 20,240 2980b9 e74c3c}
Upload: ${upspeed wlp0s20f3}/s ${alignr}Total: ${totalup wlp0s20f3}
${color}${upspeedgraph wlp0s20f3 20,240 2980b9 e74c3c}
${voffset -10}${color Green}Inbound:${color white}${tcp_portmon 1 32767 count}${color Green}  Outbound:${color white}${tcp_portmon 32768 61000 count}${alignr}${color Green}All:${color white}${tcp_portmon 1 65535 count}
#NETWORK wlp0s20f3
${else}${if_existing /proc/net/route wlp0s20f3}${font MesloLGS NF:size=20}${color Green}๏›ฟ ${voffset -5}${font OxygenSans:bold:size=11}${color Green}NETWORK ${color White}${hr 2}
$font${color White}Interface: $alignr wlp0s20f3
$font${color White}Local IP: $alignr ${addrs wlp0s20f3}
${hr 2}
Download: ${downspeed wlp0s20f3}/s ${alignr}Total: ${totaldown wlp0s20f3}
${color}${downspeedgraph wlp0s20f3 20,240 2980b9 e74c3c}
Upload: ${upspeed wlp0s20f3}/s ${alignr}Total: ${totalup wlp0s20f3}
${color}${upspeedgraph wlp0s20f3 20,240 2980b9 e74c3c}
${voffset -10}${color white}Inbound:${color white}${tcp_portmon 1 32767 count}${color white}  Outbound:${color white}${tcp_portmon 32768 61000 count}${alignr}${color white}All:${color white}${tcp_portmon 1 65535 count}${endif}${endif}
]];
2 Likes

SimpleConky

Config
conky.config = {
	alignment = 'tr',
	background = true,
	color1 = '647c64', -- 'ffab91', --deeporange;hue200
	color2 = '059669', --emerald 600; https://tailwindcolor.com
	color3 = '9e9d24', -- prev 'F1C40F', --red
	color5 = '18a8d8', --curious blue
	color4 = '818cf8', --prev 'c5e1a5', --lightgreen;hue200
	color6 = '00cc6a', -- prev 'ffcdd2', --red;hue100
	color7 = 'fff176', --yellow;hue300
	color8 = '7851a9', --'525E54', -- prev 'ffe082', --amber;hue200
	color9 = '00b294', -- prev '15f4ee', --florescent blue
	color0 = 'cfb53b', -- '9333ea', 'F43F5E', --rose500; tailwind
	cpu_avg_samples = 2,
	default_color = '8BA8B7', --567C73', 'e5e4e2', --platinum
	double_buffer = true,
--	font = 'Caviar Dreams:size=32:Bold:antialias=true',
	draw_shades = true, --default is false
	gap_x = 15,
	gap_y = 20,
	minimum_width = 250,
	maximum_width = 250,
--	background = true,
	no_buffers = true,
	own_window = true,
	draw_shades = true,
	draw_outline = false,
	draw_borders = false,
	own_window_type = 'override', --prev 'desktop'
	own_window_transparent = true,
        own_window_colour = '22282e',
--	own_window_argb_visual = true,
--	own_window_argb_value = 81,
	update_interval = 1,
	use_xft = true,
	short_units = true,
	uppercase = False,
	own_window_hints = 'undecorated, below, sticky, skip_taskbar, skip_pager',
}
conky.text = [[
${offset -16}${font Caviar Dreams:Bold:size=46:antialias=true}${time %l:%M}${font Caviar Dreams:Bold:size=16:antialias=true}${if_match ${time %H}<12}AM${else}PM${endif}${font}${color1}${alignr}${voffset -32}${font UbuntuMono Nerd Font:size=37:antialias=true}๏Œ’ 
${color}${font Caviar Dreams:Bold:size=30:antialias=true}${time %A}${font cinnamonroll-12:bold:antialias=true}${color1}${voffset -30}${alignr}${offset 1}${execpi 7200 cat /etc/lsb-release | grep CODENAME | awk '{print $1}'| sed 's/"//g' | sed 's/DISTRIB_CODENAME=//g'}${font}${color}
${font Caviar Dreams:Bold:size=40:antialias=true}${voffset 18}${alignr}${time %e}${offset 0}${voffset 30}${font Caviar Dreams:Bold:size=30:antialias=true}${time %B}${font}
${font FuraCode Nerd Font:size=11:antialias=true}${voffset 10}${color2}${execpi 1800 openweather -i}${alignr}๏Š…  ${cat /tmp/windspeed}
${font cinnamonroll-12:bold:antialias=true}${color0}${execpi 1500 curl -s 'https://v1.wttr.in/Vapi\?TK0M' | head -n7 |tail -n5 | sed 's/+//g'}
${color}${alignc}${voffset 15}${font Caviar Dreams:bold:size=10:antialias=true}Battery Status : ${font Cousine NF:size=9:antialias=true}${alignc}${color6}${texeci 1 acpi -i | head -n1 | awk '{print $3$4}'}
${voffset 0}${if_match "${texeci 1 acpi -a | tail -c9}"=="off-line"}${if_match "${battery_percent BAT0}"<="30"}${alignc}${font Caviar Dreams:size=14:antialias=true}${color0}...:: Power Up ::...${endif}${endif}${if_match "100"=="${texeci 1 acpi -b | cut -c18-20}"}${if_match "${texeci 1 acpi -a | tail -c8}"=="on-line"}${alignc}${font Caviar Dreams:size=12:antialias=true}${color2}...:: Can be Un-Plugged ::...${endif}${endif}${color}
${font rissole-12:Bold:antialias=true}Kernel: ${color9}${alignr}${execpi 3600 uname -r}${color}${font}
${color0}${font Cousine NF:Bold:size=9:antialias=true}Uptime:${color9}${uptime_short}${color0}${alignr}Mem:${color9}${execpi 10 inxi -m | grep System | awk '{print $10$11"/"$7$8}' | sed 's/iB//g'}
${color0}${alignc}${font Cousine NF:Bold:size=10:antialias=true}Temperature : ${color9}${exec sensors | grep -E 'Core 0' | awk '{print$3}' | sed 's/+//g'} ${font}
${font Caviar Dreams:Bold:size=10:antialias=true}${color6}Window Manager:${alignr}${font Monofur NF:Book:size=12:antialias=true}${color }๏Œ’ ${font Monofur NF:Book:size=11:antialias=true}${voffset -1}${color9}${voffset 0}${execpi -43200 wmctrl -m | grep "Name:" | awk '{print $2}'}
${offset 5}${color}${font FiraCode Nerd Font:size=16:antialias=true}โ™ช${font}${font Caviar Dreams:Bold:size=10:antialias=true}mpd: ${color3}${font pretzel-12}${offset 2}${scroll left 30 9 # ${exec mpdstat}}${color}${font}
]]
local-weather

local-weather script using wttr.in and curl; the script run at interval you specify on statup so it stores data in respective format for that session in /tmp which the conky picks up. save weather script as local-weather and make it executable

#!/usr/bin/env sh
# depends on openweather script if alternative is needed
# when script runs at interval, data is sorted and stored in /tmp; just one script runsto get diff options
# i call thisdata in /tmp to show in bar / conky
# update wlan device OR eth device w.r.t your computer
wifi="wlp6s0" # edit with your device
interval=${1:-1800}
ip_check="$(ip addr show $wifi | grep 'inet' | awk '{print $2}' | cut -d/ -f1)"

connection()
{
# using ping to check if net is active
server="8.8.8.8"    # Google dns
checkping="ping -c 1 $server > /dev/null 2>&1" # ping Google to check if iNet is live

$checkping
while [ $? -ne 0 ]; do
#  notify-send "\e[1A\e[K $(date): Connecting - ${serverAdr}"
    notify-send "Connecting - ${server}";
  sleep 1;
  ping -c 1 $server > /dev/null 2>&1;
done
echo "live" > /tmp/inet && notify-send " iNet is reachable
Weather is updating... "
}

refreshdata()
{
location=""  ### TYPE YOUR LOCATION WITHIN QUOTES; else DEFAULT LOCATION WILL BE PICKED
url="https://v2.wttr.in/$location\?M'"
data="$(curl -s $url | grep 'Weather:' | sed 's/Weather://g' | sed 's/+//g' | awk '{for(i=2;i<=NF;++i)printf $i""FS ; print ""}')"
validate="$(echo $data > /tmp/localweather)"
update="$(cat /tmp/localweather | rev | awk '{print $4}' | rev | sed 's/,//g' > /tmp/weather-short && cat /tmp/localweather | awk '{print$1}' > /tmp/icon && cat /tmp/localweather | rev | awk '{print $2}' | rev | sed 's/,//g' > /tmp/windspeed && echo "$(cat /tmp/icon) $(cat /tmp/weather-short)" > /tmp/i3wttr && $(cat /tmp/localweather | rev | awk '{for(i=2;i<=NF;++i)printf $i""FS ; print ""}' | rev | sed 's/,//g' > /tmp/lemonbarwttr))"

$data && $validate && $update

if [[ "$(cat /tmp/localweather | awk '{print $NF}'| cut -c 5-7)" != "hPa" ]];then
#alternative="(openweather -i)"	whenever wttr.in fails to return data...
openweather -i > /tmp/localweather &&  ## presuming you already have the openweather script. else you can remove this section
	sleep 10 &&
	cat /tmp/localweather | awk '{print $1}' > /tmp/icon &&
	cat /tmp/localweather | rev | awk '{print $1}' | rev > /tmp/weather-short &&
	echo "n/a" > /tmp/windspeed;
fi;
}

connection &&
while : ;do refreshdata;sleep $interval;done

openweather
#!/bin/bash
### Credit to all who have contributed to this script. i have just modified it
### Openweather script [can save anywhere in your home dir OR /usr/local/bin if you wish to have executable]
### USAGE: openweather OR openweather -i if you wish to have weather icons]
## save this script and change permissions [chmod a+x /path/to/script OR sudo chmod a+x /usr/local/bin/openweather]


# I take this script from Anachron's i3blocks
# I only slightly modify this script to add an option to show icon, useful for my tint2 executor
# 'openweather -i' = with icon, 'openweather' = text only
# Cheers!
# Addy
# credit to contributors as listed above; i have just done mod to check connection before function openweather runs..

# check if internet is available and server has access
connection()
{
# using ping to check if net is active
server="8.8.8.8"    # Google dns
checkping="ping -c 1 $server > /dev/null 2>&1" # ping Google to check if iNet is live

$checkping
while [ $? -ne 0 ]; do
#  notify-send "\e[1A\e[K $(date): Connecting - ${serverAdr}"
    notify-send "Connecting - ${server}";
  sleep 1;
  $checkping > /dev/null 2>&1;
done
echo "live" > /tmp/inet && notify-send " iNet is reachable
Weather is updating... "
}
# connection && ## -- Uncomment this line if internet connection needs to be checked before executing weather script
# Open Weather Map API code, register to http://openweathermap.org/api to get one ;)

API_KEY="ENTER YOUR API KEY HERE" # user API KEY

# Check on http://openweathermap.org/find & edit in the  CITY_ID"
CITY_ID="XXXXXXX"

# i have used nerd fonts for glyphs ; Use Meteocons for weather glyphs for default & reverse comments

URGENT_LOWER=9
URGENT_HIGHER=38

#ICON_SUNNY="B Clear"
ICON_SUNNY="๏†…  Clear"
#ICON_CLOUDY="Y  Cloudy"
ICON_CLOUDY="๏ƒ‚  Cloudy"
#ICON_RAINY="X  Rainy"
ICON_RAINY="๎ˆ   Rainy"
#ICON_STORM="F  Storm"
ICON_STORM="๏€Storm"
#ICON_SNOW="L  Snow"
ICON_SNOW="๏‹œ  Snow"
#ICON_FOG="E  Fog"
ICON_FOG="๎ƒˆ  Fog"
#ICON_MISC="H "
ICON_MISC="๏†ธ "
#ICON_MISC="โ›…๏ธ"

TEXT_RAINY="Rainy"
TEXT_STORM="Storm"
TEXT_SNOW="Snow"
TEXT_FOG="Fog"

SYMBOL_CELSIUS="หšC"

WEATHER_URL="https://api.openweathermap.org/data/2.5/weather?id=${CITY_ID}&appid=${API_KEY}&units=metric"

WEATHER_INFO=$(wget -qO- "${WEATHER_URL}")
WEATHER_MAIN=$(echo "${WEATHER_INFO}" | grep -o -e '"main":"[a-Z]*"' | awk -F ':' '{print $2}' | tr -d '"')
WEATHER_TEMP=$(echo "${WEATHER_INFO}" | grep -o -e '"temp":-\?[0-9]*' | awk -F ':' '{print $2}' | tr -d '"')

if [[ "${WEATHER_MAIN}" = *Snow* ]]; then
if  [[ $1 = "-i" ]]; then
    echo "${ICON_SNOW} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
else
    echo "${TEXT_SNOW} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
fi
elif [[ "${WEATHER_MAIN}" = *Rain* ]] || [[ "${WEATHER_MAIN}" = *Drizzle* ]]; then
if  [[ $1 = "-i" ]]; then
    echo "${ICON_RAINY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
else
    echo "${TEXT_RAINY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
fi
elif [[ "${WEATHER_MAIN}" = *Cloud* ]]; then
if  [[ $1 = "-i" ]]; then
    echo "${ICON_CLOUDY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
else
    echo "${TEXT_CLOUDY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
fi
elif [[ "${WEATHER_MAIN}" = *Clear* ]]; then
if  [[ $1 = "-i" ]]; then
    echo "${ICON_SUNNY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
else
    echo "${TEXT_SUNNY} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
fi
elif [[ "${WEATHER_MAIN}" = *Fog* ]] || [[ "${WEATHER_MAIN}" = *Mist* ]]; then
if  [[ $1 = "-i" ]]; then
    echo "${ICON_FOG} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
else
    echo "${TEXT_FOG} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
fi
else
if  [[ $1 = "-i" ]]; then
    echo "${ICON_MISC} ${WEATHER_MAIN} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
else
    echo "${WEATHER_MAIN} ${WEATHER_TEMP}${SYMBOL_CELSIUS}"
fi
fi

if [[ "${WEATHER_TEMP}" -lt "${URGENT_LOWER}" ]] || [[ "${WEATHER_TEMP}" -gt "${URGENT_HIGHER}" ]]; then
  exit 33
fi

mpdstat

as conky displays scroll of mpc status; this script should be useful

#!/bin/sh
# full credit to @kainonergon for his simplepanel that uses lemonbar [https://github.com/kainonergon/simplepanel] which has inspired me to venture and use his scripts from the modular structure
# A dwm_bar function that shows the current artist, track, position, duration, and status from mpc
# Joe Standring <git@joestandring.com>
# GNU GPLv3

# Dependencies: mpc
## Edited the TRACK part to restrict track title chars

MAX_LENGTH=27

dwm_mpc () {
    if ps -C mpd > /dev/null; then
        ARTIST=$(mpc status -f %artist% | head -n1)
        if [ ${#ARTIST} -gt $MAX_LENGTH ] ; then	# trim long names
					ARTIST="$(echo $ARTIST|cut -c -$MAX_LENGTH)..."
				fi
        
        #TRACK=$(mpc current -f %title% | head -n1)
	TRACK=$(mpc current)
        if [ ${#TRACK} -gt $MAX_LENGTH ] ; then	# trim long names
					TRACK="$(echo $TRACK |cut -c -$MAX_LENGTH)..."
				fi
        
        state="$(mpc|sed -n '2s/ .*$//p')"
        
        
        
        POSITION=$(mpc status | grep "%)" | awk '{ print $3 }' | awk -F/ '{ print $1 }')
#		POSITION=$(mpc status | sed -n 2p | awk '{print $3}')
		DURATION=$(mpc status | grep "%)" | awk '{ print $3 }' | awk -F/ '{ print $2 }')
#        DURATION=$(mpc current -f %time%)
		STATUS=$(mpc status | sed -n 2p | awk '{print $1}')
        SHUFFLE=$(mpc status | tail -n 1 | awk '{print $6}')

        if [ "$IDENTIFIER" = "unicode" ]; then
            if [ "$STATUS" = "[playing]" ]; then
                STATUS="โ–ถ"
            else
                STATUS="โธ"
            fi

            if [ "$SHUFFLE" = "on" ]; then
                SHUFFLE=" ๐Ÿ”€"
            else
                SHUFFLE=""
            fi
        else
            if [ "$STATUS" = "[playing]" ]; then
                STATUS="PLA"
            else
                STATUS="PAU"
            fi

            if [ "$SHUFFLE" = "on" ]; then
                SHUFFLE=" S"
            else
                SHUFFLE=""
            fi
        fi
        
        #printf "%s%s %s - %s %s/%s%s%s" "$SEP1" "$STATUS" "$ARTIST" "$TRACK" "$POSITION " " $DURATION" "$SHUFFLE" "$SEP2"
        
             if [ "$state" = "[playing]" ] ; then
			echo "$ARTIST - $TRACK"
		#	echo "$TRACK $POSITION/$DURATION"
			fi 
	if [ "$state" = "[paused]" ] ; then
           	echo "paused"
			fi
	if [ -z "$state" ] ; then
           echo "stopped"
			fi

    fi
}

dwm_mpc

2 Likes

Small update of my conky.
Now you can see colorful string about available updates and system service errors as shown on screenshot. If there is no updates (errors) - the color of the string is white. If updates are present (errors) the color is automatically changed.

full config `.conkyrc`
conky.config = {
  alignment = 'middle_right',
  background = true,
  border_width = 0,
  cpu_avg_samples = 2,
  default_color = 'white',
  default_outline_color = 'grey',
  default_shade_color = 'black',
  draw_borders = false,
  draw_graph_borders = true,
  draw_outline = false,
  draw_shades = false,
  use_xft = true,
  font = 'NotoSansBold:size=11',
  gap_x = 5,
  gap_y = 0,
  minimum_height = 350,
  minimum_width = 350,
  net_avg_samples = 2,
  double_buffer = true,
  out_to_console = false,
  out_to_stderr = false,
  extra_newline = false,
  own_window = true,
  own_window_class = 'Conky',
  own_window_transparent = false,
  own_window_argb_visual = true,
  own_window_argb_value = 100,
  own_window_colour = '#0A0A0A',
  own_window_type = 'desktop',
  own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
  stippled_borders = 0,
  update_interval = 1,
  uppercase = false,
  use_spacer = 'none',
  show_graph_scale = false,
  show_graph_range = false
};
conky.text = [[
#Logo
${voffset -5}
${color #4682B4}$alignc${font NotoSans:bold:size=18} ${execp lsb_release -sc} ${execp lsb_release -sr}$alignr${font NotoSans Nerd Font:size=18}๏Œ’  
#System
${voffset -35}
${font NotoSans Nerd Font:size=17}${color orange}๎ฏ† ${color #242424}${stippled_hr 2}
${voffset -40}
$font$color $sysname $kernel$alignr$uptime_short  
 System Errors ${if_match "0" < "${execpi 3600 systemctl --failed | grep 'listed' | cut -d' ' -f1}"}${color #FF80A6}${endif}$alignr ${execpi 3600 systemctl --failed | grep 'listed' | cut -d' ' -f1}  failed  $color
 Updates ${if_match "0" < "${execpi 3600 checkupdates | wc -l}"}${color #00FF00}${endif}$alignr ${execpi 3600 checkupdates | wc -l}  updates  $color
#CPU
${voffset 5}${font NotoSans Nerd Font:size=17}${color orange}๏’ผ ${color #242424}${stippled_hr 2}
${voffset -40}
$font$color${alignc}Intel Core i5-7400T @ 2,40GHz
${voffset -15}
${font NotoSansBold:size=10}${color darkgrey} Core 1 โ€” ${freq_g 1} GHz $alignr Core 2 โ€” ${freq_g 2} GHz  
 Core 3 โ€” ${freq_g 3} GHz $alignr Core 4 โ€” ${freq_g 4} GHz  
${voffset -15}
${font NotoSans Nerd Font:size=12}$color ๏‹ˆ $font${acpitemp}ยฐC $alignr${cpu cpu0} %  
${color darkgrey}$cpubar
#MEMORY
${font NotoSans Nerd Font:size=17}${color orange}๏‹› ${color #242424}${stippled_hr 2}
${voffset -40}
$font$color RAM ${color darkgrey}${font NotoSansBold:size=10}$alignc             $mem / $memmax$font$color$alignr$memperc %  
${color darkgrey}$membar
$font$color SWAP ${color darkgrey}${font NotoSansBold:size=10}$alignc            $swap / $swapmax$font$color$alignr$swapperc %  
${color darkgrey}$swapbar
#HDD
${font NotoSans Nerd Font:size=17}${color orange}๎‰ฑ ${color #242424}${stippled_hr 2}
${voffset -40}
$font$color${alignc}Kingston SNVS-250G
${voffset -15}
${font NotoSans Nerd Font:size=12} ๏‹ˆ $font${hwmon temp 1}ยฐC ${color darkgrey}${font NotoSansBold:size=10}$alignc${offset 30}$fs_used / $fs_size $font$color$alignr$fs_used_perc %  
${color darkgrey}$fs_bar
#NET
${font NotoSans Nerd Font:size=17}${color orange}๏ผ ${color #242424}${stippled_hr 2}
${voffset -40}
$font$color$alignc${wireless_essid $gw_iface}
${voffset -15}
${font NotoSans Nerd Font:size=12} ๏ƒจ $font${tcp_portmon 1 65535 count} ${color darkgrey}${font NotoSansBold:size=10}$alignc${offset 35}${downspeed $gw_iface} / ${upspeed $gw_iface}$font$color$alignr${wireless_bitrate $gw_iface}  
${color darkgrey}${wireless_link_bar $gw_iface}
#PROCESSES
${font NotoSans Nerd Font:size=17}${color orange}๏‚… ${color #242424}${stippled_hr 2}
${voffset -40}
$font$color Name$alignr CPU     
${font NotoSansBold:size=10}${color darkgrey} ${top name 1}${alignr}${top cpu 1} %  
 ${top name 2}${alignr}${top cpu 2} %  
 ${top name 3}${alignr}${top cpu 3} %  
 ${top name 4}${alignr}${top cpu 4} %  
${voffset -10}
$font$color Name$alignr MEM    
${font NotoSansBold:size=10}${color darkgrey} ${top_mem name 1}${alignr}${top_mem mem 1} %  
 ${top_mem name 2}${alignr}${top_mem mem 2} %  
 ${top_mem name 3}${alignr}${top_mem mem 3} %  
 ${top_mem name 4}${alignr}${top_mem mem 4} %  
]]
part of code for colorful strings
 System Errors ${if_match "0" < "${execpi 3600 systemctl --failed | grep 'listed' | cut -d' ' -f1}"}${color #FF80A6}${endif}$alignr ${execpi 3600 systemctl --failed | grep 'listed' | cut -d' ' -f1}  failed  $color
 Updates ${if_match "0" < "${execpi 3600 checkupdates | wc -l}"}${color #00FF00}${endif}$alignr ${execpi 3600 checkupdates | wc -l}  updates  $color

Haha yes, I cottoned on to that a while back, now I have a pretty dull, grey conky which livens up when something happensโ€ฆ

For example, if I overload my W2 disk with a movie pack:

${if_existing /dev/sdd}${fs_bar 5,55 /mnt/W2}${font }${color } W2 $alignr ${fs_free /mnt/W2} ${if_match ${fs_used_perc /mnt/W2}>=85}${color salmon}${endif}${if_match ${fs_used_perc}>=95}${color red}${endif}$color]];

another detailed version

Conky Config

conky.config = { 
        --- inspired from[Fedora Tree Conky](https://www.deviantart.com/iznogud78/art/Conky-Fedora-Tree-795963082)
	background = true,
	use_xft = true,
	font = 'Monofur NF:pixelsize=10.5:antialias=true',
	xftalpha = 1,
	update_interval = 1,
	total_run_times = 0,
	own_window = true,
--	own_window_transparent = true,
	own_window_type = 'normal',
	own_window_class = 'conky',
	own_window_argb_visual = true,
	own_window_colour = '111827',
	own_window_argb_value = 99,
	own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
	double_buffer = true,
	draw_shades = true,
	draw_outline = false,
	draw_borders = false,
	draw_graph_borders = true,
	stippled_borders = 1,
	border_width = 1,
	default_color = 'e5e4e2',
	default_shade_color = 'gray10',
	default_outline_color = 'slategray',
	alignment = 'top_right',
	gap_x = 7,
	gap_y = 20,
--	minimum_height = 600,
        minimum_width = 250,
        maximum_width = 250,

-- Misc Console #
   out_to_console = false,
   out_to_stderr = false,
   extra_newline = false,

   no_buffers = true,
   cpu_avg_samples = 2,
   net_avg_samples = 2,
   override_utf8_locale = true,
   use_spacer = 'right',
   uppercase = false,

};
conky.text = [[
#leet chars: โ”คโ”คโ””โ””โ”ดโ”ดโ”โ”โ”‚โ”‚โ”˜โ”˜โ”Œโ”Œโ”œโ”œโ”ฌโ”ฌโ”ผโ”ผโ”ดโ”ดโ”€โ”€ โ”‚โ”‚ โ–ฝโ–ผโ–ณโ–ฒโ–ตโ–ดโ–พโ–ฟ
${alignr}${offset -90}${font Hack Nerd Font:size=27:antialias=true}๏Œ’ ${font}${voffset -12}${color 9FA8DA}${font Comfortaa:Bold:size=18:antialias=true}manjaro ${font cinnamonroll-10:bold:antialias=true}${execpi 3600 lsb_release -c | awk '{print $2}'}${font}${color}
${alignr}${offset -6}โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
${alignr}${offset -6}${exec wmctrl -m | sed 's/Name: //g' | head -n1} ${machine} โ”€โ”ค
${alignr}${offset -6}< ${kernel} > ${color 2196F3}Kernel${color} โ”€โ”ค   โ”‚
${alignr}${offset -6}< ${uptime} > ${color 2196F3}Uptime${color} โ”€โ”ค   โ”‚
${alignr}${offset -6}< ${execi 3600 checkupdates | wc -l} > ${color 2196F3}updates${color} โ”€โ”˜   โ”‚
${alignr}${offset -6}โ”‚
${alignr}${offset -6}${voffset -14}${color 2196F3}system${color} โ”€โ”ค
${alignr}${offset -6}${voffset 0}< ${battery BAT0}  ${battery_bar 3,80 BAT0} > ${color FFAB91}Battery${color} โ”€โ”ค   โ”‚
${alignr}${offset -6}< ${scroll left 30 20 # ${execi 1000 cat /proc/cpuinfo|grep 'model name'|sed -e 's/model name.*: //'| uniq | cut -c 1-40}} > ${color springgreen}CPU${color} โ”€โ”ค   โ”‚
${alignr}${offset -6}โ”‚   โ”‚   โ”‚
${alignr}${offset -6}used โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${cpu cpu 1}% > cpu1 โ”€โ”ค   โ”‚   โ”‚   โ”‚
${alignr}${offset -6}< ${cpu cpu 2}% > cpu2 โ”€โ”ค   โ”‚   โ”‚   โ”‚
${alignr}${offset -6}< ${cpu cpu 3}% > cpu3 โ”€โ”ค   โ”‚   โ”‚   โ”‚
${alignr}${offset -6}< ${cpu cpu 4}% > cpu4 โ”€โ”˜   โ”‚   โ”‚   โ”‚
${alignr}${offset -6}โ”‚   โ”‚   โ”‚
${alignr}${offset -6}< $loadavg > load โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 1} ${top cpu 1} > โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 2} ${top cpu 2} > โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 3} ${top cpu 3} > โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 4} ${top cpu 4} > โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 5} ${top cpu 5} > โ”€โ”˜   โ”‚   โ”‚
${alignr}${offset -6}โ”‚   โ”‚
${alignr}${offset -6}${color FFAB91}Processes${color} โ”€โ”ค   โ”‚
${alignr}${offset -6}< $processes > โ”€ < $running_processes > โ”€โ”˜   โ”‚   โ”‚
${alignr}${offset -6}โ”‚   โ”‚
${alignr}${offset -6}${voffset -5}${color FFAB91}Temperatures${color} โ”€โ”ค   โ”‚
##${alignr}${offset -6}< ${execi 5 sensors|grep 'Package id 0:'| awk -F'+' '{print $2}' | awk -F'.' '{print $1}'} ยฐC > cpu โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${execi 5 sensors|grep 'Package id 0:'| awk -F'+' '{print $2}' | awk -F'.' '{print $1}'} ยฐC > cpu โ”€โ”˜   โ”‚   โ”‚
##${alignr}${offset -6}< ${execi 5 nvidia-settings -t -q [gpu]/GPUCoreTemp} ยฐC > gpu โ”€โ”˜   โ”‚   โ”‚
${alignr}${offset -6}โ”‚   โ”‚
${alignr}${offset -6}${color springgreen}Memory${color} โ”€โ”ค   โ”‚
${alignr}${offset -6}< $memperc% > used โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< $mem/$memmax > โ”€โ”˜    โ”‚   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 1} ${top mem 1} > โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 2} ${top mem 2} > โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 3} ${top mem 3} > โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 4} ${top mem 4} > โ”€โ”ค   โ”‚   โ”‚
${alignr}${offset -6}< ${top name 5} ${top mem 5} > โ”€โ”˜   โ”‚   โ”‚
${alignr}${offset -6}โ”‚   โ”‚
${alignr}${offset -6}${color springgreen}Disk Usage${color} โ”€โ”˜   โ”‚
${alignr}${offset -6}< $diskio_read >  read โ”€โ”ค       โ”‚
${alignr}${offset -6}< $diskio_write > write โ”€โ”ค       โ”‚
${alignr}${offset -6}< ${fs_used /}/${fs_size /} > /root โ”€โ”ค       โ”‚
${alignr}${offset -6}< ${fs_bar 5,120 /} > โ”€โ”˜     โ”‚       โ”‚
${alignr}${offset -6}< ${fs_used /home}/${fs_size /home} > /home โ”€โ”˜       โ”‚
${alignr}${offset -6}< ${fs_bar 5,120 /home} > โ”€โ”˜             โ”‚
${alignr}${offset -6}${voffset -7}${color fafa37}Network${color} โ”€โ”ค
${alignr}${offset -27}< $nodename > hostname โ”€โ”ค${alignr}${offset -6}โ”‚
${alignr}${offset -27}< ${execi 60 wget -qO- ifconfig.co}} > Wan โ”€โ”ค${alignr}${offset -6}โ”‚
${alignr}${offset -27}< ${addr wlp6s0} > Lan โ”€โ”ค${alignr}${offset -6}โ”‚
${alignr}${offset -27}< ${downspeed wlp6s0} k/s > download โ”€โ”ค${alignr}${offset -6}โ”‚
${alignr}${offset -27}< ${downspeedgraph wlp6s0 9,120 136311 11B014} > โ”€โ”˜    โ”‚${alignr}${offset -6}โ”‚
${alignr}${offset -22}< ${upspeed wlp6s0} k/s > upload โ”€โ”˜ ${alignr}${offset -6}โ”‚
${alignr}${offset -62}< ${upspeedgraph wlp6s0 9,120 BA0B0B FC0707} > โ”€โ”˜${alignr}${offset -6}โ”‚
##${offset 25}${voffset -15}${font Cousine NF:size=13}${color FFEB3B}โ™ช ${font}${color}<< ${color F8BBD0}${font Montserrat Alternatives:Medium:Italic:size=10}${voffset -3}${scroll left 45 9 #${exec sh ~/scripts/spotify-nowplaying}}${color}${font} >>${font Cousine NF:Regular:size=13}${voffset -5}${color FFEB3B} ๏€ฅ ๏‡‡ ${font}${color}
${alignr}${offset -6}${font}>>> ${color powderblue}Weather${color} โ”€โ”˜
${voffset -10}${font cinnamonroll-11}${color 82d600}${execpi 1800 curl -s 'v1.wttr.in/MY_CITY?TK0M'| head -n7 | tail -n5}
${color hotpink}${voffset 5}${alignr}${font Cousine NF:size=10}๏€ ${color plum}${font rissole-10}${alignc}${color4} ${scroll left 48 15 # ${exec mpdstatus}${color}${font}
]];
1 Like

This thread is now continued here: