ValveSoftware / SteamOS

SteamOS community tracker
1.51k stars 69 forks source link

Zenity: Use GTK3 version instead of GTK4 and LibAdwaita #1534

Open TiZ-HugLife opened 3 weeks ago

TiZ-HugLife commented 3 weeks ago

Your system information

Please describe your issue in as much detail as possible:

It looks like Zenity in SteamOS 3.6 is using LibAdwaita, which means that it does not use the Breeze GTK theme, and all of its proportions are super out of whack. There are a lot of scripts that hard-code a size for the Zenity dialog, such as the Decky installer, and because LibAdwaita's proportions are so huge, you pretty much can't actually read the dialog anymore. What's more, SteamOS 3.6 ships with a dark theme, and despite all the effort to plumb light/dark theme settings into various parts of the desktop interoperability stacks, LibAdwaita-based Zenity uses the light theme.

Zenity should be replaced with zenity-gtk3 in order to maintain script compatibility and desktop cohesion. Desktop-agnostic script dialogs are no place for GNOME to assert their dominance. I am not sure if it is possible to compile Zenity without LibAdwaita, but Breeze does have a good GTK4 theme, and that could be a potential alternative.

Steps for reproducing this issue:

  1. Download and run the Decky installer.
  2. See a bright-white LibAdwaita Zenity with huge padding that is nearly unusable due to the hard-coded dialog size.
RokeJulianLockhart commented 3 weeks ago

https://github.com/ValveSoftware/SteamOS/issues/1534#issue-2331953657

@TiZ-HugLife, could you attach a screenshot of the unthemed window?

TTimo commented 2 weeks ago

fwiw we're mostly trying to not use zenity for anything moving forward

ebassi commented 2 weeks ago

It looks like Zenity in SteamOS 3.6 is using LibAdwaita, which means that it does not use the Breeze GTK theme,

Yes, that is correct.

There are a lot of scripts that hard-code a size for the Zenity dialog, such as the Decky installer, and because LibAdwaita's proportions are so huge, you pretty much can't actually read the dialog anymore.

Regardless of theming, hard-coding sizes for windows is a pretty terrible idea, because all it takes is a font change, or a localisation change, and you'll get a broken output.

What's more, SteamOS 3.6 ships with a dark theme, and despite all the effort to plumb light/dark theme settings into various parts of the desktop interoperability stacks, LibAdwaita-based Zenity uses the light theme.

This should only happen in the game session, where there are no portals; the desktop session has the settings portal, and that comes with the color scheme key; make sure that either the xdg-desktop-portal-kde and/or the xdg-desktop-portal-gtk are installed. You'll still get the GNOME default theme instead of Breeze, but it will have both light and dark variants.

Zenity should be replaced with zenity-gtk3 in order to maintain script compatibility and desktop cohesion.

If the goal is to maximise use of the Breeze theme, then yes: building zenity from the zenity-3-44 branch is definitely the best option.

Desktop-agnostic script dialogs are no place for GNOME to assert their dominance

There's no "assertion of dominance" in play, here, so please: don't ascribe malicious intent to the GNOME project, which is not involved in what software is shipped on SteamOS.