icewm
icewm copied to clipboard
Conky no longer visible on SpaceFM-IceWM or zzzfm-IceWM desktops only with 3.0.x IceWM
The lead Developer at antiX asked me to post the issue here. The problem began occurring when the IceWM 3.0.0 update was installed.
The problem is that only if I am using the SpaceFM or zzzfm desktop and VeraCrypt is installed, if I click the desktop, the conky stays running but is no longer visible.
I tested from a fresh and updated antiX 19.4 64 bit full version and SpaceFM 1.06. It was also tested with antiX 21 and zzzfm.
I install VeraCrypt from website buster .deb veracrypt-1.25.9-Debian-10-amd64.deb
If I change desktop to Space-IceWM (on antiX 19.4), as soon as I left click the desktop area, the conky disappears. It is still running, just not visible.
If I change to any of the other desktops (IceWM, rox-icewm, or any Fluxbox, or any JWM) the conky becomes visible again.
Any suggestions? If any ideas to try/test, let me know, please.
antiX lead Dev's comment after test
ing was:
To add that this also happens on antiX-21 (bullseye-based) and antiX-19 (buster-based) regardless of whether veracrypt is installed. Downgrading IceWM to 2.9.9 'fixes' this issue.
To confirm anticapitalista comment above, on my test box I purged veracrypt and ran autoremove to remove the two wxWidgets related libraries brought in by veracrypt and problem still occurs with either zzz-icewm desktop or spacefm-icewm desktops only.
Could you explain to me in a more detailed way how to install VeraCrypt on antiX 19.4? Are there other applications using wxWidgets 3.x which I can install to reproduce this?
OK, what I did is: install spacefm, zzzfm, and the VeraCrypt installer. All on antiX 19.4 using the provided icewm 3.0.1. Everything runs, including conky. So all is fine... Not? See this:

For the problem to occur you need to be running the space-icewm desktop or zzz-icewm desktop.
Menu button >> Desktop >> Other Desktops >> space-icewm
Then, if you left click on the open area below the veracrypt window, to the left of the file manager, when you do, the conky crashes and disappears from the upper right. You can try any of the other desktops and the conky will work again.
If this doesn't happen for you, I can do a screen recording for you and post it to youtube.
Ah, OK, I see what you mean. After switching to space-icewm, if I left click on the open area below the veracrypt window, then conky disappears. But it doesn't crash, as you say! It is still running! You can observe this with: icesh -c Conky -v list. The -v only shows viewable windows. Conky is just below some space window. You only need to do: icesh -c Conky raise. The raise will lift conky above the space desktop. It is not a bug. Icewm dutifully obeys the requests it receives. Maybe it is some timing issue in your desktop software, but not in icewm. The windows which compete for running in the Desktop layer can be shown with icesh -L 0 list. Currently there is no way to enforce the stacking order of windows which are in the same layer.
Thanks for the feedback. IceWM 2.9.9 works 'fine' with SpaceFM/zzzFM desktop so something has changed in the 3 series to trigger this new behaviour. Any pointers?
If I compile 2.9.9 and do:
mv /usr/bin/icewm /usr/bin/icewm-3.0.1
cp src/icewm /usr/bin/icewm-2.9.9
cp /usr/bin/icewm-2.9.9 /usr/bin/icewm
icewm -r
then I get the exact same behavior in 2.9.9 as in 3.0.1, as I expected.
Thanks. Hmm. I just copied all src files from 2.9.9 to src in 3.0.1 and rebuilt the debs and it no longer shows this issue. Here are my rebuilt debs for antiX-19 if you want to see. These will be uploaded to the main repos asap.
https://download.tuxfamily.org/antix/Testing/
Now I see it too and I found the cause. Let me quote the EWMH spec:
Stacking order
To obtain good interoperability between different Desktop Environments,
the following layered stacking order is recommended, from the bottom:
1. windows of type _NET_WM_TYPE_DESKTOP
2. windows having state _NET_WM_STATE_BELOW
3. windows not belonging in any other layer
This Conky has both type = DESKTOP and state = BELOW.
In 2.9.9 BELOW dominated. In 3.0.0 DESKTOP dominates.
The first rule which matches is applied.
An easy solution would be to give Conky type NORMAL and keep state BELOW.
See the section on own_window_type in the conky manpage.
Another option is to keep type NORMAL, not set BELOW,
and in the icewm winoptions file set Conky.Conky.layer: 1.
In icewm layer 1 is between desktop (layer 0) and BELOW (layer 2).
Odd numbered layers are seldomly used. Hence ideal to control a single app.
Sorry for late reply. Those changes work. I chose winoptions file set Conky.Conky.layer: 1 and own_window_type normal in conkyrc Many thanks
Thanks for the help!