0.56 regression: transform 1 rotates output but logical geometry remains landscape #15512
DescriptionAfter upgrading an Arch Linux system from Hyprland 0.55.4 / Aquamarine 0.12.1 to Hyprland 0.56.0 / Aquamarine 0.13.0, rotating the internal LVDS panel changes the monitor transform to 1 but leaves the compositor's logical surface geometry at 1366x768. The pixels rotate, but the desktop extends beyond the visible portrait display instead of becoming 768x1366. Touch coordinates rotate correctly. Full-screen screenshots also cannot capture the inaccessible portion. Downgrading to the July 19 Arch package snapshot restores correct rotation immediately, with the same configuration and rotation script. Hardware and software
ReproductionBase monitor configuration: monitor = LVDS-1, 1366x768@60, 0x0, 1Rotate with: hyprctl keyword monitor "LVDS-1,1366x768@60,0x0,1,transform,1"The transform-only form behaves identically: hyprctl keyword monitor "LVDS-1,transform,1"Observed result
This is compositor-wide and reproduces with Waybar restarted, Waybar absent from the rotation command, hardware cursors enabled or disabled, a full monitor rule, and a transform-only monitor rule. Expected resultWith transform 1, logical surfaces should be laid out within a 768x1366 portrait output, as they were with Hyprland 0.55.4. Regression verificationThe system was rolled back coherently using the Arch Linux Archive snapshot from 2026-07-19. After rebooting into Hyprland 0.55.4 / Aquamarine 0.12.1, the same monitor configuration and rotation command work correctly. |
Replies: 6 comments 6 replies
|
If you can easily repro, please bisect between v0.55.4 and v0.56.0 tags. |
|
So i have the same problem with the transform happening but the screen just extending out our of the physical screen. Leaving the bottom of the physical screen dark. after git bisect it should be commit 0aa7a84 that is the cause. edit: Done on Lua-config |
|
legacy configs are no longer supported. Please test on lua. |
|
I now realize that this might be a different problem than the original report, but I will include my repro case here for now. This is on a 2βinβ1 laptop, where runtime rotation is needed. SummaryWhen changing the monitorβs This happens both with:
On my Lua config, neither method works correctly. On the default Hyprland config, the first runtime transform works, but any further transform changes show the broken behavior described below. The monitor is correctly set by the config on startup:
On the default config, the Hyprland background renders correctly after a broken transform, but applications do not. Environment
Repro caseMonitor setups at startβHyprlandhl.monitor({
output = "eDP-1",
mode = "1280x720@60",
transform = 0,
})hl.monitor({
output = "eDP-1",
mode = "1280x720@60",
transform = 1,
})Case A β default config, transform = 0
Result:
Expected:
Case B β default config, transform = 1
Result:
Expected:
Case C β default config, transform = 1
Result:
Expected:
Case D β my config, transform = 1
Result:
Expected:
Case E β changing mode after transformThis case shows that changing only the transform causes the bug, but changing mode + transform forces a correct rebuild.
Result:
ConclusionRuntime monitor transform is inconsistent. |
|
maybe? seems 0aa7a84 changed this. |
|
Fix for this by gulafaran was merged with commit 566ff8f. @gutierrezje and others, please test and confirm this issue is resolved. |
Fix for this by gulafaran was merged with commit 566ff8f.
@gutierrezje and others, please test and confirm this issue is resolved.