Conky – The Fully Customizable System Monitor For Linux

Conky Theme Zorin

Today we will be learning about Conky, a Linux system monitor which is used to create beautiful infographics of your system. If you have ever browsed r/unixporn and looked at a similar desktop and wondered how you can recreate the same beautiful monitoring setup on your device, you are in for a treat.

With its ability to display a wide range of system stats, music player integration, email notifications, and Lua scripting support, Conky is the ultimate tool to enhance your desktop experience. Get started by installing Conky, then dive into the exciting journey of configuration and theme customization. Check out amazing Conky setups, borrow ideas, and create your unique masterpiece.

What is Conky?

Conky, simply put is a light-weight system monitor for X, which is a GUI framework for Linux. In the picture above you can see that it is displaying system information like CPU temperature, cores used, tasks running, battery, uptime, etc. There are many other efficient systems monitor like top, gtophtop but none of them can be customized on the same level as conky.

Features of Conky

  • Displays OS stats like uname, uptime, processes, active cores, memory usage, and many others. Infact it can be customized to display ANY text output. This enables conky to be insanely extensible.
  • Built in support for MPD, Audacious, and other music players so you can display the currently playing music and music queues.
  • Built in IMAP and POP3 support so you can check on your mail notifications.
  • Built in Lua support, which can be used to write any custom scripts and modules.
  • Built in Cairo support, which when used with Lua, can be used to draw and display images.

Installing Conky

You can install conky’s AppImage on any distro using this command.

curl -sL -o conky-x86_64.AppImage \
    $(curl -sL https://api.github.com/repos/brndnmtthws/conky/releases/latest | \
    jq --raw-output '.assets[0] | .browser_download_url')
chmod a+x ./conky-x86_64.AppImage

If you are using Debian or any Debian derivatives (Ubuntu, Mint, etc.) you can also install conky from the package manager using the following command.

sudo apt-get install conky-all

Running conky for the first time

You can run conky using:

./conky-x86_64.AppImage 

if you installed the AppImage.

If you installed it from the package manager, you can just type conky in the terminal to run it.

Conky by default looks quite ugly, nothing like the beautiful panels we see in those beautifully customized images. The real power of conky lies in configuration.

We will now learn the basics of configuring conky.

Conky Initial
Default conky setup

Configuring Conky – Basics

The config file by default is /etc/conky/conky.conf

To start with customizing, create a .conkyrc file in ~/ using the following command,

touch ~/.conkyrc

Now every time you run conky, it will source config from conkyrc instead of the default conky.conf file.

To run and use conky from a custom config file, you can use the -c flag shown below

conky -c /path/to/config/file

Basic config options

Every conky configuration file has two parts. The first part controls how conky acts, i.e. how often it updates, alignment, colors, gaps, borders, transparency, etc. The second part starts after the line that says TEXT and it controls the actual content that is rendered on the screen i.e. time, CPU temperature, kernel version, and weather.

To know about all the inbuilt settings and variables in a precise manner, visit Conky Variable documentation and Conky Settings documentation.

Installing a Conky theme

While you can definitely write your own config from scratch, it’s usually easier to install a theme you like and then modify it over time. You can find installation files of conky themes for download on DotShareDeviant ArtGnome Looksr/unixporn, and r/conkyporn just to name a few.

The theme I will be installing here is called Victor Conky. To install it I will be cloning its GitHub repository, then moving the victorConky folder to ~/.conky and moving all the fonts to ~/.fonts as shown below.

git clone https://github.com/gictorbit/victorconky
mkdir ~/.conky 
mv victorconky/victorConky ~/.conky/
mv victorconky/fonts/* ~/.fonts 

Now you can run conky with the appropriate config. Victor Conky provides you with six versions of its theme with different sizes and logos. Here I will be running the ArchMedium config

Victor Conky Theme

Now, conky is running. You can see the output on the wallpaper.

Victor Conky Theme Output

Tips for configuration

  • The best way to get beautiful conky designs is to browse related subreddits (mentioned above) and copy the parts of the config you like. This way you can also find new ideas for modules, fonts and display art.
  • Make your configs modular. This would mean that you write separate bash/lua scripts for every functionality you want (for ex. a news bulletin) and then add those to the code. This makes it easier to share snippets of your code and makes it easily extensible.

Featured conky configurations

Here are some screenshots of my favorite conky setups that I have come across in the past.

Azuia Conky
Auzia Conky theme
Thinkpad Conky Theme
Thinkpad-based conky theme
Conky Minimal Theme
Conky minimal theme
Conky Twitter News Systemd Modules
Conky setup with Twitter, Systemd, Stock Market, News, Google trends and other modules

Conclusion

This is all you need to get started with conky. Now even you can make your desktop environment look like it’s from the future and make Windows users jealous. If you want to write your own configs from scratch, don’t forget to go through the documentation as it is quite helpful. Keep exploring!

Reference

Read more on conky wiki