Conky is a light-weight system monitor for X. I like it a lot because it is highly customizable and it can be a beautiful and useful addition to your desktop! Also, it is a lot of fun to customize :D.

On my HP Omen I installed Arch Linux with Xfce as desktop environment, and I also wanted to have an awesome conky on my desktop. I started by searching through many conky configurations that are available online, and finally settled with one that I customized so it shows data relevant to me and works well for my setup. Also, I somewhat adjusted its appearance (icons, paddings, some stats). I did not do any testing except on my HP Omen, but I believe this conky should work on any machine with nvidia, maybe with some small adjustments needed (certainly for the network part, where interfaces are hardcoded).

Most important customization that I did is that GPU stats are shown only when discrete GPU is running, and if it is not running that is also shown. This was important for me because I have both discrete and integrated graphics, and I wanted to know when discrete is running, and what is the temperature. I also added coloring to battery bar, improved network stats, improved CPU stats and added average temperature of CPU cores.

I hope my conkyrc will help you with getting started with yours, and that you will have a lot of fun customizing it!

This is what my conky looks like:

My conky

Prerequisits

For my conkyrc to work, you have to install this additional packages:

  • lm_sensors
  • conky-colors (AUR)
  • conky-nvidia (AUR)
  • nvidia-smi

Conkyrc

Below is my conkyrc at the time of writing this post. You can also find it here.

#### SETUP ####
# For this conky configuration to work, you have to install:
# - lm_sensors
# - conky-colors (AUR)
# - conky-nvidia (AUR)
# - nvidia-smi
###############


######################
# - Conky settings - #
######################
update_interval 2
total_run_times 0
net_avg_samples 1
cpu_avg_samples 1

imlib_cache_size 0
double_buffer yes
no_buffers yes
background yes

#####################
# - Text settings - #
#####################
use_xft yes
xftfont Ubuntu:size=10
override_utf8_locale yes
text_buffer_size 2048

#############################
# - Window specifications - #
#############################
own_window_class Conky
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

alignment top_right
gap_x 25
gap_y 50
minimum_size 200 0
maximum_width 200

default_bar_size 60 8

#########################
# - Graphics settings - #
#########################
draw_shades no

default_color cccccc

color0 white
color1 E07A1F
color2 white


TEXT
${font Arial Black:size=26}${alignc}${time %H:%M}${font}
${alignc}${time %A, %B %d, %Y}

SYSTEM ${hr 2}
${goto 6}${voffset 6}${font conkycolorslogos:size=32}a${font}${goto 55}${voffset -25}$machine
${goto 55}Kernel: ${kernel}
#
${voffset 8}${loadgraph F57900 FCAF3E}
#
${goto 6}${voffset 4}${font conkycolors:size=16}o${font}${voffset -6}${goto 32}Uptime: ${alignr}${uptime}
#
${goto 6}${voffset 6}${font conkycolors:size=16}1${font}${voffset -6}${goto 32}Battery: ${battery_short}\
# Color battery bar based on percentage remaining.
${if_match ${battery_percent} < 15}${color red}${else}\
${if_match ${battery_percent} < 25}${color orange}${else}\
${if_match ${battery_percent} < 35}${color yellow}${else}\
${if_match ${battery_percent} < 90}${color white}${else}\
${color green}${endif}${endif}${endif}${endif}\
${alignr}${battery_bar 8,70}${color}
#
${alignr}${battery_time}

CPU ${hr 2}
${goto 6}${voffset 4}${font conkycolors:size=16}d${font}${voffset -5}${goto 32}Frequency: ${alignr}${freq_g (1)} GHz
${goto 6}${voffset 8}${font conkycolors:size=16}8${font}${voffset -5}${goto 32}Temperature:${alignr}${color #FCAF3E}\
${execi 30 sensors | grep 'Core ' | awk '{total += $3; count++} END {print total/count}' | sed 's/+//' | sed 's/\.0//g'} °C$color
${goto 6}${voffset 9}${font conkycolors:size=16}l${font}${voffset -6}${goto 32}Usage: ${cpu}% ${alignr}${voffset -7}${cpugraph 20,85 F57900 FCAF3E -t}
${goto 32}${cpubar cpu1 8,34}  ${cpubar cpu2 8,34}  ${cpubar cpu3 8,34}  ${cpubar cpu4 8,34}
${goto 32}${cpubar cpu5 8,34}  ${cpubar cpu6 8,34}  ${cpubar cpu7 8,34}  ${cpubar cpu8 8,34}

Discrete GPU ${hr 2}
${if_match ${exec lsmod | grep 'nvidia' -c} > 0}\
${goto 6}${voffset 5}${font conkycolorslogos:size=16}n${font}${voffset -6}${goto 32}${exec nvidia-smi --query-gpu=name --format=csv,noheader}
${goto 6}${voffset 5}${font conkycolors:size=16}8${font}${voffset -6}${goto 32}\
Temperature: ${alignr}${color #FCAF3E}${exec nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits} °C$color
${goto 6}${voffset 5}${font conkycolors:size=16}e${font}${voffset -6}${goto 32}\
Memory:${alignr}${exec nvidia-smi --query-gpu=memory.used --format=csv,noheader} / ${exec nvidia-smi --query-gpu=memory.total --format=csv,noheader}
${else}\
${goto 6}${voffset 5}${font conkycolors:size=16}r${font}${voffset -6}${goto 32}OFF
${endif}\

General ${hr 2}
${goto 6}${voffset 4}${font conkycolors:size=16}g${font}${voffset -6}${goto 32}RAM: ${mem} ${alignr}${membar 8,60}
#
${if_match "$swapperc" != "No swap"}\
${goto 6}${voffset 4}${font conkycolors:size=16}i${font}${voffset -4}${goto 32}Swap: ${swapperc}% ${alignr}${swapbar 8,60}
${endif}\
#
${goto 6}${voffset 4}${font conkycolors:size=16}C${font}${voffset -6}${goto 32}Processes: ${alignr}$processes ($running_processes running)
${voffset 4}${goto 32}Threads: ${alignr}$threads ($running_threads running)
${goto 32}${voffset 4}Highest: ${alignr 22}CPU${alignr}RAM
${goto 32}${voffset -5.5}${hr 1}
${voffset -1}${goto 32}${top name 1} ${goto 124}${top cpu 1}${alignr}${top mem 1}
${voffset -1}${goto 32}${top name 2} ${goto 124}${top cpu 2}${alignr}${top mem 2}
${voffset -1}${goto 32}${top name 3} ${goto 124}${top cpu 3}${alignr}${top mem 3}
${voffset -1}${goto 32}${top name 4} ${goto 124}${top cpu 4}${alignr}${top mem 4}
${voffset -1}${goto 32}${top name 5} ${goto 124}${top cpu 5}${alignr}${top mem 5}

Disk ${hr 2}
${voffset 4}${font conkycolors:size=16}l${font}${voffset -6}${goto 32}I/O: ${diskio}${alignr}${diskiograph 8,60 F57900 FCAF3E}
${voffset 4}${font conkycolors:size=16}i${font} ${voffset -5} ${fs_used /} / ${fs_size /} ${alignr}${fs_bar 8,60 /}

Network ${hr 2}
${if_up enp0s20u5}\
${voffset 2} Ethernet ${hr 1}
${voffset 15}${font conkycolors:size=14}x${font}${goto 32}${voffset -15}Up: ${upspeed enp0s20u5}${font} ${alignr}${upspeedgraph enp0s20u5 20,60 F57900 FCAF3E}
${goto 32}${voffset -15}Total: ${totalup enp0s20u5}
#
${voffset 15}${font conkycolors:size=14}w${font}${goto 32}${voffset -15}Down: ${downspeed enp0s20u5}${font} ${alignr}${downspeedgraph enp0s20u5 20,60 F57900 FCAF3E}
${goto 32}${voffset -15}Total: ${totaldown enp0s20u5}
#
${voffset 8}${font conkycolors:size=13}A${font}${goto 32}${voffset -4}Local IP: ${alignr}${addr enp0s20u5}
#
${else}\
${if_up wlo1}\
${voffset 2} Wireless ${hr 1}
${voffset 10}${font conkycolors:size=14}k${font}${goto 32}${voffset -12}SSID: ${wireless_essid wlo1}
${goto 32}Signal: ${wireless_link_qual_perc wlo1}% ${alignr}${wireless_link_bar 8,60 wlo1}
#
${voffset 15}${font conkycolors:size=14}x${font}${goto 32}${voffset -15}Up: ${upspeed wlo1}${font} ${alignr}${upspeedgraph wlo1 20,60 F57900 FCAF3E}
${goto 32}${voffset -15}Total: ${totalup wlo1}
#
${voffset 15}${font conkycolors:size=14}w${font}${goto 32}${voffset -15}Down: ${downspeed wlo1}${font} ${alignr}${downspeedgraph wlo1 20,60 F57900 FCAF3E}
${goto 32}${voffset -15}Total: ${totaldown wlo1}
#
${voffset 8}${font conkycolors:size=13}A${font}${goto 32}${voffset -4}Local IP: ${alignr}${addr wlo1}
#
${else}\
${voffset 4}${font conkycolors:size=14}qwe${font}${goto 32}Network Unavailable
${endif}\
${endif}\


${hr 2}