Removal of headerbar patches and impact on Unity

I’m the current GNOME Tweaks maintainer so I’m definitely interested in merging a patch upstream to improve display on Unity. :+1:

2 Likes

Unity now installs gtk3-nocsd by default in 18.04 Alpha, but gtk3-nocsd can be uninstalled if someone prefers the headerbars.

Could you consider dropping the patches now?

I have a temporary PPA with patches dropped for several of the packages so that you can see the result.

We need to patch gtk3-nocsd as well to prevent it from loading the library when using GNOME session. This will allow users to switch between sessions without altering natural application behavior. These can be done in,

/etc/X11/Xsession.d/01gtk3-nocsd
/etc/X11/Xsession.d/51gtk3-nocsd-detect
/etc/X11/Xsession.d/70gtk3-nocsd-propagate-LD_PRELOAD

Edit: I checked those apps from your ppa. It worked well.

I don’t think that’s necessary. The library didn’t seem to change app appearance when I ran a default Ubuntu 18.04 session.

So I have approval to upload those apps with the patches removed now?

I am still testing. Please give me some time.

For me gtk3-nocsd is set for both Unity and Ubuntu (xorg) sessions.

ok

Oh, I didn’t realize that gtk3-nocsd doesn’t work with Wayland. I’m not sure that it’s a problem that it loads in the GNOME/Ubuntu on Xorg sessions since some people do prefer the gtk3-nocsd appearance.

It can be made to work in wayland too. It’s just doesn’t load the library for wayland session.

gtk3-nocsd won’t work well under GNOME Session. GNOME uses headerbar for dialog as well. And it does’t remove the title. For example, try CTRL+H in gedit. Also there seem to be some issue with gnome-disks

And we are talking about default options for gtk3-nocsd. Upstream disables it for GNOME. (for some reason it’s not working). But user can override this any time by settings GTK_CSD=0 in ~/.bashrc.

In, /etc/X11/Xsession.d/51gtk3-nocsd-detect I found out that it uses readlink /etc/alternatives/x-session-manager to detect if it’s gnome or not. But it’s not reliable way to detect because both ubuntu and unity use gnome-session. So may be we can patch that part.

Hi, I haven’t heard anything recently on this and I think we’d like to resolve this issue for Ubuntu 18.04 LTS.

One long-standing annoyance for some Unity users is there was never a supported way to get headerbars for those who wanted them. If we drop these patches, people that like headerbars can use the GNOME apps and people that like classic apps can use the MATE equivalents, and people that don’t worry about those details can get whatever apps y’all choose as default.

I went through the apps from my temporary PPA and looked up the app Ubuntu MATE ships in its place.

Affected apps with MATE equivalents

  1. eog → eom
  2. evince → atril
  3. file-roller → engrampa
  4. gedit →pluma
  5. gnome-calculator → mate-calc
  6. gnome-screenshot →mate-utils (provides /usr/bin/mate-screenshot)
  7. totem → vlc (This is the only one that isn’t a fork of the GNOME app)
2 Likes

I don’t think we should change the default apps in this cycle. Our primary goal is to provide the good old working unity desktop with most things intact. We are already recommending gtk3-nocsd for unity-session. The advantage of gtk3-nocsd is that it is customizable for users even at per-app level. I am planning to add that information on wiki so users can easily find it.

About mate equivalent apps, I agree with 1,2,3,4,5.

gnome-screenshot → There are issues alt+printscreen, worse with mate-screenshot.

totem → I prefer gnome-mpv. It has inbuilt settings whether to use headerbar or not.

The current issue with mate-apps are mate dependencies and mate prefixes. I already had conversation with @Wimpress about this. Mate team is removing prefixes and improving on dependencies issue. But I don’t think it will happen in this cycle.

When you say “I agree”, does that mean we can drop the headerbar patches for those 6 apps (excluding gnome-screenshot)?

Yes. You can drop headerbar patches (except gnome-screenshot).

Edit: But we still need to patch gtk3-nocsd first. It is affecting gnome-xorg-session.

1 Like

Oops, I had already uploaded the eog and evince changes before you edited. Could you please report a bug against the Debian gtk3-nocsd package?

Could you maybe have gtk3-nocsd check the environment variables? These are what I have on my system. (We’ll also want to do the same for Pop!_OS. I believe they are just ‘pop’ instead of ‘ubuntu’.)

XDG_SESSION_DESKTOP=ubuntu
XDG_CURRENT_DESKTOP=ubuntu:GNOME

Done: Bug #1745206 “Decorations/headerbars are broken: double bar in X...” : Bugs : gtk3-nocsd package : Ubuntu
Do you want me to file a bug on debian BTS as well?

I attached a patch (quilt) on the report which is working fine. I am taking advantage of XDG_CURRENT_DESKTOP in the patch but if we want it to be accepted on debian we need to make sure it works everywhere.

1 Like

Please forward to Debian since the package comes directly from Debian.

For reference, the current environment variables on Debian GNOME Testing are

XDG_SESSION_DESKTOP=gnome
XDG_CURRENT_DESKTOP=GNOME

Since you’ve identified a fix, can I continue uploading the 6 packages?

Yes. You can continue uploading.

1 Like

Sorry if that is bad news, but also the gtk developers removed the loadable modules for Gtk4. That means not more ways to directly support the Hud, the global menu or any other third-party idea as Gtk4 is not anymore friendly with third-party developers. The only way i see to fix that, is if the distros could make possible go back the ability to load the Gtk module, despite of the disastrous decision of the developers of Gtk of removed that feature.

https://gitlab.gnome.org/GNOME/gtk/issues/1132

Yes I saw that. Can you reach out on gtk-devel mailing list?

Their argument is user changing the internals. But user should decide that.

Which commit did that? If it is not large I may ask for ubuntu to restore it.

Sorry, I’ m not in the Gtk mail list, as i’m not a Gtk developer and also i don’ t agree with any of the new Gtk design goals. I also don’ t know where they removed this feature. What you can see is what i know.

Their argument is user changing the internals. But user should decide that.

Well, like say in that comment:
https://gitlab.gnome.org/GNOME/gtk/issues/1289#note_304520

this is discussion desktop vs application again

Gtk developers won’ t developer things to be adapted to the user workflow, they make think in all case to be adapted to the desktop workflow, but also this will occurs if the developer of the application want. For other usage is like this comment:

https://gitlab.gnome.org/GNOME/gtk/issues/1289#note_304498

It is about going behind the applications back and overriding the application designers choices.

They considered that practice incorrect and is the reason of why they remove the usage of the gtk-modules. So, then the only reason i see to have the gtk-modules, is exactly the reason of why they will remove that. So, i also don’ t have more arguments to say, that is why i surrender to try, but you can try if you have a different good argument.

I see this issue like a directly attack of the gtk developers to the shell developers and is not something more.

Good luck trying…