Skip to content(if available)orjump to list(if available)

Classic GTK1 GUI Library

Classic GTK1 GUI Library

12 comments

·September 8, 2025

joz1-k

Nice to see that someone is still maintaining the original GTK1 toolkit. It's like the classic Win32 UI API for the Linux/Unix. Linux UI libraries are a constantly moving target and one can be easily more occupied by adapting to those toolkit API changes instead of focusing on the features of the application itself. I guess that CinePaint developers decided at some point that they don't want to endure API changes in the UI toolkit anymore.

On the other hand, I think GTK1 doesn't even support Unicode.

pferde

Yeah, I think GTK2 would be a better candidate to keep maintaining. GTK3 is where it started to go to hell in a handbasket.

zokier

Gtk2 also had exceptionally long lifetime, initial release in 2002 and last release in 2020. In contrast Gtk1 was initially released in 1998 and last release was 2001.

WesolyKubeczek

It doesn't support Unicode, doesn't support font antialiasing, and instead of fontconfig, you need to grapple with X11 core font support, using ttmkfdir and friends, and make the X11 server aware of where the fonts are.

It's some experience I definitely don't miss from those days.

joz1-k

Oh, yes, I remember those early times as well. :) The question is whether it's possible to maintain the legacy API and upgrade the internal architecture to use more modern approaches. I think it's almost always possible, but perhaps the cost to develop and maintain such a legacy layer is too high for an open-source desktop environment and toolkit. The Windows OS managed to support old APIs quite well, but the available resources are incomparable.

Western0

I like GTK but......

small example have error (memory leak) in valgrind

badsectoracula

Is it binary backwards compatible with Gtk1.2? AFAICT from the description it seems to be based on Gtk1.2 but it is its own thing.

I've being using Gtk 1.2 + patches[0] (which i made by combining the last release with a few patches from Slackware) to occasionally check Lazarus' Gtk1 support. It is also neat if you want to make self-contained binaries, for example this little animation utility i wrote some time ago[1] has a Gtk1-based build with Gtk1 linked statically on it and the tool relying on just X11 and OpenGL.

[0] http://runtimeterror.com/pages/badsector/gtk12/

[1] http://runtimeterror.com/tools/piecemod/

HexDecOctBin

Somewhat tangential: Is there a lightweight distribution of GTK2? I was shopping for a cross-platform GUI library with a C API, and GTK2 seemed like the right choice. But the Windows distribution [1] had 30-40 DLLs and none of them seemed to be optional in DependencyWalker.

[1] https://github.com/tschoonj/GTK-for-Windows-Runtime-Environm...

vintagedave

I never followed the history of GTK very much but reading about non-compatibility between versions surprises me, just as a matter of software engineering re a critical dependency.

I am unsure from the page, just that it implied: is there software in 2025 still using GTK v1?

badsectoracula

Lazarus[0] has a Gtk 1.2 backend that i occasionally fix (though it has been a while since i tested it), but you need to install the Gtk 1.2 libraries from source[1] since no current distro aside from Slackware (from where i got the sources and patches) packages it. Even Slackware though doesn't provide gdk_pixbuf (which Lazarus needs) though, so you'd need to compile that.

I'm not sure if GTK1 (the linked one) is backwards and/or binary compatible with Gtk 1.2 though.

[0] https://www.lazarus-ide.org/

[1] http://runtimeterror.com/pages/badsector/gtk12/

gary_0

`apt search libgtk` on Linux Mint 21.2 doesn't show it. Only versions 2, 3 and 4.

Searching https://pkgs.org says that most distros don't have a gtk 1 package... except for Slackware!

roschdal

GTK1 is the best GTK.