FvwmRearrange broken on multi-monitor layout
jnse opened this issue · 0 comments
jnse commented
Upfront Information
When using a 3 monitor configuration with following layout:
Screen 0: minimum 8 x 8, current 3840 x 1980, maximum 32767 x 32767
HDMI-0 connected primary 1920x1080+0+900 (normal left inverted right x axis y axis) 700mm x 400mm
DP-2 connected 1920x1080+1920+900 (normal left inverted right x axis y axis) 700mm x 400mm
DP-5 connected 1600x900+1117+0 (normal left inverted right x axis y axis) 443mm x 249mm
Invoking
`FvwmCommand FvwmRearrange -tile
Causes windows to go off-screen somewhere below the top monitor rather than being properly tiled.
Similar issues happen with the cascade option.
- Fvwm3 version (run:
fvwm3 --version
)
fvwm3 1.1.1 (dfc46dd) (latest main branch at the time of writing this issue)
- Linux distribution or BSD name/version
Gentoo GNU+Linux
- Platform (run:
uname -sp
)
Linux AMD Ryzen 9 3950X 16-Core Processor
Expected Behaviour
- I expected windows to be tiled within a visible area of the monitor.
- This may not be the actual behavior of FvwmRearrange -tile, but I was expecting (and hoping) to tile only the windows on the active screen/monitor (the one the mouse cursor is on) and not the all windows globally, and I expected them to be tiled ON that active monitor/screen.
Actual Behaviour
Chaos ensued. ;)
Windows vanished, ending up somewhere below the top-most monitor, yet somehow also not visible on either monitor below it. I could just barely see the top right corner of them in the bottom left corner of the top screen.
Enabling logging
Invoking FvwmRearrange is not logging anything additional to the debug log, but here's the randr debug bits.
[1718059140.075366] monitor_dump_state: Monitor Debug
[1718059140.075375] monitor_dump_state: number of outputs: 3
[1718059140.075382] monitor_dump_state: Number: 0
Name: DP-5
Disabled: false
Is Primary: no
Is Current: no
Is Previous: no
Output: 559
Coords: {x: 1117, y: 0, w: 1600, h: 900}
VirtScr: {
VxMax: 0, VyMax: 0, Vx: 0, Vy: 0
EdgeScrollX: 0, EdgeScrollY: 0
CurrentDesk: 0
CurrentPage: {x: 0, y: 0}
MyDisplayWidth: 3840, MyDisplayHeight: 1980
}
EWMH: {
BaseStrut Top: 0
BaseStrut Bottom: 0
BaseStrut Left: 0
BaseStrut Right: 0
}
Desktops: yes
Flags:global
[1718059140.075394] monitor_dump_state: Number: 1
Name: HDMI-0
Disabled: false
Is Primary: yes
Is Current: no
Is Previous: no
Output: 446
Coords: {x: 0, y: 900, w: 1920, h: 1080}
VirtScr: {
VxMax: 0, VyMax: 0, Vx: 0, Vy: 0
EdgeScrollX: 0, EdgeScrollY: 0
CurrentDesk: 0
CurrentPage: {x: 0, y: 0}
MyDisplayWidth: 3840, MyDisplayHeight: 1980
}
EWMH: {
BaseStrut Top: 0
BaseStrut Bottom: 0
BaseStrut Left: 0
BaseStrut Right: 0
}
Desktops: yes
Flags:global
[1718059140.075416] monitor_dump_state: Number: 2
Name: DP-2
Disabled: false
Is Primary: no
Is Current: yes
Is Previous: no
Output: 554
Coords: {x: 1920, y: 900, w: 1920, h: 1080}
VirtScr: {
VxMax: 0, VyMax: 0, Vx: 0, Vy: 0
EdgeScrollX: 0, EdgeScrollY: 0
CurrentDesk: 0
CurrentPage: {x: 0, y: 0}
MyDisplayWidth: 3840, MyDisplayHeight: 1980
}
EWMH: {
BaseStrut Top: 0
BaseStrut Bottom: 0
BaseStrut Left: 0
BaseStrut Right: 0
}
Desktops: yes
Flags:global
[1718059140.081925] ewmh_ComputeAndSetWorkArea: monitor 'HDMI-0': {l: 0, r: 120, t: 0, b: 0} {x: 0, y: 0, w: 1800, h: 1080}
[1718059140.081975] ewmh_ComputeAndSetWorkArea: monitor 'DP-2': {l: 0, r: 120, t: 0, b: 0} {x: 0, y: 0, w: 1800, h: 1080}
[1718059140.082016] ewmh_ComputeAndSetWorkArea: monitor 'DP-5': {l: 0, r: 120, t: 0, b: 0} {x: 0, y: 0, w: 1480, h: 900}
[1718059140.302562] parse_and_set_window_style: Bad style option: NoBorders
[1718059140.302620] parse_and_set_window_style: Bad style option: NoBorders
[1718059140.302663] parse_and_set_window_style: Bad style option: NoBorders
[1718059140.307615] HandleMapRequestKeepRaised: Window 0x440000a is new and is being recaptured and in an iconic state. Sending fake map/unmap
[1718059140.347200] ewmh_ComputeAndSetWorkArea: monitor 'DP-5': {l: 0, r: 120, t: 18, b: 0} {x: 0, y: 18, w: 1480, h: 882}
[1718059145.667876] monitor_dump_state: Monitor Debug
[1718059145.667897] monitor_dump_state: number of outputs: 3
[1718059145.667901] monitor_dump_state: Number: 2
Name: DP-2
Disabled: false
Is Primary: no
Is Current: yes
Is Previous: no
Output: 554
Coords: {x: 1920, y: 900, w: 1920, h: 1080}
VirtScr: {
VxMax: 3840, VyMax: 1980, Vx: 3840, Vy: 0
EdgeScrollX: 0, EdgeScrollY: 0
CurrentDesk: 0
CurrentPage: {x: 1, y: 0}
MyDisplayWidth: 3840, MyDisplayHeight: 1980
}
EWMH: {
BaseStrut Top: 0
BaseStrut Bottom: 0
BaseStrut Left: 0
BaseStrut Right: 120
}
Desktops: yes
Flags:per-monitor