Skip to content

Multi-Monitor Phase 3: Spanning wallpapers and edge effects #19

@dskvr

Description

@dskvr

Phase 3: Spanning wallpapers and edge-aware effects

Implement panoramic wallpapers spanning multiple monitors and seamless edge transitions.

Requirements

Spanning/Panoramic Wallpapers

  • Single image spanning across multiple monitors
  • Automatic image slicing based on monitor geometry
  • Proper aspect ratio handling
  • Support for different monitor resolutions
  • Bezel compensation options
  • Handle non-uniform monitor arrangements

Monitor Topology Detection

  • Detect monitor adjacency and arrangement
  • Build monitor connectivity graph
  • Calculate relative positions
  • Handle gaps and overlaps

Edge-Aware Effects

  • Seamless transitions at monitor boundaries
  • Edge blending for smooth visual continuity
  • Cursor-aware effects crossing monitors
  • Parallax continuity across boundaries

Advanced Features

  • Wave effects propagating across monitors
  • Smooth panning across monitor array
  • Adaptive image scaling for mixed resolutions
  • Smart cropping for aspect ratio mismatches

Configuration Example

# Spanning wallpaper
[spanning]
enabled = true
image = "/path/to/panoramic-wallpaper.png"
mode = "stretch" # or "tile", "fit", "fill"
bezel_compensation = 20  # pixels

# Edge effects
[effects.edge]
enabled = true
blend_width = 50
fade_at_boundaries = false
seamless_parallax = true

# Topology hints (optional)
[topology]
arrangement = "horizontal" # or "vertical", "grid", "custom"
primary_position = "center" # or "left", "right"

Implementation Notes

  • Calculate monitor topology from Wayland output positions
  • Implement efficient image slicing algorithm
  • Use shared textures where possible
  • Handle dynamic monitor arrangement changes

Use Cases

  • Ultra-wide panoramic desktop backgrounds
  • Multi-monitor gaming setups
  • Digital signage and video walls
  • Immersive workstation environments

Status: 📋 Planned

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions