Skip to content

021 — Pigs don't cross to second monitor #19

Description

@archae0pteryx

Problem

Pigs don't appear on secondary monitors by default. Default settings enable only the primary display, so the spanning overlay covers only one screen and pigs bounce at its edge.

Confirmed behavior

  • Selecting a monitor in Tray → Displays moves pigs to that monitor ✓
  • Mechanics work correctly — one spanning window covers all enabled monitors
  • With only primary enabled, pigs reach the hard boundary and bounce instead of crossing

Root cause

DisplayConfig defaults to enabled_indices = {0} (primary only). Users must manually enable additional monitors in the tray submenu.

What to fix

Change the default to enable all connected monitors on first run. After first run, persist the user's selection to settings.yaml as today.

  • Find where DisplayConfig is initialized/defaulted in Rust
  • If enabled_indices is empty or not yet set in settings.yaml, populate it with all monitor indices from available_monitors()
  • Existing toggle behavior in the tray stays unchanged

Acceptance criteria

  • On first launch with 2 monitors, both are enabled by default and pigs roam across the full span
  • Toggling a monitor off in the tray still works and persists
  • Single-monitor setups unaffected
  • task check green

Metadata

Metadata

Assignees

No one assigned

    Labels

    iceboxDeferred — not a current priority; revisit later

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions