phillbush/shod

v2.6.0 is broken on my system.

Closed this issue · 8 comments

After upgrading to v2.6.0, the cursor is invisible, and the only thing I can see is xmenu when I right click the root. Windows are either invisible or don't open. I don't see any errors in the X11 log.

I'm running the proprierary Nvidia drivers, version 525.105.17.

That's weird. I cannot infer what can be going on.
The largest change on version 2.6.0 was replacing Xinerama with Xrandr for dealing with monitors, maybe it's related to that?

Can you do the following?

  • Open three terminals (on 2.5.0 or another window manager).
  • On the first, run Xephyr :1, that will open a "nested" X11 session.
  • On the second, run DISPLAY=:1 shod, that will open shod on the nested X11 session.
  • On the third, run DISPLAY=:1 xterm -geometry +100+100, this will open xterm on the nested X11 session.
  • Report the output on the terminals.

I think the error was related to a bug i have just spotted that was introduced when I ported shod to Xrandr.

2.6.0 was updating the dock at initialization when it gets monitor information. But if there are no dockapps, the dock is empty and zero-sized and an error would occur while trying to create zero-size drawable.

Can you clone the last commit and check whether it is working?

Sorry for the bug, I should have tested shod in other setups other than mine (no dockapps, for example) before bumping the version.

Sorry for the bug, I should have tested shod in other setups other than mine (no dockapps, for example) before bumping the version.

No need to be sorry.

Can you clone the last commit and check whether it is working?

The same problem is occurring.

The same problem is occurring.

Can you run the last commit of shod on Xephyr (on a nested X11 session) following the instructions of my first comment and then post the output here?

Oh, can you also post here your ~/.xinitrc script (or ~/.xsession, or any script you are using to initialize your X11 session)?

xrdb ~/.Xresources
pipewire &
wireplumber &
pipewire-pulse &
xclickroot ~/.shod.scripts/9menu.sh &
exec shod

Ok, I could finally reproduce the error.

The exec on the script makes shod inherit the programs in backgorund (in your case: pipewire, wireplumber, pipewire-pulse, and xclickroot).
waitpid(2) called with WNOHANG makes waitpid returns -1 when there's no child to be waited or 0 when there are children but they have not exited yet. I was only checking for -1.
It should be solved with this commit.

Can you test whether it is working now?

It's working now. Thanks.