GNOME Integration Notes/Issue Tracking

Weird, I’m seeing this gvfs-fuse dependency issue at the moment that is blocking me from adding GNOME.

Solving dependencies... Error!
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

Unsatisfied dependencies:
 gnome-connections : Depends: libfreerdp-client3-3 (>= 3.0.0) but it is not going to be installed
                     Depends: libfuse3-4 (>= 3.17.1~rc0) but it is not installable
 gvfs-fuse : Depends: libfuse3-4 (>= 3.17.1~rc0) but it is not installable
Error: Unable to correct problems, you have held broken packages.
Error: The following information from --solver 3.0 may provide additional context:
   Unable to satisfy dependencies. Reached two conflicting decisions:
   1. gnome-core:arm64 is selected for install because:
      1. gnome:arm64=1:48+2 is selected for install
      2. gnome:arm64 Depends gnome-core (= 1:48+2)
   2. gnome-core:arm64 Depends gvfs-fuse (>= 1.57)
      but none of the choices are installable:
      - gvfs-fuse:arm64 Depends libfuse3-4 (>= 3.17.1~rc0)
        but none of the choices are installable:
        - libfuse3-4:arm64 is available in version 3.17.2-1
          but none of the choices are installable:
          - libfuse3-4:arm64=3.17.2-1 is not selected for install

This does not happen with latest Debian unstable. I just tried instaling Gnome on a fresh system image created an hour ago. Maybe not all of your packages are upgraded? Or one of your installed extra packages interferes? Or you have non-Debian packages installed? If you’d like me to debug this, you can send me the output of the following command which will let me reproduce your setup:

dpkg-query --showformat '${binary:Package}=${Version}\n' --show

Make sure that this list does not contain any private information (maybe packages installed from a non-public repo for example).

We’ve mostly rolled out GNOME now and shipping a System Image with a GNOME option replacing Wayfire as one of the two defaults on the batch of classic RK3588 MNT Reforms that we’re shipping out to customers this week.

I’m really excited about offering everyone a comfy and easy-to-configure default desktop option for the Reform series. My thanks and appreciation go out to the GNOME team for all the hard work that was and is being put into this desktop environment and GTK4.

Here’s how it went, referencing the challenges of my original post at the top:

Switch to GDM

GNOME is by default tied to the display manager GDM3 on Debian. One can switch to another display manager by disabling and masking gdm.service with systemctl, but I wanted to ship the best integrated default. The main benefits of GDM are:

  • Auto populated user and session/desktop chooser
  • Provides screen lock functionality for GNOME (Super+L)
  • Built-in accessibility menu incl. Screen Reader support
  • We can toggle the default noisy loglevel back on because kernel output doesn’t scribble over the login manager (like it did under tuigreet). In the end this is better for debugging your system.

We’re also including the MNT Reform logo as the vendor logo in the default GDM config. It’s sourced from the non-free package reform-branding (because it’s CC-BY-NC).

Screen Rotation for MNT Pocket Reform

GDM (and GNOME) were rotated 90 degrees because the system didn’t know about Pocket’s rotated display. I found a clean solution to put this information in our custom multi-panel driver, so the orientation is correct by default now in GDM and desktop environments without any further config. We shipped this with kernel 6.14.

Battery/Suspend

I masked suspend and hibernate targets system wide on the new system image and disabled all auto suspend functionality using gschema overrides until we have stable suspend.

Styling and Dock

We’re shipping the new CC-BY-SA “MNT Reform Next Y2K” wallpaper and setting it up via gschema overrides as the default. We’re installing and enabling the Dash to Dock extension by default to offer a more familiar starting point for app launching for most users.

Keyboard Layout and Shortcuts

All the planned keyboard shortcuts and the support for EURkey have been integrated via gschema overrides.

A full list of the customizations and keyboard shortcuts is in the overrides file: schemas/20_reform.gschema.override · main · Reform / MNT Reform Tools · GitLab

Yet TODO

Compositor Performance

  • GLES2/GLES3/Vulkan are moving targets and I need to do a new round of tests and benchmarking. Collabora recently announced Vulkan 1.2 conformance for the panvk GPU drivers for the Mali GPU in RK3588 (and others).
  • The cursor needs to be moved to a hardware accelerated plane, probably by patching the VOP2 driver to advertise the correct flags to Mutter on its overlays.

Audio

  • ALSA UCM profiles for better headphone/speaker/mic switching for the sound chip in Pocket Reform and Reform Next are still a pending TODO.

About Window

  • The GNOME about window is still lacking information about the processor and the machine.

Default apps in the Dash/Dock

  • The default applications (favorites) currently offered in the Dock seem a bit meager and randomly selected. Of course, you can change them, but the defaults can use a bit more curation from our side.
6 Likes