fvwmorg/fvwm3

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

  1. I expected windows to be tiled within a visible area of the monitor.
  2. 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