Skip to content

Allow selecting a preferred monitor per game without changing the Linux primary display #10188

Description

@ziabytes

Feature Request

I confirm:

  • that I haven't found another request for this feature.
  • that I have checked whether there are updates for my system available that
    contain this feature already.

Description

Add a supported Proton option for selecting the preferred physical monitor for a game, independently of the Linux desktop's primary monitor.

For example:

PROTON_PREFERRED_MONITOR=DP-4

or:

PROTON_PREFERRED_MONITOR=1

The selected monitor should be presented to the Windows application as the preferred/primary display for fullscreen and borderless-fullscreen placement, without changing the host desktop's primary monitor.

My current setup is:

  • Ubuntu 26.04 LTS
  • GNOME 50.1
  • Mutter / Wayland
  • AMD Ryzen AI 9 HX 370
  • AMD Radeon 890M
  • Steam Big Picture Mode
  • Proton / DirectX games
  • Laptop display: eDP-1
  • External display: DP-4

Current monitor topology:

Monitors: 2
 0: +*eDP-1 3384/280x2256/190+0+2880  eDP-1
 1: +DP-4 5120/600x2880/340+876+0  DP-4

The laptop display is intentionally my desktop primary monitor.

What I want is:

Host desktop:
eDP-1 = primary
DP-4  = secondary

Proton game:
DP-4 = preferred game display

Many Windows games, particularly DirectX games using fullscreen or borderless fullscreen, launch on the desktop primary monitor and either do not provide their own monitor selector or do not reliably respect window placement on another monitor.

Changing the Linux primary monitor is not an acceptable solution because that changes desktop behavior outside the game.

I have also tried monitor-selection approaches through Proton/Wine environment variables and Gamescope. These are either unreliable for this use case or introduce additional compatibility problems.

Ideally this would be a documented per-game/per-prefix Proton option which Steam users could place in Launch Options.

This would be useful for:

  • Gaming laptops connected to larger external displays
  • Laptops connected to TVs
  • Desktop systems with multiple monitors
  • Steam Big Picture setups
  • HTPC configurations
  • Games without their own monitor selector
  • Users who intentionally use different displays for desktop work and gaming

Justification [optional]

Wine ultimately provides the Windows display topology seen by the application, so some implementation may belong upstream in Wine.

However, Proton is where Steam users need a stable and supported way to configure this behavior on a per-game basis.

A Proton-facing environment variable or compatibility option could provide a consistent interface while using the appropriate Wine functionality internally.

This is especially useful because Steam already launches each Proton game with game-specific compatibility configuration, making monitor preference naturally suitable as a per-game option.

If this functionality needs to be implemented upstream in Wine, clarification on the appropriate Wine feature or configuration would also be useful.

Risks [optional]

Changing the monitor presented as primary to a Windows application could affect:

  • Fullscreen placement
  • Display enumeration order
  • Mouse confinement
  • Resolution selection
  • HDR / VRR behavior
  • Games which persist monitor IDs or coordinates in configuration files

For this reason, the behavior should ideally be opt-in and disabled by default.

The host desktop's primary-monitor configuration should remain unchanged.

References [optional]

Related issues:

These reports demonstrate related multi-monitor behavior, but this request is specifically for a documented and supported way to deliberately select a game's preferred monitor without changing the host system's primary display.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions