A Beginner's Guide to Conky

Get real time system info on your Linux desktop

Conky is a graphical tool for Linux that displays system information to your screen in real time. You can customize the Conky look and feel so that it displays the information you need it to.

Person using computer.
 Rawpixel / Mockup.Photos

By default the sort of information you see is:

  • Computer Name
  • Uptime
  • Frequency (in MHz)
  • Frequency (in GHz)
  • RAM usage
  • SWAP usage
  • CPU usage
  • Processes / running processes
  • File systems
  • Networking
  • Top running processes

Here's how to install Conky and how to customize it.

Installing Conky

If you are using a Debian based Linux distribution such as any of the Ubuntu family (Ubuntu, Ubuntu MATE, Ubuntu GNOME, Kubuntu, Xubuntu, and Lubuntu), Linux Mint, or Bodhi, use the following apt-get command:

sudo apt install conky

If you are using Fedora or CentOS use the following dnf command:

sudo dnf install conky

For openSUSE, use the following zypper command:

sudo zypper install conky

For Arch Linux, use the following PacMan command:

sudo pacman -S conky

Each of the cases above include sudo to elevate your privileges. 

Running Conky

You can run Conky straight from the terminal by running the following command:


On its own, it isn't very good, and you might find the screen flickers.

Conky default running on Ubuntu

To get rid of the flicker run conky in the following ways:

conky -b

To get conky to run as a background process, use the following command:

conky -b &

Getting Conky to run at startup differs for each Linux distribution. This Ubuntu page shows how to do it for the most popular Ubuntu variants.

Creating a Configuration File

By default, the Conky configuration file is located in /etc/conky/conky.conf. You should create your own configuration file.

To create a configuration file for Conky, open a terminal window and navigate to your home directory:

cd ~

From there, you need to navigate to the hidden config folder.

cd .config

You could have just typed (cd ~/.config). Read the guide on the cd command for more information about navigating the file system.

Now that you are in the .config folder, run the following command to copy the default config file.

sudo cp /etc/conky/conky.conf .conkyrc

Then, change the ownership of the file to your user.

sudo chown user:user .conkyrc
Conky local configuration setup

Create a Script to Run Conky at Startup

Adding Conky by itself to the startup routine for whichever distribution and graphical desktop you are using doesn't work very well.

You need to wait for the desktop to fully load. The best way to do this is to create a script to launch Conky and run the script at startup.

Open a terminal window and navigate to your home folder.

Create a file called conkystartup.sh using nano or even the cat command. (You can make it hidden by placing a dot in front of the file name).

Enter these lines into the file:

sleep 10
conky -b &

Save the file and make it executable using the following command:

sudo chmod a+x ~/conkystartup.sh

Now add the conkystartup.sh script to the list of startup applications for your distribution. 

By default, Conky now uses your .conkyrc file in the .config folder. You can specify a different config file if you want to, and this is useful if you intend to run more than one Conky. (Perhaps one on the left side and one on the right).

First of all, create two Conky configuration files as follows:

sudo cp /etc/conky/conky.conf ~/.config/.conkyleftrc
sudo cp /etc/conky/conky.conf ~/.config/.conkyrightrc

Now edit your conkystartup.sh as follows:

sleep 10
conky -b -c ~/.config/.conkyleftrc &
conky -b -c ~/.config/.conkyrightrc &

Save the file.

When your computer reboots, you have two Conkys running. You can have more than two running but remember that Conky itself uses esources, and there is a limit to how much system information you want to show.

Changing the Configuration Settings

To change the configuration settings, edit the Conky configuration file you created in the .config folder.

To do this open a terminal and run the following command:

sudo nano ~/.config/.conkyrc

Scroll past the warranty statement until you see the words conky.config.

All the settings between the { and } within the conky.config section defines how the window itself is drawn.

For instance, to move the Conky window to the bottom left you set the alignment to 'bottom_left'. Going back to the concept of a left and right Conky window, you would set the alignment on the left config file to 'top_left' and the alignment on the right config file to 'top_right'.

You can add a border to the window by setting the border_width value to any number greater than 0 and by setting the draw_borders option to true.

To change the main text color, edit the default_color option and specify a color such as red, blue, or green.

You can add an outline to the window by setting the draw_outline option to true. You can change the outline color by amending the default_outline_colour option. Again you would specify red, green, blue, etc.

Similarly, you can add a shade by changing draw_shades to true. You can then amend the color by setting the default_shade_colour.

It is worth playing with these settings to get it to look the way you like it.

You can change the font style and size by amending the font parameter. Enter the name of a font that is installed on your system and set the size appropriately. This is one of the most useful settings as the default 12 point font is quite big.

If you want to leave a gap from the left side of the screen, edit the gap_x setting. Similarly to change the position from the top of the screen amend the gap_y setting.

Conky default configuration

There are a whole host of configuration settings for the window. Here are some of the most useful ones:

  • border_inner_margin - the margin between the border and the text
  • border_outer_margin - the margin between the border and the edge of the window 
  • default_bar_height - the height for bars (graph elements)
  • default_bar_width - the width for bars (graph elements)
  • default_gauge_height 
  • default_gauge_width
  • draw_graph_borders - choose whether graphs have borders
  • minimum_width - minimum width of the window
  • maximum_width - maximum width of the window
  • minimum_height - minimum height of the window
  • maximum_heigh - maximum height of the window
  • own_window_title - Give the conky window a title of your choosing
  • own_window_argb_visual - turn on transparency
  • own_window_argb_value - number between 0 and 255. 0 is opaque, 255 is fully transparent.
  • short_units - make units a single character
  • show_graph_range - shows the time range covered by a graph
  • show_graph_scale - shows the maximum value in scaled graphs
  • uppercase - show all text in uppercase

Configuring the Information Shown by Conky

To amend the information shown by Conky, scroll past the conky.config section of the Conky configuration file.

You will see a section which starts like this:

"conky.text = [["

Anything you want to be displayed goes in this section.

The lines within the text section look something like this:

${color grey}Uptime:$color $uptime

The {color gray} specifies that the word "uptime" will be gray in color. You can change this to any color you wish.

The $color before $uptime specifies that the uptime value is displayed in the default color. The $uptime setting is replaced with your system uptime.

You can scroll text by adding the word "scroll" in front of the setting as follows:

${scroll 16 $nodename - $sysname $kernel on $machine |}

You can add horizontal lines between settings by adding the following:

Conky text config

Here are some of the more useful settings that you might want to add:

  • audacious_bar - Audacious music player progress bar
  • audacious_channels - Number of audacious channels for current tune
  • audacious_file - Filename for current tune
  • audacious_length - Length of current tune
  • audacious_playlist_length - Number of tunes in the playlist
  • battery_percent - Battery percentage
  • battery_time - Battery time remaining
  • cpu - CPU usage
  • cpubar - CPU bar chart
  • cpugauge - CPU gauge
  • desktop_name - Name of the desktop
  • diskio (device) - Displays disk io
  • distribution - Name of the distribution
  • downspeedf (net) - Download speed in kilobytes
  • exec command - Executes a shell command and displays output in Conky
  • fs_bar - How much space is used on a file system
  • fs_bar_free - How much free space is available on a file system
  • fs_free - Free space on a file system
  • fs_free_perc - Free space as a percentage
  • image - Displays an image
  • kernel - Kernel version
  • loadavg (1|2|3) - Load average for 1, 5 and 15 minutes
  • mem - Amount of memory in use
  • membar - Bar showing memory in use
  • memfree - Amount of free memory
  • memperc - Percentage of memory in use
  • mpd_album - Album in current MPD song
  • mpd_artist - Artist in current MPD song
  • mpd_bar - Bar of mpd's progress
  • mpd_file - Filename for current mpd song
  • mpd_length - Song's length
  • mpd_title - Song's name
  • mpd_vol - Volume of MPD player
  • nodename - Hostname
  • processes - Total processes
  • running_processes - Processes in action
  • swap - Amount of swap space in use
  • swapbar - Bar showing swap usage
  • swapfree - Amount of free swap
  • swapmax - Total amount of swap
  • swapperc - Percentage of swap in use
  • threads - Total threads
  • time (format) - Local time
  • upspeedf - Upload speed
  • uptime - System uptime
  • user_names - list the users logged in
  • user_number - number of users logged in
  • user_times - length of time users have been logged in
  • utime - Time in UTC format
  • weather - weather info


There are a whole wealth of Conky configuration settings, and you can find the full list by reading the official Conky manual page.

Was this page helpful?