Monday, August 15, 2011

Conky with Debian Squeeze & Samsung R780

I wasn't aware of this nice little tool called "Conky" until I stumbled upon the Pinguy OS website and saw the screenshot of it's default desktop. To make Conky (and the sensor readings) work with Debian Squeeze on my Samsung R780 notebook there was some work to do. Once done, it'll look like this:




Let's start...

1. Install Nvidia driver


To make Conky look good it need's a working compositing manager.  So we have to install Nvidia's binary driver first. You may want to follow my instructions given in this post to do so. (Hint: if you are running the latest Debian kernel from backports, you have to skip the "# export CC=/usr/bin/gcc-4.3"-step!).

2. Get Compiz running


Once the Nvidia driver is running, Compiz needs to be installed and enabled. I will sum up the steps I found in this howto.
First, install Compiz (you might not need Compiz and skip this section if you're running KDE):

# apt-get install compiz compizconfig-settings-manager compiz-fusion-plugins-main compiz-gnome compiz-gtk fusion-icon

Next make a backup of your X configuration...

# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bk

...and add some lines to "/etc/X11/xorg.conf":

  • add to the end:
    Section "Extensions"
    Option "Composite" "enable"
    EndSection

  • to section "Device" add:
    Option "AllowGLXWithComposite" "true"
    Option "TripleBuffer" "true"
    Option "XAANoOffscreenPixmaps" "true"
    Option "RenderAccel" "true"

  • to section "Screen" add:
    Option "AddARGBGLXVisuals" "true"
    Option "AddARGBVisuals" "true"

Restart X or simply reboot. Once rebooted login and enable Compiz by starting "fusion-icon" either via command line or by Gnome menu ("Applications" -> "System Tools" -> "Compiz Fusion Icon"). You will notice the new icon in Gnome's notification area indicating that Compiz is running. Right click this icon and go to "Select Window Manager -> Compiz" and then "Select Window Decorator -> GTK Window Decorator". To re-enable the windows title bars start the "Settings Manager" by right clicking the Compiz icon again. This will open a new window giving you access to all Compiz settings. Navigate to "Effects" and check "Enable Window Decoration". Then go to "Window Management" and enable "Move Window" and "Resize Window". If the new settings do not take effect immediatly, just right click on the Compiz icon again and select "Relaod Window Manager". If everything works fine go to "System" -> "Preferences" -> "Startup Applications" in Gnome menu and add "/usr/bin/fusion-icon" to the list. Log out and in again and you should have Compiz running automatically. (Thanks to Falko Timme for his great howto at HowtoFrorge!!)

3. Make sensors work


To make Conky show all the nice sonsors information we need "hddtemp" and "lm-sensors" installed. To accomplish the first:

# apt-get install hddtemp

Say "yes" to start the hddtemp daemon at boot and keep all the dafaults.

The thing with "lm-sensors" is a little trickier as the version which comes with Squeeze does not work with the Samsung R780... So I downloaded the "lm-senors" sources from Debian Wheezy and built packages for Squeeze. You might try the binaries - I havn't tested that though. So I'm going to walk you through the package-building-thing. Get the sources from here (by the time of writing: version 3.3.0-4) and verify all prerequisites are installed:

  • build-essential
  • dpkg-dev
  • debhelper
  • fakeroot
  • bison
  • flex
  • bison
  • sed
  • lsb-base

Now move all three downloaded source packages (*.dsc, *.orig.tar.bz2, *.debian.tar.gz) to a temporary directory, extract them and build the new binary packages (don't need to be root!):

# mkdir /tmp/lm-sensors && cd /tmp/lm-sensors
# mv /path/to/lm-sensors_* .
# dpkg-source -x lm-sensors_<VERSION>.dsc
# cd  lm-sensors-<VERSION>
# dpkg-buildpackage -rfakeroot
# cd ..


...and install the new packages (as root - of course ;-) ):

# dpkg -i lm-sensors_-<VERSION>_<ARCH>.deb libsensors4_<VERSION>_<ARCH>.deb libsensors4-dev_<VERSION>_<ARCH>.deb fancontrol_3.3.0-3_all.deb

I installed all with the exception of the "sensord" package. If you run into any errors during the build or installation process, please install any additional dependencies (I listed all I know of above, but might be incomplete). Now we can configure sensors by running

# sensors-detect

as root (just press ENTER to accept the defaults but say "yes" to edit "/etc/modules" automatically. Done!

4. Finally: setup Conky


The configuration of Conky was taken from pinguy (thanks!!) and slightly modified by me to make it work with Debian Squeeze and Samsung R780.

First install Conky:

# apt-get install conky-all

Next we need some fonts. If the ".fonts" directory does not exist within your home directory, create it:

# [ -d ${HOME}/.fonts ] || mkdir ${HOME}/.fonts

Then download the conky-colors zip file from here (thanks to helmuthdu!!), extract it and copy all font files from "conky_colors/fonts/conkycolors" to "~/.fonts". Then download "my" configuration files from here ("draw_bg.lua" is from here and ".conkyrc" is a slightly modified version from the one also found here - again, thanks to pinguy!). Extract the files to your home directory:

# cd
# tar xvf /path/to/conky_squeeze_R780.tar


If you don't want the "draw_bg.lua" in your home directory, move it somewhere else and change line 64 of ".conkyrc" accordingly. Also, if you're running KDE instead of Gnome, comment/uncomment lines 17-28 of ".conkyrc" as desired (I found the KDE settings in Arch Linux' Wiki). Now try to start Conky by simply typing

# conky

If everything is fine, press Ctrl-C to terminate it. To start Conky at login, we need a little start script to work around a race condition between the loading of the window manager and Conky (Conky might stay in the foreground then). Create a file with the following content:

#!/bin/bash
# start conky with delay
sleep 10 && /usr/bin/conky &


i.e. call it "start_conky.sh" and put it in a folder called "bin" in your home directory. Then make it executable:

# chmod +x /path/to/start_conky.sh

This will delay the start of Conky by 10 seconds. Now add this file to "Startup Applications" ("Gnome menu" -> "System" -> "Startup Applications"). Log out and in again - enjoy Conky! :-)

No comments:

Post a Comment