Just help me set up Conky please and I dont have ~/.conkyrc


You already asked for this here:

Links which may be useful:

The application conky-manager can help you to deal with config files and installed themes.
I don’t know much about this application as I’am not using it.


I Know but im still stuck all i want is a running conky and added themes
why is it so hard I Only get this and if i close terminal, Conky is also gone :sleepy:conky

Full description of Configuration Settings and Conky Objects can be found here:

You can also call scripts written in bash, python, lua…

1 Like

If you take time to read this link: https://wiki.archlinux.org/index.php/conky#Autostart

You will learn how to start Conky automatically. Settings may depend on the window manager / desktop environment you are using.

1 Like

Im Using Gnome
as always many thanks for ue fast help

I just cant get my head around this

As it’s written in the Arch Wiki, you have to create a .desktop file under:

As for the content of this file:

[Desktop Entry]
Exec=conky --daemonize --pause=5

Conky will start automatically when you log in after setting this up.


I will make some fresh coffee and read the Conky - ArchWiki

Thank u

I messed up my config file

any help and some how i copy past this Lua thing like this

local usage = [[
Usage: convert.lua old_conkyrc [new_conkyrc]
Tries to convert conkyrc from the old v1.x format to the new, lua-based format.
Keep in mind that there is no guarantee that the output will work correctly
with conky, or that it will be able to convert every conkyrc. However, it
should provide a good starting point.
Although you can use this script with only 1 arg and let it overwrite the old
config, it's suggested to use 2 args so that the new config is written in a new
file (so that you have backup if something went wrong).
Optional: Install dos2unix. We will attempt to use this if it is available
because Conky configs downloaded from Internet sometimes are created on DOS/Windows
machines with different line endings than Conky configs created on Unix/Linux.
For more information about the new format, read the wiki page

local function quote(s)
    if not s:find("[\n'\\]") then
        return "'" .. s .. "'";
    local q = '';
    while s:find(']' .. q .. ']', 1, true) do
        q = q .. '=';
    return string.format('[%s[\n%s]%s]', q, s, q);

local bool_setting = {
    background = true, disable_auto_reload = true, double_buffer = true, draw_borders = true,
    draw_graph_borders = true, draw_outline = true, draw_shades = true, extra_newline = true,
    format_human_readable = true, no_buffers = true, out_to_console = true,
    out_to_ncurses = true, out_to_stderr = true, out_to_x = true, override_utf8_locale = true,
    own_window = true, own_window_argb_visual = true, own_window_transparent = true,
    short_units = true, show_graph_range = true, show_graph_scale = true,
    times_in_seconds = true, top_cpu_separate = true, uppercase = true, use_xft = true,
    draw_blended = true, forced_redraw = true

local num_setting = {
    border_inner_margin = true, border_outer_margin = true, border_width = true,
    cpu_avg_samples = true, diskio_avg_samples = true, gap_x = true, gap_y = true,
    imlib_cache_flush_interval = true, imlib_cache_size = true,
    max_port_monitor_connections = true, max_text_width = true, max_user_text = true,
    maximum_width = true, mpd_port = true, music_player_interval = true, net_avg_samples = true,
    own_window_argb_value = true, pad_percents = true, stippled_borders = true,
    text_buffer_size = true, top_name_width = true, total_run_times = true,
    update_interval = true, update_interval_on_battery = true, xftalpha = true,
    xinerama_head = true,

local split_setting = {
    default_bar_size = true, default_gauge_size = true, default_graph_size = true,
    minimum_size = true

local colour_setting = {
    color0 = true, color1 = true, color2 = true, color3 = true, color4 = true, color5 = true,
    color6 = true, color7 = true, color8 = true, color9 = true, default_color = true,
    default_outline_color = true, default_shade_color = true, own_window_colour = true

local function alignment_map(value)
    local map = { m = 'middle', t = 'top', b = 'bottom', r = 'right', l = 'left' };
    if map[value] == nil then
        return value;
        return map[value];

local function handle(setting, value)
    setting = setting:lower();
    if setting == '' then
        return '';
    if split_setting[setting] then
        local x, y = value:match('^(%S+)%s*(%S*)$');
        local ret = setting:gsub('_size', '_width = ') .. x .. ',';
        if y ~= '' then
            ret = ret .. ' ' .. setting:gsub('_size', '_height = ') .. y .. ',';
        return '\t' .. ret;
    if bool_setting[setting] then
        value = value:lower();
        if value == 'yes' or value == 'true' or value == '1' or value == '' then
            value = 'true';
            value = 'false';
    elseif not num_setting[setting] then
        if setting == 'alignment' and value:len() == 2 then
            value = alignment_map(value:sub(1,1)) .. '_' .. alignment_map(value:sub(2,2));
        elseif colour_setting[setting] and value:match('^[0-9a-fA-F]+$') then
            value = '#' .. value;
        elseif setting == 'xftfont' then
            setting = 'font';
        value = quote(value);
    return '\t' .. setting .. ' = ' .. value .. ',';

local function convert(s)
    local setting, comment = s:match('^([^#]*)#?(.*)\n$');
    if comment ~= '' then
        comment = '--' .. comment;
    comment = comment .. '\n';
    return handle(setting:match('^%s*(%S*)%s*(.-)%s*$')) ..  comment;

local input;
local output;

if conky == nil then --> standalone program
    -- 1 arg: arg is input and outputfile
    -- 2 args: 1st is inputfile, 2nd is outputfile
    -- 0, 3 or more args: print usage to STDERR and quit
    if #arg == 1 or #arg == 2 then
        if os.execute('command -v dos2unix 2>&1 >/dev/null') == 0 then
            os.execute('dos2unix ' .. arg[1]);
        input = io.input(arg[1]);
    -- we are called from conky, the filename is the first argument
    input = io.open(..., 'r');

local config = input:read('*a');

local settings, text = config:match('^(.-)TEXT\n(.*)$');

local converted = 'conky.config = {\n' .. settings:gsub('.-\n', convert) .. '};\n\nconky.text = ' ..
                quote(text) .. ';\n';

if conky == nil then
    if #arg == 2 then
        output = io.output(arg[2]);
        output = io.output(arg[1]);
    return assert(load(converted, 'converted config'));

If you want to learn more about Lua scripts:

You will need to edit your conky.conf file to fit your needs.
I would suggest to start from a basic example, to make it work and then try some more fancy ones.

By the way, this website have some great examples:


Many thanks I will read about it tomorrow

i will take a break from conky tonight :slight_smile:

can any one share there config file with me please

i am learning to set up conky , and want it to look sharp
but Because i am new to this , im not getting the results i want

thank u

Here’s a good place to start, plenty of examples:

There’s thousands more if you search the internet. Please don’t be a Help Vampire.


Never heard of help Vampire First Time

When you are asking for help to have your system look sharp - without actually being able to do it your self - when you keep asking for others to share what they are using without actually doing work yourself - then it begin to look like a vampire - the expression is very much like leeches on torrents - sucking without giving.

There was a thread on the archived forum - maybe you can find som inspiration there? I have posted a link the conky I use on Openbox - others have posted similar.

Often a given conky will require some finish because you would probably want to look slightly different.

There is also Conky Manager from the repo - you can get a lot of inspiration from there - but as all those are in the old conky format they can be hard to work with. I started with the conky-manager package but quickly found they are hard to use and they required polish and finish to work as would like.

With relation to the inclusion of LUA scripts you need a version of conky compiled with LUA support which is not default. Those are usually in AUR but Manjaro has one in the repo with support for lua and nvidia.

sudo pacman -Syu conky-lua-nv

Conky themes are really a script which load different conky script to create a theme. You can easily find conkies on the spider’s web


That’s right. And if you use terminal and run conky && it will be detached from the terminal and run after closing the terminal.

By default, if there IS a file .conkyrc it will be used. If there isn’t, then you end up with a bog standard basic version as you showed.

if you run ‘conky -h’ in terminal, you get help.

-c for a config file, for example. -d to daemonize.

So if you put a file (named conky.conky) in a folder (like ~/Admin/Conky/conky.conky) then you can run conky using that file using

conky -d -c ~/Admin/conky/conky.conky

I have a simple conky to show networking on my desktop - I keep it separate, try it:


conky.config = {

– Conky settings

background = true,
update_interval = 1,
double_buffer = true,
no_buffers = true,
imlib_cache_size = 10,
window = 'specifications',

gap_x = 5,
gap_y = 0,
minimum_width = 20, minimum_height = 0,
maximum_width = 220,
alignment = 'top_right',
own_window = true,
own_window_type = 'normal',
own_window_transparent = false,
own_window_argb_visual = true,
own_window_argb_value = 80,
own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager',

–own_window_type normal
–own_window_transparent no
–own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
–own_window_argb_visual yes
–own_window_argb_value 0
border_inner_margin = 0,
border_outer_margin = 0,
graphics = ‘settings’,

draw_shades = false,
default_shade_color = '#484848',
draw_outline = false,
default_outline_color = '#dddddd',
draw_borders = false,
draw_graph_borders = false,
default_graph_width = 40, default_graph_height = 80,
show_graph_scale = true,
show_graph_range = false,
text = 'settings',

use_xft = true,
xftalpha = 0,
font = 'Droid Sans:size=9',
text_buffer_size = 256,
override_utf8_locale = true,
useful = 'shortenings',

short_units = true,
pad_percents = 2,
top_name_width = 30,
color = 'scheme',

default_color = '#FFFFFF',
color1 = '#FFFFFF',
color2 = '#2dcba5',-- teal
color3 = '#16a085',-- teal2
color4 = '#FFFFFF',
color5 = '#DCDCDC',

color6 = ‘#FFFFFF’,
color7 = ‘#FFFFFF’,
color8 = ‘#A9CFF4’,

– iphone wlp0s20u12


conky.text = [[
${if_existing /proc/net/route enp2s0} ${upspeedgraph enp2s0 30,50 efa644 ff5b00 3500 -l} ${alignr}${downspeedgraph enp2s0 30,50 88a669 55ff1a 10000 -l}${color }${font mitr:bold:size=2}
${color2}${font mitr:bold:size=9}${upspeed enp2s0} ${alignr}${downspeed enp2s0}${endif} ]];

You must edit details to suit your system - maybe you don’t have enp2s0, but you should be able to isolate and see a pattern to look for (if existing) and define a graph for that.

I have more than one entry in the real file - one for cable, the other for WiFi, another for my phone connection if I use that.

1 Like


Thank you

Another way to start conky I came up with when I started using mouse gestures is a simple script:

if pgrep -x “conky”
then killall conky
conky -d -c ~/Admin/conky/network.conky
conky -d -c ~/Admin/conky/conky.conky

conky.conky is set to run for only 1 minute for extra information, whilst the first one runs indefinitely. Using a gesture to run the script again will 1. remove any/all conkies or 2. Start the conkies mentioned in the script (so it would be easy to add a line, for example, to add something else, like a fuzzy clock, if you like).

Whilst there are very fancy conkies out there, I always ended up stripping mine down to be simpler - often showing only a semi transparent orange/green graph for network upload/download with a gesture adding cpu/ram, HDD info/temps, Top processes and backup statusses. The ‘fancy’ feature, for me, is the quick switch and timeout on the main conky window to revert to minimalism. No point wasting resources monitoring resources :slight_smile:

There is a fork of conky manager in the AUR, called conky manager 2. It can detect new syntax conkies unlike the original conky manager in the repo.

That helps as a management tool if you have/use multiple conkies. But the user will still need to learn how to make/modify their conkies themselves, which for Arch will now have to be new-syntax conkies.