eww: [BUG] Exclusive not taking effect

Describe the bug

I have been trying to debug this for a couple of hours but at a bit of a loss. From what i can gather exclusive is meant to make the window take up space on the screen and not float above it. eww is setting the window as exclusive at least in the code(I break pointed on it) but the window manager is not respecting it. The bar i am creating is floating over windows. Here is my configuration for the bar (defwindow bar :monitor 0 :exclusive true :focusable false :stacking "fg" :geometry (geometry :x "0%" :y "0%" :width "20px" :height "100%" :anchor "left top") (river-bar)) I fully believe i could just be misunderstanding how to make this work in wayland but from reading the documentation this seems to be the correct way.

I have tried the bar out in both river and sway both have the same issue.

Reproducing the issue

set exclusive to true in defwindow

Expected behaviour

The tiling window manager respects the exclusive space and doesn’t allow it to overlap with windows.

Additional context

Image of window over lapping with bar: image Full configuration files used: eww.scss.txt eww.yuck.txt

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 26 (14 by maintainers)

Most upvoted comments

Seems unlikely, given that the code only ever references WindowType::Dock in exactly one place, which is x11 specific ^^ I assume you also changed something else there?

Alternatively, you might be running eww using xwayland or something, lol

That’s really weird indeed. The thing is, I’ve actually double-checked this, with changing just the one property. Additionally, I’ve checked that it is not running on xwayland. I’m using eww-wayland-git, and xwininfo doesn’t detect the window. Moreover, when I run it on an X11 Plasma session, it is detected by xwininfo and xlsclients (it is not on Plasma Wayland or Hyprland), but the bar appears in the center of the screen, presumably because I do not have any other X11 properties set:

(defwindow bar
  :monitor 0
  :exclusive true 
  :geometry (geometry 
    :height "1080px"
    :x "-4px" :y "0px"
    :width "52px"
    :anchor "left center"
  )
  :stacking "fg"
  :windowtype "dock"
(bar))

Maybe I should open a new issue for this, but I’m just playing around with eww for the first time, so there’s too large a change I’m just doing something weird.

Aright after using your example as a test. I played about with the configuration. It seems to be if you set the bar on the left or right anything other than center it will not reserve the space for the window. This seems like a bug.

Works as expected :geometry (geometry :height “20%” :width “20px” :anchor “left center”) :geometry (geometry :height “20%” :width “20px” :anchor “right center”)

Broken: :geometry (geometry :height “20%” :width “20px” :anchor “left top”) :geometry (geometry :height “20%” :width “20px” :anchor “left bottom”) :geometry (geometry :height “20%” :width “20px” :anchor “right top”) :geometry (geometry :height “20%” :width “20px” :anchor “right bottom”)

Can we get an error for this? i.e. for using :exclusive true without any of the valid anchors. Because while it seems to be the “expected” behavior of the protocol, it takes quite a while to figure out the solution.