Installing Conky on Slackware64

Home / Installing Conky on Slackware64

Installing Conky on Slackware64

December 5, 2015 | Article | No Comments

What is conky?

Conky is a light-weight system monitor for X that display any information to desktop. Maybe you who has familiar with Windows OS will find it similar to Conky.

In this article we will use following:

  1. Slackware64 14.0 (any 64 bit version is OK)
  2. scons
  3. lua
  4. imlib2
  5. tolua++
  6. conky

The packages (2) to (6) can be found on slackbuild website. In this article we assume you are know how to install package with slackbuild, otherwise you can search for it.

Now build the packages and install with following order:

And you now have conky installed on your machine 😀
But wait, the conky has started but it draws black background, what’s up? Calm down, there is an explanation for that. Remember that Slackware64 use KDE.

  1. Conky uses pseudo-transparency instead of ACTUAL transparency. It means Conky peeks at the root desktop and draws it as the background of the Conky window.
  2. KDE doesn’t draw wallpaper to the root window, only to the plasma desktop. Plasma desktop is the lowest window on top of the root window. Thus the root window is empty and now you know why Conky appear as black background.

There is an approach to overcome this: draw the background used by plasma desktop to root window. To do so, we need to install additional package: feh. Now go to slackbuild site again, download and install following packages in order:

  1. giblib
  2. feh

Assuming you use a script for autostart at booting, modify your script and gives a delay before conky start (using sleep). Fifteen seconds is a good one. After use sleep, we will draw a background before conky start so call feh before conky. Here is the script I use:

#! /bin/sh

function do_start() {
  if [ `pgrep conky | wc -l` -ge 2 ]; then
    echo "OctoEngine has been activated before. Quitting..."
    return;
  fi

  if [ `grep 'wallpaper=' ~/.kde/share/config/plasma-desktop-appletsrc | wc -l` -gt 1 ]; then
    WP=`grep 'wallpaper=' ~/.kde/share/config/plasma-desktop-appletsrc | sed -n 2p | tail --bytes=+11`
  else
    WP=`grep 'wallpaper=' ~/.kde/share/config/plasma-desktop-appletsrc | tail --bytes=+11`
  fi
  feh --bg-scale $WP
  sleep 15
  conky -d -c /opt/conky/config/left_panel
  conky -d -c /opt/conky/config/right_panel
  sleep 1 && transset-df .5 -n Conky
}

case $1 in
  "start")
    do_start
    ;;
  "restart")
    killall conky
    do_start
    ;;
  "stop")
    killall conky
    ;;
esac

if [ $# -ne 1 ]; then
  do_start
fi

 

On that script, I use two conky: left_panel and right_panel which located at /opt/conky/config. Everything I need to run conky is defined on do_start() function. I must make sure that only one of each must be run, no multiple instance, so I check whether conky has been running before (indicated by “`pgrep conky | wc -l` -ge 2” command)

In this scenario, we use wallpaper used by plasma desktop and draw it into root window. To accomplish that, we need to peek at ~/.kde/share/config/plasma-desktop-appletsrc, parse it to get the correct filename, and execute feh. Mostly I’m using multiple display screen and the plasma-desktop-appletsrc will return more than one line thus supply incorrect value for feh. Therefore I modify it so it can adapt to my situation.

Using this script is so simple, use it just like any autostart script. If you want to stop conky manually you can invoke script_name stop. Starting conky manually can be done with script_name start.

, ,

About Author

about author

xathrya

A man who is obsessed to low level technology.

Leave a Reply

Your email address will not be published. Required fields are marked *

Social media & sharing icons powered by UltimatelySocial