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 set up on your device, you are in for a treat.
What is Conky?
Conky, simply put is a system monitor. 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 system monitors like top, gtop, htop 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 makes it 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 ussed with Lua , can be used to draw and display images.
You can install conky 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 | .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:
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.
Configuring Conky – Basics
The config file by default is
To start with a customizing, create a .conkyrc file in ~/ using the following command,
Now every time you run conky, it will source config from conkyrc instead of the default conky.conf file.
To run 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 config file has two parts. The first part controls how conky acts, i.e. how often it updates, alignment, colors, gaps, borders, 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, 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 conky themes on DotShare, Deviant Art, Gnome Looks, r/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
Now, conky is running. You can see the output on the wallpaper.
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 of my favorite conky setups that I have come across in the past.
This is all you need to get started with conky. Now even you can make your desktop 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!