New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2935 System tray icons overlap when changing status #2947
2935 System tray icons overlap when changing status #2947
Conversation
Odd. I commented on the openweather widget pr and the comment's here. As noted above, we shouldn't change the default Bar colour. |
Sorry. Merge two PR. |
Ok. Changing the background isn't a fix for the systray issue. We need to work out what's actually going on. |
Not because you can not paint because it is transparent, but because here (e3487ba) who was led from the internal window to the bar binding. |
That commit is for Wayland which should have no impact at all on Can you highlight a particular line that you think's the issue. |
xprop to the bar or
After:
|
The wayland is a rudimentary thing you may never mind. X has been in development for decades. |
That's why the sway was created from the i3. The two cannot be considered as one thing. |
I'm sorry, I just have no idea what you are trying to say. You've said there's an issue with e3487ba but that commit is Wayland only and should have no impact on SysTray which will only ever run on X11. As for the Yes, I know sway is different from i3, what is your point? We don't consider them as one thing, we do the complete opposite: they are separate backends which the user decides which one to use. |
The fact that it is not the bar that handles the window, but the X from here. |
Because X and Wayland do not treat windows the same way. |
They are not treated the same way. X11 internal windows: https://github.com/qtile/qtile/blob/master/libqtile/backend/x11/window.py#L1078 The two backends are split into separate folders and only one of these is used at a time: https://github.com/qtile/qtile/tree/master/libqtile/backend |
And the event mask? |
Are you missing events? |
From this commit, it all entrusts window operation to X11, not the bar. |
Are you missing events? |
My problem is that from here all the windows on the bar will get out. Which I don't think is right. |
I don't think visual_id should be changed to qtile, |
What do mean the windows "will get out"? What effect should the bar have on the windows? (which windows?) |
Fine. Then you're welcome to play around with it and see what works for you. If you get a fix that works then we'd be very happy to merge it. |
Why should the systemtray appear on root window? |
Why do you say they're on the root window? SysTray creates a new window. From my testing: if you set a bar with a 32 bit colour depth then the system tray icon windows have a transparent background and you can't set this to the bar background. The fix for this was, where the user wanted an opaque bar, to set the bar colour depth to 24 bit and tell the SysTray to advertise that visual_id so windows know what depth to use. Replacing the backpixmap on 24 bit windows does seem to work. |
Because he was taken out with this commit. Therefore, it is not inky to paint. Nert is not part of the bar. |
|
If "this commit" is that Wayland one, it has nothing to do with the issue here. It is a completely separate backend. |
Because it has to be part of the bar. |
It's not part of the bar. It's a separate window. That's the whole reason it's a problem and why other window managers also have issues. |
|
Maybe @tych0 understands. |
We're going round in circles. I need you to explain what issue you think that causes. You've said twice that the windows "get out" of the bar but you haven't yet explained what that means (at least, not in a way that I understand). Also, note that the SysTray window is not an The Bar is an |
After: QTILE_INTERNAL(CARDINAL) = 1 Before: WM_STATE(WM_STATE): |
You've shown me that twice and neither time have you explained what the problem is. The two properties are the same. The order doesn't matter. |
Which do you think is the bar and the internal window? |
Everything has gone wrong since then. |
All of that is the bar which is an qtile/libqtile/backend/x11/window.py Line 1093 in bd386ea
That's a good question but it depends what you mean by "works well". I believe the Systray worked before we merged the commit which introduced transparency for the Bar. With that commit, SysTray works with a fully transparent or fully opaque bar (at least it did in my testing). However, please note that I cannot replicate the overlapping icons issue so I can't verify the cause which is very frustrating.
What is "everything"? Show me something working before that commit and after it and I'll have something to try and work with. |
That the internal window should continue to be handled by the bar. |
And not the root window. |
The One other question for you: have you done a If you can't do that for me then, unfortunately, there's not much more I can do for you. I can't keep replying to this. |
If you do not have a systemtray widget, you still have an internal window. |
Commit:
|
I cannot say this enough times: the You can see that here: Lines 260 to 265 in 802b82e
As also mentioned above, the System Tray window is not an instance of |
|
Yes. The bar is created via qtile/libqtile/backend/x11/core.py Lines 547 to 555 in de39c97
The system tray window is not an internal window and its id is added to the map by the widget: qtile/libqtile/widget/systray.py Line 139 in 802b82e
I'm still not seeing why you think any of this is relevant to how the SysTray is rendered. Perhaps you overestimate what qtile/libqtile/core/manager.py Lines 582 to 602 in 3ac7442
Which bit of that do you think is relevant for the System Tray? NB, for |
It doesn't matter if it's the root child or the bar. |
Right. I'm stopping here. We're getting nowhere and I've taken too much time trying to get the information I need. I appreciate that you're trying to help fix an issue but you're just not giving me enough information. Maybe someone else in the team can understand what you're trying to say. Thank you for your effort and I'm sorry I can't help more at this point. |
It turned out to me here that the applet running on the systray doesn’t even belong to the bar.
|
Yes, there are multiple windows involved:
|
The systray applet is below the bar and not on the bar. |
Could you post a screenshot? |
Yes. |
Just so I'm understanding correctly - is the screenshot with your change, or without? What difference does the change make? |
This main .. |
What difference does the change make? The one from the PR |
Bar background set.