Use less generic name for monitors.xml to avoid clashing with other desktops

Bug #2028469 reported by David Hedlund
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mutter
New
Unknown
mutter (Ubuntu)
Opinion
Wishlist
Unassigned

Bug Description

* "$HOME/.config/monitors.xml" is not installed by default in Ubuntu during the installation at this writing, you have to generate it by running the GUI preferences `$ gnome-control-center display` for GNOME, and `$ mate-display-properties` for MATE.
* Both GNOME and MATE can be run on the same distro, which causes compatibility issues with monitors.xml: monitors.xml in Ubuntu 22.04, and 23.04 (GNOME) is starting with `<monitors version="2">`, while in Ubuntu MATE 22.04, and 23.04 it is starting with `<monitors version="1">`
* The monitors.xml file name for MATE is defined at https://github.com/mate-desktop/mate-desktop/blob/master/libmate-desktop/mate-rr-config.c#L44, and for GNOME it is defined at https://gitlab.gnome.org/GNOME/mutter/-/issues/2919#note_1799008.

#### Expected behaviour
cinnamon is using a dedicated name, cinnamon-monitors.xml. This doesn't cause the file to be overwritten by the display preferences if other desktop environment are used on the same distro. If MATE and GNOME followed the same approach, the file name would be mate-monitors.xml, and gnome-monitors.xml, respectively.

#### Actual behaviour
monitors.xml in Ubuntu 23.10, 23.04, and 22.04:

```
<monitors version="2">
  <configuration>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <scale>1</scale>
      <primary>yes</primary>
      <monitor>
        <monitorspec>
          <connector>Virtual-1</connector>
          <vendor>unknown</vendor>
          <product>unknown</product>
          <serial>unknown</serial>
        </monitorspec>
        <mode>
          <width>1600</width>
          <height>900</height>
          <rate>60.000</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>
</monitors>
```

monitors.xml in Ubuntu 22.04 (with ubuntu-mate-desktop installed), or 23.04 (with ubuntu-mate-desktop installed):

```
<monitors version="2">
  <configuration>
    <migrated/>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <primary>yes</primary>
      <monitor>
        <monitorspec>
          <connector>Virtual-1</connector>
          <vendor>???</vendor>
          <product>0x0000</product>
          <serial>0x00000000</serial>
        </monitorspec>
        <mode>
          <width>1600</width>
          <height>900</height>
          <rate>60.000</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>
  <configuration>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <scale>1</scale>
      <primary>yes</primary>
      <monitor>
        <monitorspec>
          <connector>Virtual-1</connector>
          <vendor>unknown</vendor>
          <product>unknown</product>
          <serial>unknown</serial>
        </monitorspec>
        <mode>
          <width>1280</width>
          <height>800</height>
          <rate>59.810</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>
</monitors>
```

monitors.xml in Ubuntu MATE 22.04, Ubuntu MATE 23.04, ubuntu-mate-desktop from Ubuntu 22.04, or ubuntu-mate-desktop from Ubuntu 23.04:
```
<monitors version="1">
  <configuration>
      <clone>no</clone>
      <output name="Virtual-1">
          <vendor>???</vendor>
          <product>0x0000</product>
          <serial>0x00000000</serial>
          <width>1600</width>
          <height>900</height>
          <rate>60</rate>
          <x>0</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>yes</primary>
      </output>
      <output name="Virtual-2">
      </output>
      <output name="Virtual-3">
      </output>
      <output name="Virtual-4">
      </output>
  </configuration>
</monitors>
```

#### Steps to reproduce the behaviour
Steps I used to reproduce the issue in Ubuntu 22.04 with ubuntu-mate-desktop installed:
* Log into GNOME
* Ubuntu comes with GNOME, so install MATE in addition: `sudo apt-get install mate-desktop-environment-extras mate-desktop-environment`
* Log out, and log in to MATE.
* Run `$ mate-display-properties`, just click on the "Apply" button (you don't have to click on the "Keep this configuration" button that pop-ups in the dialoge-box), it will generate "$HOME/.config/monitors.xml"
* Log out from MATE. From the display manager, log into GNOME.
* As you can see, the screen resolution (1600x900 configured in MATE) not used by GNOME (https://github.com/mate-desktop/mate-control-center/assets/6416073/1b978bd7-22dd-4b42-a5b5-d32ec2d42f21), instead a fallback resolution is used.
* Run `$ gnome-control-center display`, change the "Resolution" to 1600x900, click on the "Apply": This will 1) move "$HOME/.config/monitors.xml" (that was generated by MATE) to "$HOME/.config/monitors-v1-backup.xml" 2) generate a new "$HOME/.config/monitors.xml" 3) Change the screen resolution directly (https://github.com/mate-desktop/mate-control-center/assets/6416073/6a841086-6936-4a21-9d43-ca1a605a9806). Close the window.
* Log out from GNOME. From the display manager, log into MATE.
* As you can see, the screen resolution (1600x900 configured in GNOME) not used by MATE (https://github.com/mate-desktop/mate-control-center/assets/6416073/adffa08e-cf08-499d-8dc3-9e7800e4d7e9), instead a fallback resolution is used.

MATE does not generate a backup file of monitors.xml if you run the above steps and starting with MATE first.

# MATE general version
1.26.0

# Package version
1.26.0

# Linux Distribution
Ubuntu MATE 22.04, Ubuntu 22.04

## Links to bug reports
[Feature request] mate-display-properties: Please upgrade monitors.xml from <monitors version="1"> to <monitors version="2"> - https://bugs.launchpad.net/ubuntu/+bug/2028818
GNOME https://gitlab.gnome.org/GNOME/mutter/-/issues/2919
MATE https://github.com/mate-desktop/mate-control-center/issues/712

ProblemType: Bug
DistroRelease: Ubuntu 22.04
Package: gnome-control-center 1:41.7-0ubuntu0.22.04.6
ProcVersionSignature: Ubuntu 5.19.0-43.44~22.04.1-generic 5.19.17
Uname: Linux 5.19.0-43-generic x86_64
ApportVersion: 2.20.11-0ubuntu82.5
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Mon Jul 24 01:24:22 2023
InstallationDate: Installed on 2023-04-17 (97 days ago)
InstallationMedia: Ubuntu 22.04 LTS "Jammy Jellyfish" - Release amd64 (20220419)
SourcePackage: gnome-control-center
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
David Hedlund (g-public) wrote :
description: updated
David Hedlund (g-public)
summary: - monitors.xml is incompatible with MATE (and vice versa)
+ Use less generic name for monitors.xml to avoid clashing with other
+ desktops
David Hedlund (g-public)
description: updated
description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I've always thought the generic name is useful because it potentially allows multiple desktop environments to share a single layout... Assuming that didn't break any of them.

Regardless, this isn't the place to discuss such a change. The discussion should stay in https://gitlab.gnome.org/GNOME/mutter/-/issues/2919

affects: gnome-control-center (Ubuntu) → mutter (Ubuntu)
Changed in mutter (Ubuntu):
status: New → Opinion
Changed in mutter (Ubuntu):
importance: Undecided → Wishlist
Revision history for this message
David Hedlund (g-public) wrote :

> I've always thought the generic name is useful because it potentially allows multiple desktop environments to share a single layout... Assuming that didn't break any of them.

monitors.xml generated by GNOME is incompatible with monitors.xml generated by MATE (see file layouts in the top post), which is indicated in the title of this issue.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

As mentioned in the other bug, I think that's more a bug in MATE if it has become incompatible.

Changed in mutter:
status: Unknown → New
David Hedlund (g-public)
description: updated
David Hedlund (g-public)
description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

> GNOME's monitors.xml is starting with <monitors version="2">, and that
> MATE's monitors.xml is starting with <monitors version="1">

So really I think this makes most sense to request support for version 2 from MATE.

Revision history for this message
David Hedlund (g-public) wrote :

I just filed: [Feature request] mate-display-properties: Please upgrade monitors.xml from <monitors version="1"> to <monitors version="2"> - https://bugs.launchpad.net/ubuntu/+bug/2028818 -- I pointed out that there will certainly be times when GNOME and MATE will not be able to use the same version of monitors.xml in the future.

description: updated
description: updated
David Hedlund (g-public)
description: updated
David Hedlund (g-public)
description: updated
description: updated
description: updated
David Hedlund (g-public)
description: updated
David Hedlund (g-public)
description: updated
David Hedlund (g-public)
description: updated
David Hedlund (g-public)
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.