Conky

From ArchWiki
Revision as of 19:42, 21 June 2012 by Gabx (Talk | contribs) (Custom colors)

Jump to: navigation, search

Conky is a system monitor software for the X Window System. It is available for GNU/Linux and FreeBSD. It is free software released under the terms of the GPL license. Conky is able to monitor many system variables including CPU, memory, swap, disk space, temperature, top, upload, download, system messages, and much more. It is extremely configurable, however, the configuration can be a little hard to understand. Conky is a fork of torsmo.

Installation and configuration

When editing your config file, you will see immediately the effect of any change as soon as you save it. So best is to test all kind of options, one by one, save the configuration file and see the change on your conky window.

  • Alternatively, you can use the default config at /etc/conky/conky.conf:
$ cp /etc/conky/conky.conf ~/.conkyrc

Best is to use a local ~/.conkyrc config. As many apps, conky will first try to look for a local .conkyrc file. If this one doesn't exit, then it will read the default one in /etc/conky.

In case you store your configuration locally, e.g. in your home directory, you will not be able to read any log files unless you do some changes. One of the nice features of conky is to pipe to your desktop some /var/log/ files to read all kinds of log messages. Most of these files can only be read by root, and you will thus need to sudo conky. Starting conky as root is not recommended, so you will need to make these following changes:

$cat /etc/group

Check the log group is listed. If not, create it:

$groupadd -g GID log

Replace GID by an unused number below 499.

$chown root:log /etc/log

You will change group of the /var/log folder to log instead of root.

$usermod -aG log username

You add username to the log group. Now username can read log files, and you will be able to redirect log messages with conky on your desktop.

  • If conky does not accept changes -- e.g. minimum_size -- you made to ~/.conkyrc make sure you cleared /etc/conky/conky.conf or commented out the relevant section

AUR packages

In addition to the basic conky package in the official repositories, there are various AUR packages available with extra compile options enabled.

Tips and tricks

Enable real transparency in KDE4 and XFCE4

Since version 1.8.0, Conky suppports real transparency. To enable it add this line to ~/.conkyrc:

own_window_transparent yes

The above option is not desired with the OWN_WINDOW_ARGB_VISUAL yes option. This replaces the feh method described below.

Autostart with xfce4

In .conkyrc file:

background yes

This variable will fork Conky to your background. If you want to make your window always visible on your desktop, sticky across all workspaces and not showing in your taskbar, add these arguments:

own_windows yes
own_windows_type override

The override option makes your window out of control of your window manager.

Add a ~/.config/autostart/conky.desktop:

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=conky
Comment=
Exec=conky -d
StartupNotify=false
Terminal=false
Hidden=false

Prevent flickering

Conky needs Double Buffer Extension (DBE) support from the X server to prevent flickering because it cannot update the window fast enough without it. It can be enabled in /etc/X11/xorg.conf with Load "dbe" line in Section "Module". The xorg.conf file has been replaced (1.8.x patch upwards) by /etc/X11/xorg.conf.d which contains the particular configuration files. DBE is loaded automatically.

To verify:

$ grep dbe /var/log/Xorg.0.log

Output (should be similar):

[  3286.101] (II) LoadModule: "dbe"
[  3286.101] (II) Loading /usr/lib/xorg/modules/extensions/libdbe.so
[  3286.111] (II) Module dbe: vendor="X.Org Foundation"

To enable double-buffer check to have in ~/.conkyrc:

# Place below the other options, not below TEXT or XY
double_buffer yes

Custom colors

Aside the classic preset colors (white, black, yellow...), you can set your own custom color using the RGB code. To determine the RGB code of a colore, use a color selector app. The basic gcolor2 package in the official repositories will give you this code. It is made of a series of letters and numbers. Add this line in your configuration file for a custom color:

color1     RGBnumber
color2     RGBnumber

Then, when editing the TEXT section, use custom color number previously defined.

Dual Screen

When using a dual screen configuration, you will need to play with two options to place your conky window. Let's say you are running a 1680X1050 pixels resolution, and you want the window on middle top of your left monitor, you will use this:

alignment top_left
gap_X 840

The alignment option is trivial, and gap_X option is the distance, in pixels, from the left border of your screen.


Do not minimize on Show Desktop (Compiz)

If the 'Show Desktop' button or key-binding minimizes Conky along with all other windows, start the Compiz configuration settings manager, go to "General Options" and uncheck the "Hide Skip Taskbar Windows" option.

Integrate with KDesktop

Conky with screenshot configuration generate problems with icons visualization. So there are some steps to follow.

  • Add these lines to ~/.conkyrc:
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
  • If this setting is on, comment it out or delete the line:
minimum_size
  • To automatically start Conky, create this symlink:
$ ln -s /usr/bin/conky ~/.kde/share/autostart/conkylink

For KDE4 users:

$ ln -s /usr/bin/conky ~/.kde4/Autostart/conkylink

For KDE3 users

$ nano -w ~/.kde/share/autostart/fehconky 
#!/bin/bash
feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1`

For KDE4 users

$ nano -w ~/.kde4/Autostart/fehconky
#!/bin/bash
feh --bg-scale "`grep 'wallpaper=' ~/.kde4/share/config/plasma-desktop-appletsrc | tail --lines=1 | sed 's/wallpaper=//'`"

use --bg-center if you use a centered wallpaper.

  • Make it executable
$ chmod +x ~/.kde/share/autostart/fehconky

KDE4

$ chmod +x ~/.kde4/Autostart/fehconky
  • Instead of using a script, you can add the corresponding line to the bottom of ~/.conkyrc

For KDE3

${exec feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1`}

For KDE4

${exec feh --bg-scale "`grep 'wallpaper=' ~/.kde4/share/config/plasma-desktop-appletsrc | tail --lines=1 | sed 's/wallpaper=//'`"}

Display package update information

  • Paconky - Displays package update information in a user-defined format. The output of this program can be included in Conky with the ${execpi} command.
  • Scrolling Notifications - Prints scrolling update notifications. From the author of Paconky.
  • Perl Script - Simpler and earlier script from the author of Paconky. Prints only the number of packages needing an update.
  • Python Script - Fairly configurable update notification program in Python.
  • Bash Script - Bash script for users that have enabled ShowSize.

Display weather forecast

See this thread.

Display RSS feeds

Conky has the ability to display RSS feeds natively without the need for an outside script to run and output into Conky. For example, to display the titles of the ten most recent Planet Arch updates and refresh the feed every minute, you would put this into your ~/.conkyrc:

${rss http://planet.archlinux.org/rss20.xml 1 item_titles 10 }

Display Distrowatch Arch Linux ranking

See this thread.

Display rTorrent stats

See this thread.

Display number of new emails (Gmail)

Create a file named gmail.py in a convenient location (this example uses ~/.scripts/) with the following Python code:

import os
 
#Enter your username and password below within double quotes
# eg. username="username" and password="password"
username="****"
password="****"
com="wget -q -O - https://"+username+":"+password+"@mail.google.com/mail/feed/atom --no-check-certificate"
temp=os.popen(com)
msg=temp.read()
index=msg.find("<fullcount>")
index2=msg.find("</fullcount>")
fc=int(msg[index+11:index2])
print(str(fc)+" new")

Some users report problems with wget. If this script returns a ValueError, try replacing the wget line with Python code:

com='curl -s -u "{}:{}" https://mail.google.com/mail/feed/atom'.format(username, password)

as suggested here. A similar change can be made if using a Google App mail account (below).

Add the following string to your ~/.conkyrc in order the check your Gmail account for new email every five minutes (300 seconds) and display:

${execpi 300 python ~/.scripts/gmail.py}

Other Methods

The same way, but with using grep and sed for filtering output of wget:

$ wget -q -O - https://mail.google.com/a/domain/feed/atom \
>                                --http-user=login@domain \
>                                --http-password=password \ 
>                                --no-check-certificate | \
> grep fullcount | sed 's/<[^0-9]*>//g'

instead of words login, domain, password you must type yours data.

Alternatively, you can use stunnel which is provided by the stunnel package.

The following configuration is taken from Conky's FAQ

Modify /etc/stunnel/stunnel.conf as follows, and then start the stunnel daemon:

# Service-level configuration for TLS server
[imap]
client = yes
accept  = 143
connect = imap.gmail.com:143
protocol = imap
sslVersion = TLSv1
# Service-level configuration for SSL server
[imaps]
client = yes
accept  = 993
connect = imap.gmail.com:993

The only thing left is our ~/.conkyrc:

imap localhost username * -i 120 -p 993
TEXT
Inbox: ${imap_unseen}/${imap_messages}

Here I used * as the password for Conky to ask for it at start, but you do not have to do it.

Google Apps

The above Python script did not work for me and my Google Apps account. I modified the script below to work with a Google App mail account Python code:

import os
 
#Enter your domain, username and password below within double quotes
# eg. domain="yourdomain.com", username="username" and password="password"
domain="yourdomain.com"
username="username"
password="password"
com="wget -q -O - https://mail.google.com/a/"+domain+"/feed/atom --http-user="+username+"@"+domain+" --http-password="+password+" --no-check-certificate"
temp=os.popen(com)
msg=temp.read()
index=msg.find("<fullcount>")
index2=msg.find("</fullcount>")
fc=int(msg[index+11:index2])
print(str(fc)+" new")

Display new emails (IMAP + SSL)

Conky has built in support for IMAP accounts but does not support SSL. This can be provided using this script from this forum post. This requires the Perl/CPAN Modules Mail::IMAPClient and IO::Socket::SSL which are in the perl-mail-imapclientAUR and perl-io-socket-ssl packages

Create a file named imap.pl in a location to be read by Conky. In this file, add (with the appropriate changes):

#!/usr/bin/perl

# gimap.pl by gxmsgx
# description: get the count of unread messages on imap

use strict;
use Mail::IMAPClient;
use IO::Socket::SSL;

my $username = 'example.username'; 
my $password = 'password123'; 

my $socket = IO::Socket::SSL->new(
  PeerAddr => 'imap.server',
  PeerPort => 993
 )
 or die "socket(): $@";

my $client = Mail::IMAPClient->new(
  Socket   => $socket,
  User     => $username,
  Password => $password,
 )
 or die "new(): $@";

if ($client->IsAuthenticated()) {
   my $msgct;

   $client->select("INBOX");
   $msgct = $client->unseen_count||'0';
   print "$msgct\n";
}

$client->logout();

Add to ~/.conkyrc:

${execpi 300 ~/.conky/imap.pl} 

or wherever you saved the file.

Alternatively, you can use stunnel as shown above: Conky#How to display the number of new emails (Gmail) in Conky

User-contributed configuration examples

Graysky

[Screen shot]

[Here] it is - modify to fit your system. Optimized for a quad core chip w/ several hdds (although one of them is not connected for this screenshot) and an nvidia graphics card. You can easily modify this to a dual or single core system with one or whatever number of hdds.

A sample rings script with nvidia support:

1 # -- Conky settings -- #
  2 background no
  3 update_interval 1
  4 
  5 cpu_avg_samples 2
  6 net_avg_samples 2
  7 
  8 override_utf8_locale yes
  9 
 10 double_buffer yes
 11 no_buffers yes
 12 
 13 text_buffer_size 2048
 14 imlib_cache_size 0
 15 
 16 # -- Window specifications -- #
 17 
 18 own_window yes
 19 own_window_type normal
 20 own_window_transparent yes
 21 own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
 22 
 23 border_inner_margin 0
 24 border_outer_margin 0
 25 
 26 minimum_size 320 800
 27 maximum_width 320
 28 
 29 alignment bottom_right
 30 gap_x 0
 31 gap_y 0
 32 
 33 # -- Graphics settings -- #
 34 draw_shades no
 35 draw_outline no
 36 draw_borders no
 37 draw_graph_borders yes
 38 
 39 # -- Text settings -- #
 40 use_xft yes
 41 xftfont MaiandraGD:size=24
 42 xftalpha 0.4
 43 
 44 uppercase no
 45 
 46 default_color 888888
 47 
 48 # -- Lua Load -- #
 49 lua_load ~/conky/lua/lua.lua
 50 lua_draw_hook_pre ring_stats
 51 
 52 TEXT
 53 ${alignr}${voffset 53}${goto 90}${font MaiandraGD:size=11}${time %A, %d %B %Y}
 54 
 55 
 56 ${voffset 5}${goto 164}${font MaiandraGD:size=16}${time %H:%M}
 57 
 58 
 59 
 60 ${voffset -40}${goto 100}${font MaiandraGD:size=9}Kernel:${offset 70}Uptime:
 61 ${goto 90}${font MaiandraGD:size=9}$kernel${offset 40}$uptime
 62 ${voffset 57}${goto 117}${font snap:size=8}${cpu cpu0}%
 63 ${goto 117}${cpu cpu1}%
 64 ${goto 117}CPU
 65 ${voffset 19}${goto 145}${memperc}%
 66 ${goto 145}$swapperc%
 67 ${goto 145}MEM
 68 ${voffset 25}${goto 170}${nvidia gpufreq}
 69 ${goto 170}${nvidia memfreq}
 70 ${goto 170}GPU
 71 ${voffset 27}${goto 198}${totaldown ppp0}
 72 ${goto 198}${totalup ppp0}
 73 ${goto 205}NET
 74 ${voffset 21}
 75 ${goto 222}${fs_used /home}
 76 ${goto 230}DISK
  • And the required lua.lua script:
1 --[[
  2 Ring Meters by londonali1010 (2009)
  3  
  4 This script draws percentage meters as rings. It is fully customisable; all options are described in the script.
  5  
  6 IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if s    tatement on line 145 uses a delay to make sure that this does not happen. It calculates the length of the delay by the number of updat    es since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if state    ment (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0    .5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise     the update_num will not be reset and you will get an error.
  7  
  8 To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
  9         lua_load ~/scripts/rings-v1.2.1.lua
 10         lua_draw_hook_pre ring_stats
 11  
 12 Changelog:
 13 + v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009)
 14 + v1.2 -- Added option for the ending angle of the rings (07.10.2009)
 15 + v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numer    ical value rather than a percentage (29.09.2009)
 16 + v1.0 -- Original release (28.09.2009)
 17 ]]
 18 
 19 settings_table = {
 20         {
 21                 -- Edit this table to customise your rings.
 22                 -- You can create more rings simply by adding more elements to settings_table.
 23                 -- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.
 24                 name='time',
 25                 -- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument    . If you would not use an argument in the Conky variable, use .
 26                 arg='%I.%M',
 27                 -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
 28                 max=12,
 29                 -- "bg_colour" is the colour of the base ring.
 30                 bg_colour=0x888888,
 31                 -- "bg_alpha" is the alpha value of the base ring.
 32                 bg_alpha=0.3,
 33                 -- "fg_colour" is the colour of the indicator part of the ring.
 34                 fg_colour=0x888888,
 35                 -- "fg_alpha" is the alpha value of the indicator part of the ring.
 36                 fg_alpha=0.5,
 37                 -- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky wi    ndow.
 38                 x=191, y=145,
 39                 -- "radius" is the radius of the ring.
 40                 radius=32,
 41                 -- "thickness" is the thickness of the ring, centred around the radius.
 42                 thickness=4,
 43                 -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or n    egative.
 44                 start_angle=0,
 45                 -- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negat    ive, but must be larger (e.g. more clockwise) than start_angle.
 46                 end_angle=360
 47         },
 48         {
 49                 name='time',
 50                 arg='%M.%S',
 51                 max=60,
 52                 bg_colour=0x888888,
 53                 bg_alpha=0.3,
 54                 fg_colour=0x888888,
 55                 fg_alpha=0.5,
 56                 x=191, y=145,
 57                 radius=37,
 58                 thickness=4,
 59                 start_angle=0,
 60                 end_angle=360
 61         },
 62         {
 63                 name='time',
 64                 arg='%S',
 65                 max=60,
 66                 bg_colour=0x888888,
 67                 bg_alpha=0.3,
 68                 fg_colour=0x888888,
 69                 fg_alpha=0.5,
 70                 x=191, y=145,
 71                 radius=42,
 72                 thickness=4,
 73                 start_angle=0,
 74                 end_angle=360
 75         },
 76         {
 77                 name='cpu',
 78                 arg='cpu0',
 79                 max=100,
 80                 bg_colour=0x888888,
 81                 bg_alpha=0.3,
 82                 fg_colour=0x888888,
 83                 fg_alpha=0.5,
 84                 x=140, y=300,
 85                 radius=26,
 86                 thickness=5,
 87                 start_angle=-90,
 88                 end_angle=180
 89         },
 90         {
 91                 name='cpu',
 92                 arg='cpu1',
 93                 max=100,
 94                 bg_colour=0x888888,
 95                 bg_alpha=0.3,
 96                 fg_colour=0x888888,
 97                 fg_alpha=0.5,
 98                 x=140, y=300,
 99                 radius=20,
100                 thickness=5,
101                 start_angle=-90,
102                 end_angle=180
103         },
104         {
105                 name='memperc',
106                 arg=,
107                 max=100,
108                 bg_colour=0x888888,
109                 bg_alpha=0.3,
110                 fg_colour=0x888888,
111                 fg_alpha=0.5,
112                 x=170, y=350,
113                 radius=26,
114                 thickness=5,
115                 start_angle=-90,
116                 end_angle=180
117         },
118         {
119                 name='swapperc',
120                 arg=,
121                 max=100,
122                 bg_colour=0x888888,
123                 bg_alpha=0.3,
124                 fg_colour=0x888888,
125                 fg_alpha=0.5,
126                 x=170, y=350,
127                 radius=20,
128                 thickness=5,
129                 start_angle=-90,
130                 end_angle=180
131         },
132         {
133                 name='time',
134                 arg='%d',
135                 max=31,
136                 bg_colour=0x888888,
137                 bg_alpha=0.3,
138                 fg_colour=0x888888,
139                 fg_alpha=0.5,
140                 x=191, y=145,
141                 radius=50,
142                 thickness=5,
143                 start_angle=-140,
144                 end_angle=-30
145         },
146         {
147                 name='time',
148                 arg='%m',
149                 max=12,
150                 bg_colour=0x888888,
151                 bg_alpha=0.3,
152                 fg_colour=0x888888,
153                 fg_alpha=0.5,
154                 x=191, y=145,
155                 radius=50,
156                 thickness=5,
157                 start_angle=30,
158                 end_angle=140
159         },
160 --      {
161 --              name='fs_used_perc',
162 --              arg='/',
163 --              max=100,
164 --              bg_colour=0x888888,
165 --              bg_alpha=0.3,
166 --              fg_colour=0x888888,
167 --              fg_alpha=0.5,
168 --              x=260, y=503,
169 --              radius=26,
170 --              thickness=5,
171 --              start_angle=-90,
172 --              end_angle=180
173 --      },
174         {
175                 name='fs_used_perc',
176                 arg='/home',
177                 max=100,
178                 bg_colour=0x888888,
179                 bg_alpha=0.3,
180                 fg_colour=0x888888,
181                 fg_alpha=0.5,
182                 x=260, y=503,
183                 radius=20,
184                 thickness=5,
185                 start_angle=-90,
186                 end_angle=180
187         },
188         {
189                 name='totalup',
190                 arg='ppp0',
191                 max=2,
192                 bg_colour=0x888888,
193                 bg_alpha=0.3,
194                 fg_colour=0x888888,
195                 fg_alpha=0.5,
196                 x=230, y=452,
197                 radius=20,
198                 thickness=5,
199                 start_angle=-90,
200                 end_angle=180
201         },
202         {
203                 name='totaldown',
204                 arg='ppp0',
205                 max=2,
206                 bg_colour=0x888888,
207                 bg_alpha=0.3,
208                 fg_colour=0x888888,
209                 fg_alpha=0.5,
210                 x=230, y=452,
211                 radius=26,
212                 thickness=5,
213                 start_angle=-90,
214                 end_angle=180
215         },
216         {
217                 name='nvidia',
218                 arg='gpufreq',
219                 max=475,
220                 bg_colour=0x888888,
221                 bg_alpha=0.3,
222                 fg_colour=0x888888,
223                 fg_alpha=0.5,
224                 x=200, y=401,
225                 radius=26,
226                 thickness=5,
227                 start_angle=-90,
228                 end_angle=180
229         },
230 {
231                 name='nvidia',
232                 arg='memfreq',
233                 max=700,
234                 bg_colour=0x888888,
235                 bg_alpha=0.3,
236                 fg_colour=0x888888,
237                 fg_alpha=0.5,
238                 x=200, y=401,
239                 radius=20,
240                 thickness=5,
241                 start_angle=-90,
242                 end_angle=180
243         },
244 }
245 
246 require 'cairo'
247 
248 function rgb_to_r_g_b(colour,alpha)
249         return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
250 end
251 
252 function draw_ring(cr,t,pt)
253         local w,h=conky_window.width,conky_window.height
254 
255         local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
256         local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
257 
258         local angle_0=sa*(2*math.pi/360)-math.pi/2
259         local angle_f=ea*(2*math.pi/360)-math.pi/2
260         local t_arc=t*(angle_f-angle_0)
261 
262         -- Draw background ring
263 
264         cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
265         cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
266         cairo_set_line_width(cr,ring_w)
267         cairo_stroke(cr)
268 
269         -- Draw indicator ring
270 
271         cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
272         cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
273         cairo_stroke(cr)
274 end
275 
276 function conky_ring_stats()
277         local function setup_rings(cr,pt)
278                 local str=
279                 local value=0
280 
281                 str=string.format('${%s %s}',pt['name'],pt['arg'])
282                 str=conky_parse(str)
283 
284                 value=tonumber(str)
285                 if value == nil then value = 0 end
286                 pct=value/pt['max']
287 
288                 draw_ring(cr,pct,p<nowiki>Insert non-formatted text hereBold text</nowiki>t)
289         end
290 
291         if conky_window==nil then return end
292         local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_w    indow.height)
293 
294         local cr=cairo_create(cs)
295 
296         local updates=conky_parse('${updates}')
297         update_num=tonumber(updates)
298 
299         if update_num>5 then
300                 for i in pairs(settings_table) do
301                         setup_rings(cr,settings_table[i])
302                 end
303         end
304 end
~

A note about symbolic fonts

Many of the more decorated .conkyrc's use the fonts PizzaDude Bullets and Pie Charts for Maps. They are available from the AUR as 'ttf-pizzadude-bullets' and 'ttf-piechartsformaps' respectively, or they can be found and downloaded with a quick search and manually installed using the instructions in Fonts.

Universal method to enable true transparency

Transparency is a strange beast in Conky, but there is a way to universally apply true transparency with any environment or window manager by using xcompmgr and transset-df. Install xcompmgr from [extra] and transset-df from [community] with pacman -S xcompmgr transset-df. These packages both have the same 3 dependencies, so this is the lightest method for composition available, for those of you using standalone window managers in order to achieve the leanest setup you can manage (or whatever reason you have :D)

NOTE: This may conflict with any other compositing manager you are already using.

Check xcompmgr documentation to help you decide which compositing options you would like to enable. The following is a common standard command.

xcompmgr -c -t-5 -l-5 -r4.2 -o.55 &

Make sure conky is running with conky &. Use transset-df to enable transparency on the Conky window. Set '.5' to any value in the range 0 - 1.

transset-df .5 -n Conky

This should give your conky window true transparency. If you get an error like,

$ transset-df .5 -n Conky
No Window matching Conky exists!

Verify that conky is running, and use xprop and click on the conky window to find the name you should pass to transset-df.

$ xprop | grep WM_NAME
WM_NAME(STRING) = "Conky (ArchitectLinux)"

In this case, "Conky" is right, but for you it may be different, so be sure to use your output instead. If ~/.conkyrc has own_window_type panel then this xprop invocation may show now output. Try using any of the following options instead. own_window_type {dock,normal,override,desktop}

Use this in ~/.xinitrc to have transparent conky run when you startx.

xcompmgr -c -t-5 -l-5 -r4.2 -o.55 &
conky -d; sleep 1 && transset-df .5 -n Conky

External links