|
From: Philip K. <kov...@co...> - 2006-11-22 04:01:28
|
Jeff Rush wrote:
> Hi, I've just discovered Conky and think it's great. I'm using it with
> Gentoo, under the Enlightenment 16 desktop.
>
> E16 supports composite rendering, to produce neat translucency effects. I've
> found that while Conky works fine with the E16 Composite feature turned -off-,
> it doesn't do so well with it turned on, for reasons described by the
> Enlightenment developers in the email below. I'm not an X developer so I
> can't say what the problem is myself.
>
> When it fails, it displays a crosshash background in the Conky window, instead
> of either black or the underlying root window background. It doesn't crash -
> it just doesn't show a proper background, implying it is getting the data from
> the wrong layer/window.
>
> Anyway, I thought the Conky developer group might find the information useful
> and perhaps we could work toward a translucency solution that works across all
> environments.
>
> -Jeff
>
>
> -------- Original Message --------
> Subject: Re: [e-users] Seeking Root Window Display Capability
> Date: Tue, 21 Nov 2006 22:32:41 +0100
> From: Kim Woelders <ki...@wo...>
> To: Jeff Rush <je...@ta...>
> CC: enl...@li...
> References: <456...@ta...>
>
> Jeff Rush wrote:
>
>> I'm using enlightenment 0.16.8.4 under Gentoo. I'd like to display certain
>> system status info in the root window underneath all other windows, and I'd
>> like for it to be transparent, such that the info graphic is mixed with the
>> background photo I use, using the composite engine.
>>
>>
> This is tricky stuff :)
>
>
>> I've installed one such package, named 'conky', that displays the info I want,
>> but not in the way I want. If I tell it to use the root window, it draws fine
>> but leaves the rest of the root window black instead of showing my background
>> photo. If I tell it to use a non-root window, it leaves my background photo
>> in-place but then its own background is black, not composited.
>>
>>
> When composite is enabled e16 uses a background overlay window
> ("Root-bg") on which the root (first desk) background is rendered. Conky
> seems to figure that out and by default draws on that (even when it is
> unmapped when composite is disabled :) ). This does not work well. The
> e16 composite manager doesn't particularly support clients drawing to
> the root windows. Not sure if it should or it is worth while looking into.
>
>
>> Conky has a setting for the compositing, which they call pseudo-transparency.
>> They explain it as they read the root window, perform the composite blend,
>> and put it back in the root window.
>>
>>
> As far as I can tell conky does pseudotrans (in own window) using
> "CopyFromParent" background, which means that the blend you mention not
> actually happens. It's more like copy background from root to window (by
> server) and draw on that (by client).
> I think this works (see Bradley Reed's comments in a parallel post) when
> composite is disabled. When composite is enabled it looks like things
> break, probably because CopyFromParent backgrounds break. I'm not sure
> whether this is behavior to be expected or a bug in the Xorg server.
>
>
>> To set my background photo, I'm using the e16 desktop menu, not any special
>> utility. The indication is that e16 0.16.8.4 is putting the background I
>> specify into a layer above the root window, not in the root window itself, and
>> it was suggested to use the tool 'Esetroot'. However using it has no effect
>> on anything I can tell. I've also been using xwininfo to try to discover what
>> is happening.
>>
>>
> To set a background you can either use the e16 internal background stuff
> (desktop menu/background dialog) or set the background to "None"
> (background dialog) and use e.g. Esetroot to set it.
> However, when composite is enabled, "external" backgrounds on the first
> desk will still be rendered on Root-bg.
>
>
>> Running just 'xwininfo' and clicking on my desktop background gives:
>>
>> xwininfo: Window id: 0x800037 "Root-bg"
>>
>> Absolute upper-left X: 0
>> Absolute upper-left Y: 0
>> Relative upper-left X: 0
>> Relative upper-left Y: 0
>> Width: 2960
>> Height: 1050
>> Depth: 24
>> Visual Class: TrueColor
>> Border width: 0
>> Class: InputOutput
>> Colormap: 0x20 (installed)
>> Bit Gravity State: ForgetGravity
>> Window Gravity State: NorthWestGravity
>> Backing Store State: NotUseful
>> Save Under State: no
>> Map State: IsViewable
>> Override Redirect State: no
>> Corners: +0+0 -0+0 -0-0 +0-0
>> -geometry 2960x1050+0+0
>>
>> And running 'xwininfo -tree' on the desktop background gives:
>>
>> xwininfo: Window id: 0x800037 "Root-bg"
>>
>> Root window id: 0x136 (the root window) "Desk-0"
>> Parent window id: 0x136 (the root window) "Desk-0"
>> 0 children.
>>
>> And running 'xwininfo -tree' on the Conky info display gives:
>>
>> xwininfo: Window id: 0x1400002 "kim - conky"
>>
>> Root window id: 0x136 (the root window) "Desk-0"
>> Parent window id: 0x800c95 (has no name)
>> 0 children.
>>
>> Conky does have the ability to specify the window ID on which it should
>> operate but (a) I haven't the right window ID appararently and (b) do window
>> IDs change between desktop restarts/reboots?
>>
>>
> There is no guarantee that the e16 window ID's are unchanged across
> restart, let alone reboot.
>
> The root and given window ID modes don't work properly with e16's
> composite manager. I doubt this is going to change.
>
> There are two windowed modes that can do the type of transparency
> effects you want and that definitely work with e16 with composite
> enabled, none of which AFAIK are supported by conky:
> 1) Normal pseudo-transparency not using CopyFromParent (but copy
> bg pixmap, etc.). Eterm and many other applications do this.
> 2) ARGB window, i.e. the application window has an alpha channel.
> E.g. gnome-terminal and urxvt can do this.
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Conky-development mailing list
> Con...@li...
> https://lists.sourceforge.net/lists/listinfo/conky-development
>
I know setting the root pixmap is a royal pain in the ass for
the e17 and other, e.g. KDE users.
When I get some extra time, I will incorporate the pixmap id
technique as an alternative, i.e. using _XROOTPMAP_ID or
ESETROOT_PMAP_ID. That way you would have either the
parent-relative or the pixmap id methods and that should be
enough to satisfy nearly everyone.
Phil
|