Conky Showcase 2021

My conky road trip was born wanting more insight into my AMD CPU (5600x) & GPU (6800XT)… more than what I could find by using KSysGuard… and not wanting to have multiple terminals of various watch commands or radeontop.

My focus on acquiring the AMD device data ended up being in direct calls to files at /sys/class/hwmon/hwmon3/ for CPU and GPU info at /sys/class/hwmon/hwmon5 and /sys/class/hwmon/hwmon5/device… proving to myself a GNU/Linux baseline fundamental of “everything is a file”.

My two core sources of inspiration for what ultimately went into my conky are:

  1. A user submitted design on the conky wiki set a layout/section baseline
  2. @Fabby 's conky provided a better config (windowed, Manjaro colour pallette, etc), inspired some network/fs redesign, and adding the PID to the process list
Code
conky.config ={
  console_bar_fill   = '»',
  console_bar_unfill = ' ',

  alignment = 'top_left',
  background = false,
  border_width = 2,
  cpu_avg_samples = 2,
  -- define Manjaro colours:
  default_color = '#1abc9c',  -- Same HTML as current terminal
  color1 = '#709080',         -- Kakhi
  color2 = '#dca3a3',         -- Salmon
  color3 = '#72d5a3',         -- Light Green
  color4 = '#f0dfaf',         -- Yellow
  color5 = '#7eb2e6',         -- Metal blue
  color6 = '#a45ec1',         -- Light aubergine
  font = 'DevaVu Sans Bold:size=10',
  default_outline_color = '#1abc9c',  -- Same HTML as current terminal
  default_shade_color = '#1abc9c',  -- Same HTML as current terminal
  double_buffer = true,
  draw_borders = false,
  draw_graph_borders = true,
  draw_outline = false,
  draw_shades = false,
  extra_newline = false,
  format_human_readable=true,
  gap_x = -300,
  gap_y = 0,
  minimum_height = 200,
  minimum_width = 200,
  net_avg_samples = 2,
  no_buffers = true,
  out_to_console = false,
  out_to_ncurses = false,
  out_to_stderr = false,
  out_to_x = true,
  own_window = true,
  own_window_class = 'Conky',
  own_window_type = 'normal',
  own_window_transparent = false,
  -- set transparency:
  own_window_argb_visual = true,
  own_window_argb_value = 175,
  show_graph_range = false,
  show_graph_scale = false,
  stippled_borders = 0,
  update_interval = 1.0,
  uppercase = false,
  use_spacer = 'none',
  use_xft = true,
};


conky.text = [[
${color6}${font :size=20}${alignc}${time %H:%M:%S}${font}
${color6}${font :size=16}${alignc}${time %A %d %B %Y}${font}
${color6}${hr}
${color5}SYSTEM:${color}${alignr}$nodename
${color5}UPTIME:${color}${alignr}$uptime_short
${color5}KERNEL:${color}${alignr}$kernel
${color6}${font :size=12}CPU & CORES ${hr}$font
${color5}CPU:${color}${alignr}AMD Ryzen 5 5600X @ 3.70GHz
${color2} 01 - 04:${color4}${goto 100}${cpu cpu1}% ${goto 150}${cpu cpu2 }% ${goto 200}${cpu cpu3 }% ${goto 250}${cpu cpu4 }%
${color2} 05 - 08:${color4}${goto 100}${cpu cpu5}% ${goto 150}${cpu cpu6 }% ${goto 200}${cpu cpu7 }% ${goto 250}${cpu cpu8 }%
${color2} 09 - 12:${color4}${goto 100}${cpu cpu9}% ${goto 150}${cpu cpu10}% ${goto 200}${cpu cpu11}% ${goto 250}${cpu cpu12}%
${color5}CPU Load: ${color4}$cpu% ${color1}$cpubar
${voffset -5}${color1}${cpugraph cpu0 -l -t}${voffset -5}
${color5}CPU Freq: ${color4}$freq_g ghz ${alignr}${color5}CPU Temp: ${color4}${execi 1 cat /sys/class/hwmon/hwmon3/temp2_input | awk -v OFMT="%3.2f" '{print $1/1000 " C"}'}
${color6}${font :size=12}MEMORY ${hr}$font
${color5}RAM: ${color4}$mem ${color}/ $memmax ${color4}($memperc%) ${color1}$membar
${color5}SWAP: ${color4}$swap ${color}/ $swapmax ${color4}($swapperc%) ${color1}$swapbar
${color6}${font :size=12}GPU ${hr}$font
${color5}GPU:${color}${alignr}AMD Radeon RX 6800XT (XFX)
${color5}GPU Load: ${color4}${execi 1 cat /sys/class/hwmon/hwmon5/device/gpu_busy_percent | awk -v OFMT="%3.2f" '{print $1 "%"}'}${alignr}${color5}GPU Fan: ${color4}${execi 1 cat /sys/class/hwmon/hwmon5/fan1_input | awk '{print $1 " RPM"}'} ${color}/ 3300 RPM
${color5}GPU Temp: ${color4}${execi 1 cat /sys/class/hwmon/hwmon5/temp1_input | awk -v OFMT="%3.2f" '{print $1/1000 " C"}'}${alignr}${color5}GPU Power: ${color4}${execi 1 cat /sys/class/hwmon/hwmon5/power1_average | awk -v OFMT="%3.2f" '{print $1/1000000 " W"}'} ${color}/ 255 W
${color5}GPU Shader Clk: $alignr${color4}${execi 1 cat /sys/class/hwmon/hwmon5/device/pp_dpm_sclk | grep '*$' | awk '{print $2}'} ${color}/ 2575Mhz
${color5}GPU Memory Clk: $alignr${color4}${execi 1 cat /sys/class/hwmon/hwmon5/device/pp_dpm_mclk | grep '*$' | awk '{print $2}'} ${color}/ 1000Mhz
${color5}GPU Fabric Clk: $alignr${color4}${execi 1 cat /sys/class/hwmon/hwmon5/device/pp_dpm_fclk | grep '*$' | awk '{print $2}'} ${color}/ 1941Mhz
${color5}GPU Link: ${color}${execi 1 cat /sys/class/hwmon/hwmon5/device/current_link_speed} ${color5}GPU State: ${color}${execi 1 cat /sys/class/hwmon/hwmon5/device/power_dpm_state}
${color6}${font :size=12}NETWORK ${hr}$font
${color5}IP ADDRESS:${color}${alignr}${addr enp39s0}
${voffset -5}${if_match "${addr enp39s0}"!="No Address"}${color1}${downspeedgraph enp39s0 24,159 ADFF2F 32CD32 -l -t} ${color2}${upspeedgraph enp39s0 24,159 FF0000 8B0000 -l -t}
${voffset -5}${color5}Download: ${color4}${downspeedf enp39s0}k/s ${alignr}${color5}Upload: ${color4}${upspeedf enp39s0}k/s ${font}${endif}
${color6}${font :size=12}FILE SYSTEMS ${hr}$font
${color5}Mountpoints${goto 100}Free / Total${alignr}I/O
${color2} /${goto 100}${color4}${fs_free /} ${color}/ ${fs_size /} ${alignr}${color4}${diskio}
${color2} /data/raid1${color4}${goto 100}${color4}${fs_free /data/raid1} ${color}/ ${fs_size /data/raid1} ${alignr}${color4}${diskio /data/raid1}
${color2} /data/sn750${color4}${goto 100}${color4}${fs_free /data/sn750} ${color}/ ${fs_size /data/sn750} ${alignr}${color4}${diskio /data/sn750}
${color2} /data/evo840${color4}${goto 100}${color4}${fs_free /data/evo840} ${color}/ ${fs_size /data/evo840} ${alignr}${color4}${diskio /data/evo840}
${color6}${font :size=12}PROCESSES ${hr}$font
${color5}TOTAL:${color4}${alignr}${processes}
${color5}Name ${goto 130}PID${goto 200}MEM${goto 265}CPU
${color2}${top name 1}${color4}${font}${goto 130}${top pid 1}${goto 200}${top mem 1}%${goto 265}${top cpu 1}%
${color2}${top name 2}${color4}${font}${goto 130}${top pid 2}${font}${goto 200}${top mem 2}%${goto 265}${top cpu 2}%
${color2}${top name 3}${color4}${font}${goto 130}${top pid 3}${font}${goto 200}${top mem 3}%${goto 265}${top cpu 3}%
${color2}${top name 4}${color4}${font}${goto 130}${top pid 4}${font}${goto 200}${top mem 4}%${goto 265}${top cpu 4}%
${color2}${top name 5}${color4}${font}${goto 130}${top pid 5}${font}${goto 200}${top mem 5}%${goto 265}${top cpu 5}%
${color2}${top name 6}${color4}${font}${goto 130}${top pid 6}${font}${goto 200}${top mem 6}%${goto 265}${top cpu 6}%
${color2}${top name 7}${color4}${font}${goto 130}${top pid 7}${font}${goto 200}${top mem 7}%${goto 265}${top cpu 7}%
${color2}${top name 8}${color4}${font}${goto 130}${top pid 8}${font}${goto 200}${top mem 8}%${goto 265}${top cpu 8}%
${color2}${top name 9}${color4}${font}${goto 130}${top pid 9}${font}${goto 200}${top mem 9}%${goto 265}${top cpu 9}%
${color2}${top name 10}${color4}${font}${goto 130}${top pid 10}${font}${goto 200}${top mem 10}%${goto 265}${top cpu 10}%${voffset -20}
]];
2 Likes