- Fix scaling apply flow to match xrandr: apply CRTCs first, then
shrink screen (instead of disable-all → resize → apply which broke
on appledrm)
- Fix ensure_screen_size to use root window geometry instead of
GetScreenInfo discrete sizes
- Fix confirm overlay: remove black backdrop, center dialog properly
with shared layout computation for render and hit-testing
- Refit window after display changes using actual root geometry and
X server sync, preventing zoom/cutoff artifacts
- Fix transform ordering: set pending transform before SetCrtcConfig
- Track mode_width/mode_height separately from effective dimensions
- Generate virtual resolution entries for single-mode drivers
RandR transforms don't work for HiDPI "make content larger" use case -
they're designed for expanding virtual screen space, not zooming.
- Add dpi.rs module using xrdb to set Xft.dpi
- Remove RandR transform scaling code from randr/manager.rs
- Integrate DPI scaling in app.rs apply_layout() and revert_to_pre_change()
- Update watchdog to reset DPI via xrdb instead of xrandr --scale
- Capture and restore current DPI scale during configuration changes
Note: DPI changes require apps to restart to take effect. This is a
fundamental X11 limitation (X11 has one global DPI).
- Don't apply profile positions when monitor set doesn't match current
- Add sanity check for clearly invalid positions (negative or >10000)
- Watchdog now always includes --scale NxN to reset transforms
- Fixes issue where stale multi-monitor profile caused wrong positions
- Add randr_set_crtc_transform call with scale matrix
- Scale > 1.0 makes content appear larger (lower effective resolution)
- Use bilinear filter for smooth scaling
- Reset to identity transform when scale is 1.0
- Include scale in watchdog xrandr revert commands
- Add watchdog module that spawns separate bash process to revert
- Watchdog survives main process crash by using xrandr commands
- Add file logging to ~/.cache/gardisplay/gardisplay.log
- Cancel watchdog when user confirms or manually reverts
- Add ensure_screen_size() to resize virtual screen before CRTC changes
- Calculate effective dimensions after rotation (90/270 swap width/height)
- Prepare screen for all monitors before applying any configurations
- Shrink screen to fit after applying configurations
- Add prepare_screen_for_configs() for revert operation as well
- Add refresh_randr_outputs() to dynamically update mode information
- Add debug logging for timeout and RandR operations