electronic brain surgery since 2001

Simple Conky Setup

I always like to know what my system is doing, so it's easy to spot when things go wrong for some reason. Til now I relied on some widgets in my XFCE panel, but the info you get there is rather limited.

The defacto standard for live monitoring on Linux desktops is conky. It's endlessly flexible and relatively light on resources. However its also rather ugly out of the box.

There are a million configurations available on the net, but I wanted something simple that can easily be customized. After few hours of reading and tweaking, here is what I came up with:

And here's the config for that. Feel free to copy and adjust it for your needs.

conky.config = {
    use_xft = true,
    xftalpha = 0.8,
    update_interval = 1.0,
    total_run_times = 0,
    own_window = true,
    own_window_transparent = true,
    own_window_argb_visual = true,
    own_window_type = 'normal',
    own_window_class = 'conky-semi',
    own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
    background = false,
    double_buffer = true,
    imlib_cache_size = 0,
    no_buffers = true,
    uppercase = false,
    cpu_avg_samples = 2,
    override_utf8_locale = true,
    -- placement
    alignment = 'top_left',
    gap_x = 140,
    gap_y = 25,
    -- default drawing
    draw_shades = false,
    draw_outline = false,
    draw_borders = false,
    draw_graph_borders = true,
    default_bar_width = 150, default_bar_height = 5,
    default_graph_width = 150, default_graph_height = 12,
    default_gauge_width = 20, default_gauge_height = 20,
    -- colors
    font = 'Liberation Mono:size=10',
    default_color = 'EEEEEE',
    color1 = 'AABBFF',
    color2 = 'FF993D',
    color3 = 'AAAAAA',
    -- layouting
    template0 = [[${font Liberation Sans:bold:size=11}${color2}\1 ${color3}${hr 2}${font}]],
    template1 = [[${color1}\1]],
    template2 = [[${goto 100}${color}]],
    template3 = [[${goto 180}${color}${alignr}]],
conky.text = [[
${template0 Info}
${template1 Date}                                                           ${template3}${color3}${time %a,}${color}${time %e %B %G}
${template1 Time}                                                           ${template3}${time %T}
${template0 System}
${template1 Hostname}                                                       ${template3}${nodename}
${template1 ${sysname}}                                                     ${template3}${kernel}-${machine}
${template1 Uptime}                                                         ${template3}${uptime_short}
${template1 CPU}                                                            ${template3}${freq_g}GHz
${template1 CPU\ Temperature}                                               ${template3}${acpitemp}°C
${template1 HDD\ Temperature}                                               ${template3}${hddtemp /dev/sda}°C
${template0 Processors}
${template1 Load}               ${template2}${loadavg 1}                    ${template3}${loadgraph}
${template1 Core\ 1}            ${template2}${cpu cpu1}%                    ${template3}${cpubar cpu1}
${template1 Core\ 2}            ${template2}${cpu cpu2}%                    ${template3}${cpubar cpu2}
${template1 Core\ 3}            ${template2}${cpu cpu3}%                    ${template3}${cpubar cpu3}
${template1 Core\ 4}            ${template2}${cpu cpu4}%                    ${template3}${cpubar cpu4}
${template1 Top}                ${template2}${top name 1}                   ${template3}${top cpu 1}
${template0 Memory}
${template1 Memory}             ${template2}${memperc}% used                ${template3}${mem} / ${memmax}
${template1 Top}                ${template2}${top_mem name 1}               ${template3}${top_mem mem_vsize 1}
${template0 Filesystem}
${template1 /}                  ${template2}${fs_free /} free               ${template3}${fs_used /} / ${fs_size /}
                                                                            ${template3}${fs_bar /}
${template1 IO\ Read}           ${template2}${diskio_read}                  ${template3}${diskiograph_read}
${template1 IO\ Write}          ${template2}$diskio_write                   ${template3}$diskiograph_write
${template1 Top}                ${template2}${top_io name 1}                ${template3}${top_io io_perc 1}%
${template0 Networking}
${if_existing /proc/net/route wlan0}\
${template1 IP}                                                             ${template3}${addr wlan0}
${template1 AP}                                                             ${template3}${wireless_essid wlan0}
${template1 Signal}             ${template2}${wireless_link_qual_perc wlan0} ${template3}${wireless_link_bar wlan0}
${template1 Download}           ${template2}${downspeed wlan0}              ${template3}${downspeedgraph wlan0}
${template1 Upload}             ${template2}${upspeed wlan0}                ${template3}${upspeedgraph wlan0}
${template1 Total Down/Up}                                                  ${template3}${totaldown wlan0}/ {totalup wlan0}↑
${else}${if_existing /proc/net/route eth0}\
${template1 Ip}                                                             ${template3}${addr eth0}
${template1 Download}           ${template2}${downspeed eth0}               ${template3}${downspeedgraph eth0}
${template1 Upload}             ${template2}${upspeed eth0}                 ${template3}${upspeedgraph eth0}
${template1 Total Down/Up}                                                  ${template3}${totaldown eth0}/ ${totalup eth0}↑

Now I just wish I could find something similar for Windows. Tips welcome.

conky, linux, monitoring
Similar posts: