
A GTK+ 3 update - ognyankulev
https://blog.gtk.org/2018/06/23/a-gtk-3-update/
======
bla2
> GTK+ 3 stopped changing in drastic ways, which was well-received, and we are
> finally seeing applications moving from GTK+ 2.

It's almost as if devs care more about stable APIs than about endless churn
for minor features!

~~~
jchw
I don't know if the GNOME/GTK folks will ever really understand, though. The
thing is, it would be OK to have new features and even feature breaks. It's
just, every GNOME release had a corresponding GTK release and a number of new
things broke in GTK for it. You couldn't use a third party theme without
waiting to see what was going to break next. There's no strong guarantees
unlike with say, Qt, where generally speaking true API breaks are much rarer.

People probably would've had less trouble and been less upset if Gnome wasn't
in a privilege position and had to just be another user in the ecosystem.

~~~
vetinari
Number of new things broke == Theming. Which was specifically marked as
unstable, together with a reason why it was marked unstable (being reworked
with CSS).

Gnome and other apps didn't break, because they weren't concerned about
theming themselves.

~~~
r3bl
Having a modular desktop environment kind of loses its purpose if a module
(theme, extension) can bring the entire user session down.

Just this week, me upgrading a GNOME extension resulted in the user session
completely crashing, getting me back to the login screen, and making me lose
about half an hour of work.

Now, of course, I could put the blame on the sole developer that developed
that specific extension (one of the preinstalled ones in Ubuntu now), but I
don't. I blame GNOME that a botched extension update lead to the entire
session crashing, instead of doing something normal (like reverting to the
previous version and showing "update failed").

~~~
zzzcpan
This fragility is architectural though and possibly even cultural now. People
who promote gnome and make decisions adopting it for mainstream distros
somehow believe that such poor level of quality is acceptable. It's how
systemd got into mainstream too.

~~~
jchw
Redhat has killed the Linux desktop with this kind of mentality. No matter
what I do, things are broken nowadays. Wayland was broken promises; most of
the same issues exist in Wayland still, except now sometimes pasting crashes
my desktop, and I can't take screenshots without the compositor's permission.
Systemd actually delivered on some of its promises, but not without some
brutal side-effects. Same for PulseAudio really. I don't like using Linux
anymore as I did before all of this stuff became basically mandatory.

We did all of this refactoring, rebuilding, and yet... Where's heterogeneous
graphics card support? Where's heterogeneous DPI support? Why does multiple
desktops still suck? Even using all open source drivers, Linux feels dated and
immature at the same time :( I miss feeling like it was ahead of Windows.

~~~
qplex
I haven't used RedHat since they started to charge for it. Fedora 27 was ok.

I think Linux generally works on the desktop. It's true that GNOME 3 is still
buggy. I've had Nautilus crash on me while copying files and other horrible
things.

Wayland hardly has any apps with native support, it crashes a lot and the
hardware support sucks too. Also (afaik) applications such as Wine can never
be ported to Wayland.

However GNOME and Wayland are just one bleeding edge.

If you run X with some stable WM or DE, things work so well it's almost
boring.

~~~
jchw
Sure. If you run at 96 DPI, with a static monitor configuration, with a single
GPU, no expansion cards, with English language only.

However:

\- with multiple GPU configurations, all bets are off.

\- Thunderbolt docks and even the Thinkpad dock can be buggy and cause
crashes. I've had a few instances of Xorg crashing on dock.

\- HiDPI sucks. Linux took the wrong approach from the get go. Now each Xorg
client has to be DPI aware, but if it isn't, there is no graceful fallback.
There's also no easy way to determine what the DPI should be, and any hopes
that you can have monitors with differing DPIs is right out. Wayland tries to
fix this, but in my experience so far things look blurry and horrible.

\- IME sucks really badly. It almost was good for a bit, with IBus. But now I
don't even know what the standard is or how to configure it. How do I even get
Japanese IME in KDE? I can get it working in GNOME but good luck getting that
to work with apps that don't use GTK.

\- Sleep is still complicated. There are multiple DBus APIs for power
management, and they're not compatible. GNOME does OK here. KDE does worse,
and I find myself needing custom code to inhibit sleep in some circumstances.
Not user friendly, though workable for me.

\- Resume is more complicated.

\- It feels like boot splashes have only gotten worse since the old days.
Entering in LUKS keys is still weirdly unfriendly, especially if your boot
splash misbehaves.

\- X11 has security issues. No shock there, but it makes application isolation
like Snap and Flatpak pointless.

\- Audio can be tricky. I was a PulseAudio early adopter and like it better
than raw ALSA since it covers more use cases like Bluetooth and provides some
extra features. That being said I've found it can be problematic on a lot of
hardware, sometimes I lose audio until I kill pulse and it's hard to debug.
Worse, lately some apps are having difficulty selecting their own input/output
devices, making conference calls a nightmare.

This is really just the beginning. Windows sucks too, don't get me wrong, but
Linux is definitely not "so stable it hurts"

~~~
asveikau
> I was a PulseAudio early adopter and like it better than raw ALSA since it
> covers more use cases like Bluetooth and provides some extra features.

The last time I had Bluetooth audio actually work, it was before it needed to
be routed through pulse. Alsa applications played Bluetooth audio just fine.
Then at some dist-upgrade it pulled in a new bluez and that no longer worked,
and I literally could not get it working through pulse.

I actually have this experience 100% of the time with pulse: introduce pulse
and everything breaks. When things talk to lower level pieces it works fine.

By the way, alsa itself is a little bit of a case study in confusion between
api and implementation... My freebsd machines are using the oss audio API with
none of the problems that plagued oss on Linux in the 90s.

~~~
jchw
I am aware that there was a bluez-alsa adapter. I am sure it worked, but with
pure ALSA there was a lot of issues that made hotpluggable audio devices
tricky. I often had to mess with asound.conf and alsamixer to get things
working correctly - and that sometimes also meant that I had to restart all my
audio-using applications if I wanted to switch.

And all of those problems occurred WITHOUT Bluetooth being thrown into the
mix. I had multiple audio devices, including Intel HD Audio, an Audigy LS of
some kind, and a USB microphone that presented it's own audio device to the
system. (This was a while ago, I have no setups that look like this anymore.)
I'd often have the devices come in a different order, and when this happened
my mixer levels would be all messed up, and often times if I booted with the
microphone plugged in... it'd be the default output device.

With PulseAudio, I have less trouble - things do generally get setup how I
expect it, and when they don't I can switch everything at runtime to be
correct. It's worth noting that the trouble I have had with stability is
heavily tied to hardware. Of course that doesn't mean it's not a PulseAudio
issue, but I think a lot of people have trouble that they may not realize is
not actually the normal PulseAudio experience. Even latency varies per
hardware, in what I can only assume has something to do with how the audio
hardware handles timings.

------
djsumdog
I still really prefer GTK2 apps. The GTK3 file picker is awful, and I'm
generally not a fan of apps that use the new fancy window borders like gedit.

I'm glad Mate is around to keep maintaining gtk2/gnome2.

~~~
avian
My gripe with GTK3 are tiny, auto-hiding scroll bars. After a long day at work
they become impossible to use even with a mouse. Hitting them with a Wacom is
basically impossible.

What’s worse is that you can find many different recipes on the web on how to
enlarge th scrollbars/disable auto-hide, and most of them don’t work or work
only some of the time.

~~~
newnewpdro
I agree, they are _obnoxious_ to use as classical scrollbars.

They've also eliminated the ability to incrementally scroll by clicking above
or below the bar, now it jumps absolutely to the position you clicked! So when
you miss the bar, and it jumps to wherever you clicked, it's unobvious how to
get back to where you were before the misfire. No more arrow buttons to click
on either. It's an egregious UX regression as a trackpoint-only user.

My impression is that the GNOME devs are all using touchpads and/or scroll-
wheels for scrolling now and don't click on scrollbars, so they prefer to not
see them and couldn't care less about how hard it is to locate and operate
them via clicking.

Supposedly GNOME is the accessibility champion of FOSS desktops, but that
might have more to do with the dismal state of FOSS desktops than anything
else.

~~~
chriswarbo
There are workarounds for this, e.g. `gtk-primary-button-warps-slider=false`
in ~/.config/gtk-3.0/settings.ini

But I agree that it is obnoxious. I still haven't found a working GTK3 theme
which is (a) dark (b) not "flat" and (c) has usable scrollbars. XFCE-Dusk is
almost there, but seems to have been broken by newer GTKs, so I'm currently
using Vertex-Dark.

~~~
newnewpdro
That helps, thanks, though I hear this kind of thing is going away in GTK4.
The developers are actively _hostile_ to retaining any functionality unused by
the defaults, regardless of how impactful that functionality may be for the
minority using them.

I simply don't comprehend how one reconciles that attitude with accessibility
needs, when accessibility is inherently giving a fuck about the minority.

It might be a simple matter of scarcity in developer resources. I presume most
of the people bitching about GTK/GNOME in forums like these are actually
capable of hacking on the project but don't, myself included. So maybe we
should just be more appreciative of what we do have, there's nothing to refund
after all.

------
thristian
As much as I always like GTK2 as a solid workhorse, and GTK3 (although
unstable) was adding actual improvements, I lost a lot of faith in the GTK
team with their original hare-brained versioning scheme for GTK4. When they
recanted that plan and announced that GTK 3.22 would be The Stable Version, I
felt a bit better, and honestly it's been pretty great so far.

Going back on that promise and saying that GTK 3.22 isn't actually The Stable
Version after all feels a bit like a betrayal... but on the other hand, if
gdk_window_move_to_rect() is the function I'm thinking of, all is forgiven.

I was trying to create a custom popup the other day and (thanks to limitations
in the GDK API) it wasn't possible under Wayland. Trying to dig into why, I
found out that GDK had an API that did exactly what I wanted, which I couldn't
use because it was internal and unstable. Assuming that API is
gdk_window_move_to_rect(), this is the best news I've heard all day.

~~~
duskwuff
> ... but on the other hand, if gdk_window_move_to_rect() is the function I'm
> thinking of, all is forgiven.

Good news. From the article:

"gdk_window_move_to_rect as public API"

------
coleifer
For the applications I use, gtk3 did not add any significant improvement over
gtk2. Often it was the opposite (goodbye menubars anyone?). It seemed like all
my dank gtk themes broke every time there was a minor version bump.

~~~
JasonFruit
And how, if all the menu bars are gone, can these GTK3 apps still waste more
screen real estate than when they used GTK2?

------
mastax
A post about GTK on HN? I bet the comments section is full of people
complaining about GTK and not talking about the post.

~~~
Avshalom
you read the post? because it's just "hey remember how we said this was the
stable version? it isn't now" which couldn't be more perfectly CADT if it
tried.

~~~
mathw
And they've changed that policy, on a limited basis, specifically to help out
the big projects who are now porting to GTK+3 as a result of that successful
stability plan for 3.22.

A project being responsive to the needs of its big users? Shocking and
unacceptable.

------
cocoa19
Bring native windows please!

~~~
app4soft
Which OS?

