BurntSushi / wingo

A fully-featured window manager written in Go.
Do What The F*ck You Want To Public License
1k stars 86 forks source link

Compositing #119

Closed ghost closed 6 years ago

ghost commented 9 years ago

Compositing simply does not work. There are big black boxes where the windows should be transparent. Some pictures are here: http://imgur.com/a/bUjvu

BurntSushi commented 9 years ago

I'm going to need a few more details than that... If I can't reproduce it then I have no hope of fixing it.

Could you please give enough details for someone else to reproduce it?

(I've used compositing since the beginning and it has worked fine.)

ghost commented 9 years ago

In i3, when a compositor is started, the black borders where the window was supposed to be transparent become transparent. Examples: Without compositing: screenshot from 2014-12-10 17 00 29 With compositing: screenshot from 2014-12-10 17 00 38 Without compositing: screenshot from 2014-12-10 17 02 19 With Compositing: screenshot from 2014-12-10 17 02 25 In wingo, this does not happen. They're never transparent, always black.

BurntSushi commented 9 years ago

Thank you for the screenshots. That helps, but you've left out some important information:

  1. Which compositor are you using?
  2. How are you running the compositor? What is its configuration?
ghost commented 9 years ago

I'm running xcompmgr or compton. The issue exists with both. I just put the command down without any extra parameters or anything. It also works if I put it in the hooks config.

ghost commented 9 years ago

I found the source of the compositing thingy. It's in xgb. You have to start the window with a color. This color is detected by the compositor as something that's supposed to be part of the window. This color is entered like this:

xproto.CreateWindow(X, screen.RootDepth, wid, screen.Root,
    0, 0, 500, 500, 0,
    xproto.WindowClassInputOutput, screen.RootVisual,
    xproto.CwBackPixel | xproto.CwEventMask,
    []uint32{
    0x00000000, //<--- This is what I'm talking about
    xproto.EventMaskStructureNotify |
    xproto.EventMaskKeyPress |
    xproto.EventMaskKeyRelease})

The solution would require modification of xgb, not wingo. You could also make a special version just for wingo.

anawolak commented 9 years ago

I wanted to try Wingo, but this is crucial issue for me also (breaks Cairo-Dock). Currently I moved onto openbox-multihead, but Wingo looks much more interesting. :) So hope it can be fixed soon.

BTW I hope you don't mind off-topic question: is it possible to force all windows to use 'slim' theme? Couldn't figure it out. Thanks.

BurntSushi commented 9 years ago

is it possible to force all windows to use 'slim' theme? Couldn't figure it out. Thanks.

Kinda sorta. Windows that aren't in tiling mode always have the Full theme. So you could just delete it and then copy the Borders or Slim theme to Full. e.g.,

[Full]
border_size := 1
a_border_color := 0x000000
i_border_color := 0x000000

[Borders]
border_size := 1
a_border_color := 0x000000
i_border_color := 0x000000

[Slim]
border_size := 1
a_border_color := 0x000000
i_border_color := 0x000000

And that should do the trick.

@dRaiser In the future, please open new issues for separate questions. Thanks.

Happy-Ferret commented 6 years ago

Any solution to the above problem? I'd appreciate being able to use rounded corners.

BurntSushi commented 6 years ago

Compositing has been working just fine for me with Wingo for the past several years. Therefore, I won't be looking into this bug. You're on your own.

Happy-Ferret commented 6 years ago

Would you, at the very least, know if/how I may exclude a window from being managed/decorated by wingo? I tried _NET_WM_STATE_DOCK but that wasn't enough in this particular instance.

BurntSushi commented 6 years ago

Wingo follows EWMH. I use dzen2, trayer and gkrellm successfully.

Happy-Ferret commented 6 years ago

I've seen that.

In the case of my particular application that's still not enough. XUL popups do not adhere to _NET_WM state hints.

I've already tried disabling frame borders but that didn't fix it either.

Shame the OP no longer seems to be on Github. He seemed to know what the issue is/how to fix it.

Happy-Ferret commented 6 years ago

The issue isn't necessarily related to compositing, btw.

Without a window manager and without a compositor, the window of my application is rendered with rounded corners. As soon as I launch wingo, the window changes to a square shape. The back-face of the window is now also completely square.

BurntSushi commented 6 years ago

Dunno. Sorry.

On Sat, Jul 28, 2018, 16:55 Happy-Ferret notifications@github.com wrote:

The issue isn't necessarily related to compositing, btw.

Without a window manager and without a compositor, the window of my application is rendered with rounded corners. As soon as I launch wingo, the window changes to a square shape. The back-face of the window is now also completely square.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/BurntSushi/wingo/issues/119#issuecomment-408634337, or mute the thread https://github.com/notifications/unsubscribe-auth/AAb34j0RHNgJ3AIfO1U_dBfZjf34nAzxks5uLM-_gaJpZM4DGdGN .