Skip to content
This repository has been archived by the owner on Nov 7, 2022. It is now read-only.

i3bar with 60% opacity can't handle opacity for tray icons #90

Closed
ghost opened this issue Jun 13, 2016 · 19 comments
Closed

i3bar with 60% opacity can't handle opacity for tray icons #90

ghost opened this issue Jun 13, 2016 · 19 comments

Comments

@ghost
Copy link

ghost commented Jun 13, 2016

I am using the i3gaps-nexzt branch.

The i3bar has opacity, specified by it's colors (e.g. background: #33333399, and bar -t)

But the tray icons aren't opaque, they just have black backgrounds. looks not so nice. any possibility to fix that?

@Airblader
Copy link
Owner

But the tray icons aren't opaque

This is described in the README.

any possibility to fix that?

i3/i3#2088

@ghost
Copy link
Author

ghost commented Jun 13, 2016

Sorry but I just read in the README that the tray icons's background is alwasys transparent, what is not the case for me.

@Airblader
Copy link
Owner

what is not the case for me.

Either way, there's nothing reasonable we can do about it in the XEMBED implementation; the way to go is app indicators, which have yet to be implemented in i3.

What compositor are you using?

@ghost
Copy link
Author

ghost commented Jun 13, 2016

Compton.

@Airblader
Copy link
Owner

Can you pastebin your compton config? I assume the transparency on the rest of the bar is working as expected? What kind of background do you have set?

Can you use xwininfo -children on i3bar to find the window id of one of the tray icons and pastebin the output of xwininfo -all -id <id>?

@ghost
Copy link
Author

ghost commented Jun 13, 2016

compton.conf: http://ix.io/Sm0
xwinfo of nm-applet: http://ix.io/Sm1

rest of the bar is with working opacity.

@Airblader
Copy link
Owner

Nothing unusual as far as I can see. As you can see from the same issue over at awesomeWM, some icons in some versions for some people just seem to render on black. I don't know why it's black for you and transparent for me, sorry. Could be a matter of video driver, could be a matter of specific versions of anything from X server to video driver to tray application to cairo.

@ghost
Copy link
Author

ghost commented Jun 14, 2016

So you can't help me to fix that?

@Airblader
Copy link
Owner

No, sorry. We know how we could fix this, but for the reasons explained in the README I am not going to make those changes. The XEMBED based system tray specification is a horrible legacy mistake that needs to die and all major desktop environments have already dropped support for it. The proper way is to implement the app indicator specification, but that has yet to be done. There's a reason why I explicitly state in the README that i3bar transparency is experimental and known to be partially broken – and this is that reason.

@ghost
Copy link
Author

ghost commented Jun 14, 2016

So when can I expect that the bar transparency will become stable working and not testing anymore?

@Airblader
Copy link
Owner

With XEMBED, never.

@ghost
Copy link
Author

ghost commented Jun 14, 2016

So can you please give me some more sentences about this topic?

@Airblader
Copy link
Owner

Sure. About what specifically?

@ghost
Copy link
Author

ghost commented Jun 14, 2016

i3bar transparency, tray, XEMBED. How does all belong together? And where is the problem for the transparent backgrounds of the tray icons?

@Airblader
Copy link
Owner

XEMBED is a specification that allows embedding X clients into other X clients. The system tray protocol specification uses XEMBED; here, the system tray basically works by the tray application creating a window and signaling to the tray host that this should be a tray window. The tray host then embedds the window into its own window.

This causes a bunch of headaches, including this. Just look at [1], where the KDE guys talked about this issue almost a decade ago already. You'll find many more links and discussions there as well to get in there as deep as you want. In other words, a lot of people who know all the ins and outs of X11 have looked at this and given up.

But the thing to take away from this is that the system tray specification is just useless and outdated. As I said, all major DEs have long ditched it and moved on to a better, newer specification. i3bar wants to go there as well, but somebody just needs to do the work.

It can, maybe work by using a complex mechanism involving the composite and render extension. But that is really a lot of work, introducing ridiculous new dependencies to i3. I'm neither willing to make this attempt (that may well fail), nor am I willing to merge it into i3-gaps due to maintainability concerns. Needless to say, it would never find its way into upstream i3 either.

[1] https://bugs.kde.org/show_bug.cgi?id=158094

@ghost
Copy link
Author

ghost commented Jun 14, 2016

oh this is sad. but wwhatever, it is possible to live with the black backgrounds. thanks

@Airblader
Copy link
Owner

You could look into using stalonetray instead of letting i3bar handle the tray. I've never used it, but I think it supports fake transparency, so it might be a bit better.

@Airblader
Copy link
Owner

Airblader commented Jun 14, 2016

Another suggestion would be to somehow incorporate a black part in your wallpaper that covers the tray area. It will probably still look a tiny bit off if you only use partial transparency on the rest of the bar, but at least it won't be so noticable.

@ghost
Copy link
Author

ghost commented Jun 14, 2016

hehe clever guy ;) But this is just hacking. It is okay, I just take the black backgrounds, no problem for me. Everything looks so perfect, then atleast something must have a "bug" else my friends would tell me: why do you tell us configuring takes a lot of time and work? it is all perfect :D

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant