I posted earlier about getting Conky to be transparent in KDE. Unsetting and resetting the "Show icons on desktop" and "Allow programs in desktop window" options would allow Conky to look correct when transparent. Otherwise it would be a black box.
This is OK but it's a hassle to do this every time I restart KDE. Via various posts on the Gentoo forums I finally realized WHY this works (I think). Conky's pseudo-transparency works by reading the root window, and then compositing itself onto that. The root window is apparently not what normally shows in KDE when you're looking at your desktop background. KDE apparently draws another window on top of the root window and displays the desktop window there (including your background wallpaper and icons). Underneath that is the REAL root window, and it's entirely blank by default. Conky sees that real root window and composites itself on top, resulting in blackness.
When you tell KDE not to "Show icons on desktop", apparently KDE then defaults to setting the background of the REAL root window. So switching this option on and off results in the real root window's appearance matching KDE's "fake" root window.
Interestingly, in KDE if you do this:
- Set "Show icons on desktop" to true.
- Set a background.
- Set "Show icons on desktop" to false, then back to true.
- Change your background.
- Start a transparent Conky.
Conky will be properly transparent, but it will use the FIRST background you selected, not the second. This leads me to believe I'm right.
So the real way to get a nice transparent Conky in KDE is to set the background of the root window using a program like feh.
ppurka posted in this thread a great automated way to do this in KDE:
feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1`
If you're like me and use centered wallpaper, use --bg-center instead. Incidentally this is the relevant section of my Conky config file:
own_window yes
own_window_type desktop
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager