Closed qespr closed 1 month ago
Are you using any compositors (picom)?
No, honestly I didn't even know what compositor was until I looked it up now. But I can give it a try if it might help.
Nah, I just brought it up because the latest release of picom had a bug that sounded like what you described.
I'm not really sure what change in EXWM could have caused, this, to be honest.
Are you seeing any warnings/messages?
If you mean some warning/error buffer then no
What if you connect just one external monitor? To external monitors?
Well they're all external, it's a desktop, but weird things happen. With one screen only it works fine but there is a fat black line on the bottom.
When I use just 2 monitors with same resolution next to to each other, everything is fine, I can put them both on the left or right.
But if I put them above each other, one frame is gone and the monitor is just black:
And with HDMI-1
on top (frame with arandr is gone somewhere):
This still makes some kind of sense, but when I put them next to each other and cover one with the other a little, the one that's higher will cut off the lower one by the amount of overlap
When I put them all next to each other, the order is broken and some get cut off:
If I keep only 3 monitors, all with same resolution and next to each other it's also broken (result the same with any order of monitors)
What happens if you run the following snippet?
(dolist (frame (frame-list))
(when-let ((geo (frame-parameter frame 'exwm-geometry)))
(redisplay t)
(with-slots (width height) geo
(set-frame-size frame
(- width (frame-fringe-width frame))
(- height (tab-bar-height frame t)) t))))
I'm asking because I've seen some issues where Emacs will fail to properly make frames full-screen.
The most relevant changes in 0.31 were dd9c11125f5f917076ac2d6cec955f837c387891 and dad0668fc8162effe5eb66d821606ad80484484f.
So, what happens if you call exwm-randr-refresh
? I'm wondering if this is related to issues receiving randr events.
What happens if you run the following snippet?
Nothing
So, what happens if you call
exwm-randr-refresh
? I'm wondering if this is related to issues receiving randr events.
Yup, everything is fixed and seems to be working. I feel like I should have thought of that. It really seems that the issue will be receiving randr events. Thanks very much for help, I don't know what I'd do without EXWM.
In case anyone would need it, I put this my init:
(run-with-timer 5 nil #'exwm-randr-refresh)
Re-opening because this is definitely a bug.
Actually, could you test with https://github.com/emacs-exwm/exwm/commit/f00b5ca655a0471a10d21a3e75b1a442a8d28941? Just evaling the modified exwm-randr--on-Notify
function should be enough.
Works perfectly and when put into init, WM starts correctly right away
@minad how would you feel about a 0.32 release?
@Stebalien Great, so it turns out that this issue has already been fixed. Tagging a new release 0.32 sounds good. EXWM seems solid in its current form. I can do this later today.
Probably not a xelb problem since 0.30 depended on xelb 0.20 as well and things kinda worked.
I have 6 monitors, after updating to EXWM 0.31, frames start positioned with significant offset instead of abiding by command in
exwm-randr-screen-change-hook
. This used to sometimes happen in 0.28, and 0.30 but could be fixed by moving some monitor slightly inarandr
(some race condition?). This workaround no longer works in 0.31 and Emacs frames move in really weird directions, almost random it seems.I have them ordered as shown in the picture which works (almost) flawlessly in EXWM 0.28 and 0.30
The command (also generated by arandr) is:
xrandr --output DVI-D-0 --mode 1920x1080 --pos 1680x0 --rotate normal --output HDMI-0 --mode 1600x900 --pos 3600x180 --rotate normal --output HDMI-1 --primary --mode 1920x1080 --pos 1680x1080 --rotate normal --output DP-0 --off --output DP-1 --off --output DP-2 --mode 1366x768 --pos 314x312 --rotate normal --output DP-3 --off --output VGA-1-0 --mode 1920x1080 --pos 3600x1080 --rotate normal --output DVI-1-0 --mode 1680x1050 --pos 0x1080 --rotate normal
Sometimes EXWM 0.28 and 0.30 also started broken like this: But after moving some screen in arandr, it corrected itself: With 0.31 it is no longer the case, frames are positioned in very weird places:
Here is minimal config that works for all monitors in EXWM 0.30
I checked the docs and I don't think anything should be changed except for enabling the minor mode.
Emacs version: "29.3" EXWM: 0.31 Xelb: 0.20 Package installed from elpa Os: GNU/Linux Mint 21.2