Meta(
    title: "Updating Gtk applications",
    summary: Some("Catching up to the Gnome 43 release cycle"),
    published: Some(Time(
        year: 2022,
        month: 10,
        day: 24,
        hour: 23,
        minute: 4,
        second: 57,
    )),
    tags: [
        "software",
        "gtk",
        "rust",
        "gnome",
    ],
)
---
I've been patiently waiting for Gnome 43 to land in Arch Linux since it was release now over a month ago. I finally got tired of waiting yesterday and installed some alpha packages via a third party repository. I have to say, I'm a bit disgusted to have to do this to get current software on Arch. I've never had to do this sort of hacky thing before, and I don't like doing it. My strong preference is to only have the default repositories in my repo list. But I digress.

Now, Gnome is not my daily driver desktop environment. I keep it installed for testing and development, while running Xfce on a daily basis. But I have a number of applications that I have written and maintain which use the Gtk toolkit. For some years now, Gtk+ has been more and more tied to Gnome and is in fact hosted on the Gnome Gitlab instance. So it's a good idea in my case to pay attention to where this code is headed. I've also begun porting a couple of my applications to target Gnome more specifically by using LibAdwaita and loosely following the Gnome HIG. More often than not I have found that this makes for a nice interface, and such applications are still useful outside of Gnome.

Anyway, yesterday was the day. I pulled the trigger in the morning and on my lunch break last night started working on beating Gfret into shape. Gfret had been using a git checkout of the libadwaita-rs crate, and thus depended on git checkouts of Gtk+, Gdk, Glib and on down the stack. Those crates all officially saw new releases last week, so now was a perfect time to update.

The new crates came with some tweaks to the interface that were all pretty well documented in the release notes and everything went smooth. The "next" branch of Gfret was merged last night and is the new "HEAD". So Gfret-3.0 will be released sometime in the next week or two, as soon as I have time to type up release notes.

Another application, the Vapad text editor, actually had a PR which did some of the work that I wanted to do to it. It's nice when someone else does a bit of the lifting. I'm not used to it in my own projects, most of which have scratched a more personal itch. Anyway, Vapad's "About" window is now using the AdwAboutWindow widget rather than the old style GtkAboutDialog. He also updated the Russian translations while at it.

I have some plans for Vapad, at least for it's next release. Right now, it uses the GtkNotebook container widget to provide it's tabbed interface. I plan to switch that to the AdwTabView and then incorporate the upcoming TabOverview and Tabbutton widgets which will release with Gnome 44 to give it an adaptive interface, which will work better on devices such as the PinePhone or PineTab. But I will probably do a release in the meantime for this cycle.

Incidentally, the Eva small web browser is probably going to get some similar treatment down the road. A number of things that I learned while writing Vapad have lead me to ideas for improving the interface.

That's all for now. Happy hacking everyone.