[HN Gopher] GTK 3.99
       ___________________________________________________________________
        
       GTK 3.99
        
       Author : severine
       Score  : 118 points
       Date   : 2020-07-31 20:17 UTC (2 hours ago)
        
 (HTM) web link (blog.gtk.org)
 (TXT) w3m dump (blog.gtk.org)
        
       | marsrover wrote:
       | Still waiting for an acrylic blur (or some other type of blur) to
       | bring Gnome to parity with modern desktops.
        
         | jaas wrote:
         | I don't understand what you're asking for. Can you explain?
        
           | nightfly wrote:
           | Transparency with a blur effect for windows. So you can see
           | some of the color that's behind them without all the detail.
           | I'm... not really a fan of it. It drives me crazy in windows
           | that terminal transparency is for the entire window (even the
           | text!) and not just the background.
        
             | renewiltord wrote:
             | There was a time when I had a terminal with just the
             | background transparent. I recall that. You could do it in
             | software and even on hardware on a Via Unichrome.
        
               | mmm_grayons wrote:
               | Terminal with transparent or even blurred background is
               | very doable. I've done it on my i3-gaps and urxvt setup
               | both with urxvt's "fake" transparency and by using a
               | compositor.
        
               | renewiltord wrote:
               | I vaguely remember Gnome-Terminal even having it. I
               | wonder if they removed it.
        
               | ShroudedNight wrote:
               | It appears that they removed it in 3.7:
               | 
               | https://askubuntu.com/questions/475935/did-they-just-
               | remove-...
        
             | marsrover wrote:
             | I don't think anyone is asking for the blur to encompass
             | the text in a terminal. Is this a bug? I could have sworn
             | when I used Windows Terminal that this wasn't the case, but
             | it has been a while.
        
               | [deleted]
        
               | Firehawke wrote:
               | If you turn on the acrylic mode, yeah, it covers the
               | whole window. I have the preview of WT installed here and
               | acrylic looks awful compared to how it did back in
               | Windows 7. Probably a function of the way Microsoft wants
               | you to use it in "modern" Windows 10 as opposed to
               | Windows 7 as there are marked differences in how acrylic
               | looks compared to the Windows 7 era and less
               | configurability.
        
           | marsrover wrote:
           | Actually, apparently it is going to be supported in Gtk 4. My
           | bad, I haven't been keeping up with it.
           | 
           | https://developer.gnome.org/gsk4/stable/GskRenderNode.html#g.
           | ..
        
             | saturn_vk wrote:
             | That might just be blurring a widget within a window, not a
             | texture coming from another one
        
       | c-smile wrote:
       | GTK still misses:
       | 
       | 1. Anything close to AdjustWindowRectEx() function. See:
       | https://docs.microsoft.com/en-us/windows/win32/api/winuser/n...
       | 
       | 2. MoveWindow(window,rect) where rect is window frame rectangle.
       | Instead GTK has 6 other functions that do something close but no
       | one of them do MoveWindow.
       | 
       | See: https://stackoverflow.com/questions/58103333/set-frame-
       | posit...
       | 
       | Windows has these functions, MacOS has their direct equivalents,
       | but GTK does not have such, IMO basic, functionality.
       | 
       | Will we have anything like that in GTK4?
        
         | chrisseaton wrote:
         | I think this is because of the separation between window
         | manager and GUI toolkit.
         | 
         | Which I think is a terrible thing to have separate, for the
         | functionality reasons you're illustrating.
         | 
         | But that's why.
        
         | [deleted]
        
         | ATsch wrote:
         | Wayland does not allow clients to make decisions such as the
         | precise placement of windows for security and sanity reasons,
         | so I do not think that these will ever be added.
        
           | skeletal88 wrote:
           | Then Wayland is kind of stupid. Why is that restriction
           | needed or why do the developers think that it is a good idea
           | to have it?
           | 
           | For example, when the user has arranged the windows of an
           | application in some way, and then wants to save and then
           | restore the placement of windows, how should it be done by
           | the application?
        
             | sho_hn wrote:
             | On Mac OS, you can ask the WM to store the geometry for you
             | and recreate it. It's exposed to devs via the
             | NSApplicationWindow (or something) API and then backed by a
             | protocol between the app and the windowing server, leaving
             | the latter in ultimate control.
             | 
             | Wayland doesn't have an equivalent protocol yet, but this
             | is also how it would be idiomatically done there.
        
               | saagarjha wrote:
               | But of course macOS also has APIs on NSWindow to move it
               | around, as well as accessibility and AppleScript APIs to
               | do it as a user in a scriptable way. Why the limitation?
        
             | ATsch wrote:
             | You can use positioners to request a location for your
             | popup window relative to your toplevel window:
             | 
             | https://wayland-book.com/xdg-shell-in-depth/popups.html
             | 
             | You just don't get to set the absolute position of your
             | window. The precise position and making sure it isn't going
             | off of the edge of the screen is the responsibility of the
             | compositor.
             | 
             | This is good because it ensures proper security sandboxing
             | and makes sure clients still work even when the windowing
             | paradigm changes, e.g. with multiple desktops or window
             | tiling. Developers hardcoding such assumptions is what
             | caused much of the pain of Xorg so it's understandable that
             | they want to make sure it does not happen again.
        
             | war1025 wrote:
             | It's done by the window manager, which is integrated
             | directly into Wayland. The tight coupling of the two is a
             | semi-contentious issue.
        
       | [deleted]
        
       | ohazi wrote:
       | Is GTK 3 -> 4 expected to be as big a clusterfuck as 2 -> 3?
       | 
       | I'd really rather not go through all that again.
        
         | nfoz wrote:
         | What were the problems with this transition?
        
           | RedShift1 wrote:
           | API changes every minor release.
        
             | vetinari wrote:
             | Any specific examples?
             | 
             | According to https://developer.gnome.org/gtk3/stable/gtk-
             | migrating-3-x-to..., the changes were pretty minor.
        
               | ohazi wrote:
               | They broke enough of the theming API on every minor
               | release that for a few years it was essentially
               | impossible to run any GTK theme other than the GNOME
               | sanctioned default theme (Adwaita). Adwaita was updated
               | in lock step with GTK minor releases (by the same
               | developers), and unaffiliated theme builders were left
               | with periodic drops of subtly different behavior and no
               | notes or tools on how to update their themes. It drove
               | many of them away.
               | 
               | This was apparently a part of a deliberate strategy
               | around GNOME branding. The GNOME developers wanted all
               | GTK apps to have one consistent look-and-feel, they
               | wanted people to associate this look with GNOME, and they
               | wanted people to start thinking of GTK apps as "GNOME
               | Apps."
               | 
               | More recently, they crippled existing functionality for
               | server side-window decorations (which literally every
               | other toolkit supports), because GNOME decided to use
               | exclusively client-side decorations. They vetoed all of
               | the reasonable seeming workaround proposals, essentially
               | telling developers to either use GNOME's decorations or
               | to manually draw the close/maximize/minimize buttons.
               | 
               | Honestly, all of the crap that systemd gets should be
               | redirected towards GTK/GNOME. I've never seen a group of
               | developers act in such bad faith.
        
               | saagarjha wrote:
               | Looks like they got the worst of both worlds, with no
               | Cocoa arising from it and a bunch of pissed off
               | developers and users...
        
               | wolfgke wrote:
               | RedShift1:
               | 
               | > API changes every minor release.
               | 
               | vetinari:
               | 
               | > the changes were pretty minor.
               | 
               | Was this pun intended? ;-)
        
           | madboston wrote:
           | There are not enough words I can write for this.
        
         | quotemstr wrote:
         | The GTK 4 transition is totally unnecessary. Any new
         | functionality needed can be incorporated into the existing API
         | in a backwards-compatible manner. Major version bumps should be
         | an absolute last resort, not something a major infrastructure
         | library does when it gets too stable and its developers get
         | bored.
         | 
         | You want a new recyclerview-like list widget? Great. Make a new
         | damned widget. You want a retained-mode rendering system?
         | Great! Add a bunch of new widget hooks. Don't require a whole
         | new major version bump and make everyone using GTK3 deal with
         | dependency hell trying to get upgraded. It feels like only
         | yesterday that most things finally moved off GTK2.
         | 
         | There is _ZERO_ reason for an ABI break here. None. GTK3 's ABI
         | is a perfectly adequate base for adding new functionality. The
         | GTK people, by making a GTK4, made a lot of work for everyone
         | for no benefit.
         | 
         | Is the GTK4 API cleaner? I guess? Event objects are opaque now.
         | There's no root window. Yay? But "it looks slightly cleaner" is
         | a totally inadequate justification for the pain of yet another
         | GTK ABI transition.
         | 
         | I could go and on about how much gratuitous breaking changes
         | piss me off.
         | 
         | The same goes for Wayland, by the way --- X11 has an extension
         | mechanism. Wayland could have used it. And don't tell me about
         | the core protocol breaking the model --- it doesn't hurt
         | anything if you don't use it.
        
           | war1025 wrote:
           | > The same goes for Wayland, by the way
           | 
           | Wayland happened mainly because they could get to 90% of Xorg
           | functionality easily and ignored the fact that the last 10%
           | would take over a decade to achieve parity on.
        
             | quotemstr wrote:
             | > Wayland happened mainly because they could get to 90% of
             | Xorg functionality easily
             | 
             | We're at 12 years of Wayland and counting and the thing
             | _still_ isn 't really usable outside a very narrow use-
             | case. I still run X11 myself and will for a long time. As
             | far as I'm concerned, Wayland has set free software
             | windowing back by a decade. After a decade of development,
             | Wayland still isn't at parity with X11. What exactly is so
             | compelling in Wayland that it was worth putting progress on
             | hold since 2008?
             | 
             | Yeah, yeah, I get that Wayland has a nice buffer-based
             | composition system. _So what?_ Whatever Wayland does, it
             | could have done over an X11 extension.
        
               | fmntf wrote:
               | While I totally agree with you in a desktop-like
               | scenario, please note that X is totally inadequate and
               | bloated for other domains (e.g. automotive).
        
               | quotemstr wrote:
               | Why? X originally ran on machines far less powerful than
               | even the shittiest automotive head units around today.
        
           | moonchild wrote:
           | X has serious architectural problems. What would it _mean_ to
           | build a completely new windowing API using the extension
           | system, if  'proper use' would mean using exclusively the new
           | extended API? Is that meaningfully different from building a
           | new windowing system (cf wayland) and implementing x11 on top
           | of it (cf xwayland)?
           | 
           | FWIW, I think wayland also has serious architectural
           | problems, and see arcan as much more promising, but
           | rewriting/replacing legacy can definitely be justified.
           | Extension hell is much worse than compatibility hell. If you
           | don't _like_ gtk4 's api, then don't use it; gtk3 will
           | continue to work. It's better that an api should be coherent
           | and cohesive than that it should bend over backwards to keep
           | compatibility with ideas that no longer make sense.
           | Obviously, this should be applied within reason--don't do a
           | complete rearchitecture every month--but compatibility breaks
           | are important and necessary.
        
       | AlexMax wrote:
       | Good for them. Does this mean we're going to get a GNOME 4 as
       | well? I'm quite curious to see what neat things the new version
       | of GTK enables in practice.
        
         | matthiasv wrote:
         | While the toolkit certainly has an influence on all core apps
         | that are part of GNOME, the shell is entirely independent of
         | GTK. So, highly unlikely there will be a GNOME 4 any time soon.
        
           | IAmLiterallyAB wrote:
           | Eh I bet there will be. Every Gnome/GTK version until 3.22
           | had the same version number and were released at the same
           | time. The only reason that stopped is because GTK 3.22 was
           | supposed to be "stable" and "the last GTK 3" version while
           | Gnome still wanted to do updates.
        
       | randtrain34 wrote:
       | Can someone point me to a roadmap/changes to be expected for GTK
       | 4.0? I've looked on the blog and googled around, but couldn't
       | find an authoritative source.
        
         | stonogo wrote:
         | https://gitlab.gnome.org/GNOME/gtk/-/milestones/1
        
         | marsrover wrote:
         | https://gitlab.gnome.org/GNOME/gtk/-/milestones/1
        
       | techntoke wrote:
       | Telegram has shown the enormous potential of Qt with the latest
       | update. Not that I have a horrible time with GTK, but Qt just
       | feels better and lighter overall. qutebrowser is another example
       | of the amazing potential of Qt.
        
         | saagarjha wrote:
         | Personally, I much prefer GTK apps over Qt ones. What makes you
         | think that Qt does it better?
        
       | klysm wrote:
       | Does the .99 versioning irk anybody else? It seems like a very
       | inelegant solution.
        
       | chungy wrote:
       | It's a serious blast to the past, and not necessarily a good one,
       | to see versioning treated like this, where they'll pick 3.9? as a
       | form of alpha/beta/RC phases for 4.0.
       | 
       | I think semver (more-or-less a formalization of what was already
       | becoming popular before semver got published) makes more sense.
       | Go ahead and use 4.0-alpha.1, 4.0-beta.1, 4.0-rc.1 as needed. The
       | strings still sort fine.
        
         | Quekid5 wrote:
         | Pfft... The versioning scheme is the _least_ of GTKs problems.
        
         | layer8 wrote:
         | The problem is that "4.0" sorts before "4.0-alpha.1". Not
         | saying that 3.99 is better, but something's gotta give.
        
           | deathanatos wrote:
           | If you're lexicographically sorting, maybe? But if you're
           | doing that, 3.10 and 3.2 won't sort correctly, either.
        
         | bch wrote:
         | NetBSD does similar (major.99.iteration), and before its alpha
         | or beta, this is where things get hashed out. It's a reserved
         | magic number (one _hopes_ there aren't 99 minor releases that
         | would start a conflict over x.99.y) so that sucks (being
         | "magic"), but it seems to work out in practice.
        
       | Jerry2 wrote:
       | Anyone know if they've finally added thumbnails aka "icon view"
       | to the file picker?
        
         | Shared404 wrote:
         | That would be an issue with the GNOME DE, not the GTK toolkit.
        
       ___________________________________________________________________
       (page generated 2020-07-31 23:00 UTC)