GTK3 regressions from a GTK2 perspective

This is just a mini list of "regressions" to track GTK2 behaviours that are still missing/broken in GTK3.

Most notably, these are differences since the last GTK2 release of Ubuntu MATE - which was 16.04.


:yellow_circle: Themes: Cannot change colour

GTK3's theming engine had completely changed and no longer supports this option.

You can technically modify any theme by changing its colour values in a text editor.

:star: If you use the Ambiant-MATE family or Yaru-MATE of themes, ubuntu-mate-colours provides other colours and a mechanism to generate a custom colours if desired.

Upstream bug report requesting functionality

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


:yellow_circle: Treeviews: No alternate rows colours

GTK2 vs GTK3
gtk2 gtk3

:star: gtk3-classic patches this! Requires an additional step.

Upstream bug report

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


:x: Middle click dragging in Caja

A content menu is supposed to appear, but it currently performs the primary action (left click)

Bug reports

MATE: https://github.com/mate-desktop/caja/issues/753

Upstream: https://gitlab.gnome.org/GNOME/gtk/issues/1512


:yellow_circle: Scrolling over tabs

It use to be possible to scroll over tabs to change them. The feature was removed from GtkNotebook in GTK3, and as a result, every program will need to implement the same feature again.

MATE Issues (mostly fixed)
Upstream bug report

Upstream bug report:

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

:star: gtk3-classic patches this (for GtkNotebook controls)


:bulb: Overlay/momentium scroll bar behaviour

Not a regression as such, but the default behaviour is debatable.

:star: gtk3-classic patches this by changing the defaults.


:bulb: Traditional dialogs for logging out / shutting down in MATE

See mate-session-manager#261, it wasn't accepted upstream, but you could patch your copy of mate-session-manager locally and use this diff.

8 Likes

To be honest, I am getting fed up of the way all major Linux desktops are going in terms of bloat and fat menus, window headers etc. From what i can see, GTK3 is behind much of it. But, I can't be sure because I lack the technical knowledge. I should stress, this is a personal issue and I am sure many people will find the latest desktops to be just fine for them and I have no problem with that.

My next install is going to be Openbox, pcmanfm desktop manager, Lxpanel and a modified Openbox menu pinned to that panel cos it has a nice menu editor called "obmenu", unlike Lxpanel's menu, which is a right bugger to edit. My main reason for using LXpanel is the easy capacity to have things like the clock and other indicators as well as buttons for windows.

It's basic and simple and works. It also has the advantage of being super fast and lightweight and I really do mean lightweight. The setup described above comes in at under 200mb on the Ram. I've been experimenting with the above in a VM for a few months now and it works great for me.

I realize the above setup is pretty esoteric and will certainly not be to the taste of most users and that's fair enough. That being the case, I would always recommend Mate as the desktop of choice for those wanting one off the shelf.

3 Likes

My collection:

  1. I'll be very disappointed if we miss traditional retrospective GTK2 themes - see this thread for details - Problems with GTK2 themes (such as human-theme) on Ubuntu 18.04 LTS MATE + poll .

    There is a working solution on AskUbuntu about Human and Human Clearlooks themes, but not for other themes.

  2. Problems with scrolling of applications menu and drop down menu in workspace switcher. FIxed in GTK3 sources, but currently not in eoan repository.

  3. Caja does not show previews of text files on Bionic and newer versions.

4 Likes

I also miss this style of the dialogue box when logging out or shutting down MATE :frowning_face:

image

  • GTK3 no longer supports text inside the progress bar (it's now shown next to the bar in smaller text)
  • We've lost the icon and left text alignment.
  • Buttons were traditionally aligned to the right (now spaced out)
1 Like

Why did GNOME team have to do any of this? Who there thought any of the above was a good idea?

I really dislike the direction GTK3 headed. Lots of things for GTK2 became broken in GTK3 and people have to basically start over with theming for it. These have been sad years.

3 Likes

¯\_(ツ)_/¯ - Although this topic isn't here to bash GNOME or GTK for their recent years, but rather collect what we liked from the past decade and wish to perverse for the retrospective future. Ideally by 20.04 LTS.

There's something about GNOME 2 (+ GTK2) that makes computing a breeze and out of the way.

Some things (like the log out dialogue box) could be a result of MATE's dialog code... some things affect GTK in general, or it could be awaiting customisation via the theme, which I've been tinkering with lately.

Honestly, 18.04 has been nothing but regressions over 16.04 from my perspective. The way things are going you're going to have to pry 16.04 from my cold dead hands as it appears to be the last Ubuntu Mate release not infected with GTK3 and the limitations that come with it.

I understand it's not entirely the fault of the hard working Devs, but it's disappointing nonetheless.

4 Likes

I'm glad that @lah7 who is a dev and seems to be a level-headed person brings this up. Maybe the end of support for UM 16.04 is getting closer and closer? :wink: (or maybe it was just three years so it's already EOL).

I think it's fair to say I left MATE for Xfce because of GTK3. Now that Xfce has been ported to GTK3 I took a look at it in Xubuntu 19.04. I felt the same as when MATE became GTK3. Why would I want to use this?

Xfce will still be GTK2 in the upcoming Debian Buster. That's my mental escape route. Because I can't see why I would want to use Xfce GTK3 instead of Xfce GTK2.

One crazy aspect was the built-in color-chooser which had the useless stock GTK3 design. This has been fixed in MATE I believe so I don't understand why they didn't use that. Lack of time probably.

If it wasn't for headerbars and Client Side Decorations I think "GTK3" could be implemented as a CSS theme engine for GTK2. Anyway, GTK2 will live on in KDE and LXQt thanks to the gtk2 Qt widget style which is good at mimicking GTK2 themes.

On my GTK2 system I easily spot GTK3 apps, but it can be difficult to spot Qt5 apps just looking at the window, unless you know what it is. I never use apps with headerbars or CSDs. It doesn't feel right and I don't have to because it's mostly Gnome apps anyway.

The GTK3 applications I use: SeaMonkey (dying?), Firefox, Thunderbird, Synaptic, MATE Calculator, Atril and Eye of MATE. These are good traditional applications.

Only GTK3 downside I notice in those applications is that scrollbar in Atril and Eye of MATE sometimes doesn't move and sometimes isn't proportional to document size.

I think GTK3 can work just as well as GTK2, but there are often small UI/theme problems which we didn't see with GTK2. Clearlooks - the default theme for Gnome 2 - didn't look good until the end of the Gnome 2 era. So these things take time and constant GTK3 changes make it harder.

4 Likes

My main issue is CSD... I hate that with a passion. There is software that I've loved for years and no longer use because they moved to CSD. Poor poor usability.

Scrolling on tabs is a pain, but can be fixed (slow progress currently, though)

Custom theme colors I can live without, and I understand the GTK team's motivation to remove it, but it makes me a bit sad inside.

However, I love HiDPI support (although it breaks Status Icons, since those are deprecated and no one thought of updating them for GTK3, wtf)

6 Likes

If it's green or nothing, I'm going to KDE once I upgrade from 16.04.

Which is a shame as I absouotely love Ubuntu Mate.

As it stands, I'm standing by 16.04 (with MATE 1.12) until it's run into the ground in April 2021. I haven't found an environment that can replace the stability of GTK2-built apps and workflows. GNOME 2/MATE + GTK2 presented an Ubuntu that gave me such a good first impression - it's why I switched. :heart_eyes:

I too avoid CSD apps and can usually spot the toolkit of an app - be it GTK3 or Qt. I mean, the open dialog box normally gives it away :wink:. But the entire desktop under GTK3? ... I'm not ready for that yet.

By the way, if anyone reading this recently moved to Ubuntu MATE or have no idea what we're talking about - we're just a bunch of users who fondly admire the way controls and buttons (GTK2) humanly interact with us as the standard a few years ago.

Eventually, I know we'll need to switch. Some nice things like being able to use my 4K monitor at its native resolution as opposed to 1080p; there's new versions of apps that may be stuck on old versions (due to dependencies). It'll be nice to have a complete set of indicators then a mix-match of new and legacy.


Unfortunately, I came to the conclusion that theming alone is not as flexible as I would like - borders, colours and padding per element isn't enough. :frowning: Nevertheless, I created a pull request for Ambiant/Radiant-MATE of some tweaks.


I'd be happy if GTK3 upstream resolve the "regressions", but that could be a while. Nothing would stop someone patching GTK and providing builds in a PPA if anyone knows a developer who understands GTK3's inner workings. I'm a web developer then a C++ programmer. :sweat:

:bulb: I had an idea I'll try... take 18.04 and build MATE 1.12 under GTK2... and see if that's technically possible or feasible.

6 Likes

It should be. Multiple versions of GTK can (and do) coexist.

The main problem is not understanding GTK's inner workings. It's getting the GTK team to accept any patches from the non-GNOME community. A PPA is a local solution, but it would be a nightmare to maintain, considering how fast GTK moves...

3 Likes

I don't get why people hate gtk3, it's great as well as Mate.

I am not a big fan of CSD, but come on, some applications implement it right (usable).

Anyway, it's a global trend from all app developpers, on all systems, that would be hard or very costly to fight.

I don't think it is worth to fight this already lost battle.

I would prefer to see the Mate project continuing to focus on the fundamentals for a responsive and traditional desktop environment (panels, window management, workspaces, menus, file browsing, etc.), fix the bugs and get more momentum.

1 Like

I feel I need to be more specific in my answer.

I am using almost none of the default utility that come with Mate, preferring superior, better maintained and accidentally GTK3 applications:

  • Mate-terminal --> Tilix
  • Atril --> Evince
  • EoM --> EoG or Gthumb
  • mate-calc --> gnome-calculator
  • pluma --> gedit

Gnome-disk is already installed by default and it's great.

I only keep using Caja, because Nautilus really sucks and Nemo is not recent in the repos.

EDIT: I should add Engrampa, for its integration with Caja and because file-roller also sucks after the removal of some features (password setting).

I am feeling it's a dead-end. How the Mate community can continue to keep these forks on par with their newer alteratives?
Apparently, it's not going very well.

On the other side, I regret that some core components (panels, window managers, file browser) suffer from quite important and serious bugs that are not being fixed.

It's maybe an isolated opinion, but I don't care about basic utilities when I choose Mate. I care about having solid and configurable foundations.

Maybe the project should keep its resources to focus of them.

If you think GTK3 is bad, wait until GTK4 comes out. They already removed icons from menus because it's no longer fashionable.

Yeah, these were already deprecated on GTK3, which means building mate components produces a ton of warning messages...

Luckily, MATE is not moving to GTK4 any time soon, it'll be years before that becomes a real problem

2 Likes

All this make me think we're gonna have to start looking at Qt sometime in the future...

@Apollonius - that would be even harder than GTK... All of MATE is intrinsically tied to GTK, QT would be a full rewrite, essentially a brand new desktop environment.

Also, who knows what issues does QT have! MATE is one of the most accessible DE's for blind users, for example, and QT's accessibility support is nowhere near as good as GTK's.

Issues like that are important. And as much as we like to harp on the GTK team's decisions, it's still possibly the best toolkit around.

4 Likes

Agreed...

And I know little to no C++ to understand Qt than GTK anyway... :wink:

I only started using Linux around 2016. Before that I was a total ■■■■■■ when it came to programming and software and was a full-blown Windows user. So I don't know how GTK2 was in the good-old GNOME days, but I have fallen in love with MATE since coming across UM and have learned so much since then; and maybe because of that I don't see or feel all the nitty-gritty details that have regressed all over the years, but I have seen how stupendously GNOME 3 and/or GTK3 has been removing stuff to be a pleasant experience when I sit in front of my desktop.

And I understand the emotion behind of all the old users...

I have found MATE and UM to be reliable, and it works more than enough for me, despite the regressions. :slightly_smiling_face:

2 Likes

I wish you did, but you don't. I've been on three desktops technically; GNOME 2.xx, GNOME 2.xx but modified as my own desktop and xsession, and MATE. All of them foundationally GTK 2, two of the three options impossible. Then there came the change where certain GTK 2 apps aren't feasible because you can't just change gnome to mate in config files and have it work.

Now with 19.04 I cannot install my preferred (and less error-prone) global EQ without pulling in prior libraries which no longer exist in Canonical's Disco repos. It's BS.

I'm tired of change. All the moving's wearing me out. It makes Windows' interface design, even with the modern changes they've made feel more stable. At least, ten years from now I'll still know how to use Windows.

2 Likes