* feat(screenshot): add live preview panel for scroll capture
- Port scrolling live preview from dms-quick-capture backend to native screenshot.
- Calculate dynamic preview panel geometry placed beside the capture hole on the side with most available space.
- Render downscaled live stitched canvas with dark translucent background and white border in drawScrollOverlay.
- Include preview panel in Wayland input regions and allow completing capture by clicking the preview panel.
- Update cursor shape to pointer hand when hovering over preview or control buttons.
- Add unit tests for layout, hit testing, and canvas rendering.
* fix(screenshot): bound scroll preview aspect ratio to recent canvas tail
- Derive preview aspect ratio from a bounded tail window of the canvas (maxPreviewRows = frameW * maxHeight / minImageW).
- Prevent preview panel width from collapsing below minImageW and disappearing when stitched rows exceed ~4.5x width.
- Render the recent window rows in drawScrollPreview to maintain a stable panel size and display live incoming content.
- Add unit test for long scrolling capture preview bounds.
Add a refresh action to the Network detail header that calls
NetworkService.scanWifi(), mirroring the existing button in the Settings
WiFi tab. The button is hidden while WiFi is toggling or a scan is in
progress, and sits left of the connection-type tabs so the tab group
does not shift when switching between Ethernet, WiFi and Cellular.
* fix(bar): prevent focused app widget from blanking and live-sync popout on focus switch
* fix(bar): use per-output is_active flag for Niri workspace resolution
* fix(bar): gate Niri lastFocusedWindowId fallback on active popout visibility
* fix(powermenu): close on escape key and deduplicate action shortcuts
- Centralize Escape key handling in PowerMenuContent via closeRequested signal,
cancelling any active hold and enabling Esc to close both modal and popout variants.
- Remove redundant Keys.onEscapePressed wrapper in PowerMenuPopout.
- Extract handleActionShortcut and handleKeyRelease helpers to eliminate ~50 lines
of duplicated action shortcut dispatch between list and grid navigation.
* fix(powermenu): drop duplicate Keys.onEscapePressed handler
- Remove redundant Keys.onEscapePressed in PowerMenuContent, keeping Escape
handling unified under Keys.onPressed to preserve isAutoRepeat and
committedAction guards.
* feat(screenshot): support 4-corner resizing while holding Ctrl
- Hit-test selection corners when Ctrl is held to allow resizing.
- Set opposite corner as fixed anchor and update dynamic cursor shape
(NwseResize/NeswResize).
- Draw corner handle indicators when Ctrl is held or during active resize.
- Add 'Ctrl resize/move' to overlay HUD and provide complete glyph
coverage for HUD labels.
- Add comprehensive unit tests covering hit testing, inverted dragging,
incremental handle damage, and glyph coverage.
* fix(screenshot): invalidate background cache on handle and shift modifier changes
- Track backgroundHandles and backgroundShift in RenderSlot.cacheValid.
- Rebuild background slot and HUD when handle or shift modifier states
change with an existing selection, preventing incremental re-dimming
from punching holes in the HUD.
- Fix trailing newline in region_resize_test.go for golangci-lint.
* fix(screenshot): gate redraw and handle dimming on render modifier changes
- Only trigger redrawSurface when Shift or Ctrl modifier states actually
change, preventing redundant redraws when tapping Alt, Super, or Locks.
- Only re-dim and damage corner handle bounding boxes in overlayDelta and
overlayDamage when handles move or their visibility changes, preventing
unnecessary re-dimming of stationary handles over the HUD.
- Add TestOverlayDeltaIdenticalOverlayNoHandleDimming test.
* fix(screenshot): measure hud text advance accurately to prevent pill overflow
- Use (1+len(item.desc))*(charW+1) when calculating totalW in drawHUD,
matching the full 9px advance used when drawing space and description.
- Add TestHUDDimensionsContainText to verify HUD pill dimensions enclose
all text items with correct padding across all variant combinations.
* fix(screenshot): compare handle rect sets in overlay delta and damage
- Use slices.Equal to compare prev and cur handleRects in overlayDelta
and overlayDamage instead of interior equality.
- Properly re-dim and damage handles when selection corners cross monitor
boundaries where clamped interior is unchanged but top/bottom/left/right
flags change.
- Add TestOverlayDeltaHandlesClampedMonitorEdge test.
* test(screenshot): verify drawHUD output buffer pixels stay within pill bounds
- Extract hudDimensions helper on RegionSelector used by drawHUD.
- Update TestHUDDimensionsContainText to drive drawHUD directly into a
zeroed buffer and assert no lit pixel falls outside the computed
HUD pill boundary across all configuration variants.
* fix(dock): fix solid mask regression and geometry distortion when switching orientation in frame mode
* fix(dock): fix running app indicator misalignment on orientation change
* fix(dock): center multi-window running indicators around app icon
* fix(dock): fix vertical hit area collapse and transient background flicker on position change
- User icon dirs now sort ahead of system ones so overrides in
~/.icons and ~/.local/share/icons
- Desktop entry changes
refresh that index and drop cached misses instead of clearing
everything
Closes#2360Closes#3246
- New Entries captured from a mixed image+text offer keep the image as the primary mime i.e. bitmap
- Copy Text context-menu item on atlernates
Closes#2849
* feat(dock): sync background and icons in frame overview
- Keep FrameDockHost pre-instantiated in FrameWindow when dockOpenOnOverview is enabled to eliminate QML Loader instantiation lag on overview toggle.
- Add overviewReveal property to DockBody and snap slide spring positions instantly on overview enter.
- Enforce showDock check in DockBody reveal property so dock stays hidden outside overview when showDock is disabled.
* fix(dock): handle fullscreen in overview and disable hover
- Evaluate overviewReveal before hiddenForFullscreen so dock can open in overview over fullscreen windows.
- Return false when showDock is disabled to prevent hover reveals outside overview.