No description
  • C 97.8%
  • M4 1%
  • Makefile 0.6%
  • Python 0.3%
  • Shell 0.1%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Daemonratte 0e99248694 quartz: use CGContext accessor on Yosemite and newer
Based on part of the MacPorts Big Sur performance patch for GIMP issue 5989.

Use the modern NSGraphicsContext CGContext accessor on Yosemite and newer, matching the existing Quartz window code, while preserving graphicsPort for older macOS versions.
2026-08-03 15:01:22 +02:00
.gitlab-ci Add CI for gtk-2-24 2019-10-07 15:41:30 +01:00
build build: avoid duplicate MSVC_TOOLSET definition 2026-04-29 09:40:46 +02:00
debian Revert name change 2008-07-01 22:57:50 +00:00
demos demo: add gtk2-ng icon 2026-06-09 11:53:08 +02:00
docs docs: add no-op test targets for reference manuals 2026-05-12 15:40:30 +02:00
examples Clean up trailing whitespace 2026-05-03 15:16:52 +02:00
gdk quartz: map macOS 11 and newer to internal OS versions 2026-08-03 15:01:22 +02:00
gtk quartz: use CGContext accessor on Yosemite and newer 2026-08-03 15:01:22 +02:00
m4 build: ship gtk-doc build infrastructure 2026-05-05 15:28:19 +02:00
m4macros Clean up trailing whitespace 2026-05-03 15:16:52 +02:00
modules gail: drop volatile from once-init type IDs 2026-05-07 18:12:16 +02:00
perf Clean up trailing whitespace 2026-05-03 15:16:52 +02:00
po po: avoid updating translations during normal builds 2026-05-05 15:28:13 +02:00
po-properties po: avoid updating translations during normal builds 2026-05-05 15:28:13 +02:00
tests Clean up trailing whitespace 2026-05-03 15:16:52 +02:00
.gitlab-ci.yml Add CI for gtk-2-24 2019-10-07 15:41:30 +01:00
ABOUT-NLS Update ABOUT-NLS 2026-06-12 16:42:15 +00:00
acinclude.m4 configure: replace obsolete AC_HELP_STRING 2026-04-28 21:55:12 +02:00
AUTHORS small update 2006-03-24 03:09:08 +00:00
autogen.sh Clean up trailing whitespace 2026-05-03 15:16:52 +02:00
ChangeLog.gtk-async-file-chooser added ChangeLog entries from the kris-async-branch. 2006-05-02 09:58:08 +00:00
ChangeLog.gtk-printing Add ChangeLog.gtk-printing 2006-05-02 09:15:34 +00:00
ChangeLog.pre-1-0 ChangeLog split up into ChangeLog.pre-1-0 and ChangeLog. 1998-04-17 01:07:36 +00:00
ChangeLog.pre-1-2 Apply a cleanup patch by Kjartan Maraas (#341812) 2006-10-08 05:07:55 +00:00
ChangeLog.pre-2-0 Apply a cleanup patch by Kjartan Maraas (#341812) 2006-10-08 05:07:55 +00:00
ChangeLog.pre-2-2 Split ChangeLog 2002-12-28 21:24:40 +00:00
ChangeLog.pre-2-4 Move aside ChangeLog for 2.4 2004-05-04 20:12:19 +00:00
ChangeLog.pre-2-6 Split ChangeLog for 2.6 2005-01-10 15:56:14 +00:00
ChangeLog.pre-2-8 Truncate ChangeLog after moving aside 2005-08-24 18:51:56 +00:00
ChangeLog.pre-2-10 Branch for 2.10 2006-08-23 03:51:48 +00:00
ChangeLog.pre-2-12 === Branch for 2.12 === 2007-11-19 09:26:25 +00:00
ChangeLog.pre-2-14 updated version number to 2.15.0 for development. 2008-09-18 14:55:35 +00:00
ChangeLog.pre-2-16 Rename ChangeLog to ChangeLog.pre-2-20 2009-04-03 01:48:22 -04:00
config.h.win32.in Clean up trailing whitespace 2026-05-03 15:16:52 +02:00
config.rpath build: replace obsolete GLib gettext macros 2026-05-05 15:28:00 +02:00
configure.ac build: require gettext 0.19.3 for clean autoreconf 2026-05-05 15:28:22 +02:00
COPYING Changed LGPL address for FSF in all .h and .c files 1998-04-13 02:02:47 +00:00
gail-uninstalled.pc.in Clean up trailing whitespace 2026-05-03 15:16:52 +02:00
gail.pc.in Integrate gail into gtk+. Bug #169488. 2007-12-18 13:51:12 +00:00
gdk-2.0-uninstalled.pc.in Bug 540529 – Remove all GIMP references 2008-07-03 05:47:22 +00:00
gdk-2.0.pc.in Adapt to the new, external gdk-pixbuf 2010-06-26 21:57:04 -04:00
git.mk Update git.mk 2026-07-05 21:04:41 +00:00
gtk+-2.0-uninstalled.pc.in Bug 540529 – Remove all GIMP references 2008-07-03 05:47:22 +00:00
gtk+-2.0.pc.in Bug 540529 – Remove all GIMP references 2008-07-03 05:47:22 +00:00
gtk+-unix-print-2.0.pc.in Bug 540529 – Remove all GIMP references 2008-07-03 05:47:22 +00:00
gtk+.spec.in Clean up trailing whitespace 2026-05-03 15:16:52 +02:00
gtk-config-2.0.in Updated. 2001-04-03 18:48:46 +00:00
gtk-doc.make build: ship gtk-doc build infrastructure 2026-05-05 15:28:19 +02:00
gtk-engine-check-abi.sh Clean up trailing whitespace 2026-05-03 15:16:52 +02:00
gtk-zip.sh.in Bug Bug 703789 - gtk.immodules still referenced 2013-07-28 13:59:55 -07:00
HACKING Update HACKING 2026-06-11 18:23:30 +00:00
INSTALL.in release: update NEWS for 2.24.16 2013-02-18 13:58:50 -05:00
MAINTAINERS Update MAINTAINERS 2026-07-05 20:50:19 +00:00
makecopyright Revert name change 2008-07-01 22:57:50 +00:00
Makefile.am Make GTK+ build against an external gdk-pixbuf 2010-06-26 02:29:29 -04:00
Makefile.decl gtk-doc.make defines EXTRA_DIST for gtk-doc reference manuals. Including 2026-04-28 21:47:11 +02:00
makefile.msc Update mscv/win32 build 2010-08-27 20:34:23 +02:00
NEWS Update NEWS and README 2026-05-03 11:40:47 +02:00
NEWS.pre-1-0 ooops, fogot this on my last commit... 1998-05-07 07:45:04 +00:00
NEWS.pre-2-24-34 docs: split legacy GTK+ 2 news into archived NEWS file 2026-05-03 09:34:45 +02:00
README.commits Update README.commits 2026-06-11 19:12:45 +00:00
README.in Update README.in 2026-06-11 19:45:04 +00:00
README.md Update README.md 2026-07-05 13:56:09 +00:00
README.win32 Bug Bug 703789 - gtk.immodules still referenced 2013-07-28 13:59:55 -07:00
sanitize-la.sh Some people use a hacked libtool that doesn't even install .la files 2010-04-12 13:42:31 +03:00
sanity_check [ Merges from gtk-1-2 ] 1999-09-28 20:19:13 +00:00

GTK2-NG — Modern Community Fork of GTK+ 2.24

Unofficial, community-maintained fork keeping GTK2 alive and usable on modern 64-bit Linux systems.

This fork focuses on modern compatibility while preserving stability, performance, ABI compatibility, and original behavior as much as possible. X11-first, no forced Wayland migration.

Backed by the devuanusers.com community and The Lateral Tech Foundation.

Recent Development News

Highlights

  • Conservative GTK+ 2.24 maintenance with ABI compatibility as a priority
  • Existing GTK2 applications should continue to run without recompilation
  • X11-first approach with no forced Wayland migration
  • Modern build-system cleanup for current Autoconf, Automake, Libtool and gtk-doc
  • Compatibility fixes for current GCC and Clang versions
  • Selected safe patches from AUR, BSDs, Gentoo, Fedora and GTK2 maintenance forks
  • Internal Y2038-related time-handling improvements where ABI-safe
  • Modernized private-data handling in many GTK/GDK classes
  • Fixed many compiler and deprecation warnings without removing features
  • Improved GtkFileChooser with optional icon view
  • Classic list view remains available
  • Better icon handling and reduced unnecessary overhead in the file chooser
  • Preserved GTK2 theming, theme engines, input modules and print backends
  • Preserved legacy configuration and module lookup behaviour
  • Continued focus on performance, low overhead and responsiveness
  • Community-driven maintenance backed by devuanusers.com and lateraltechfoundation.com

Roadmap

  • Continue removing deprecated internal API usage where safe
  • Improve file chooser responsiveness for large and network directories
  • Add best-effort thumbnail generation and optional preview support
  • Improve compatibility with traditional GTK2 themes and engines
  • Add XDG-aware config, theme and icon lookup paths while keeping legacy paths
  • Review Ardour's YTK GTK2 fork for portable, ABI-safe improvements
  • Review further GTK2 maintenance forks for useful fixes
  • Preserve CUPS/PPD printing workflows and add libppd support for newer CUPS
  • Keep GTK2 useful on modern Unix-like systems without breaking existing apps
  • Choose a better long-term project name

Build Instructions (Linux)

autoreconf -fvi
./configure --prefix=/tmp/gtk2-ng-test --with-xinput=yes
make -j$(nproc)
make install

Run apps against the test build

export GTK2_TESTDIR=/tmp/gtk2-ng-test

export LD_LIBRARY_PATH="$GTK2_TESTDIR/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$GTK2_TESTDIR/lib/pkgconfig:$PKG_CONFIG_PATH"
export GTK_EXE_PREFIX="$GTK2_TESTDIR"
export GTK_DATA_PREFIX="$GTK2_TESTDIR"
export GTK_PATH="$GTK2_TESTDIR/lib/gtk-2.0"

leafpad   # or any other GTK2 app

System-wide install

autoreconf -fvi
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-xinput=yes
make -j$(nproc)
sudo make install

Dependencies (Debian/Devuan/Ubuntu)

sudo apt install \
  build-essential git \
  autoconf automake libtool pkg-config gtk-doc-tools gobject-introspection \
  libglib2.0-dev libpango1.0-dev libatk1.0-dev libcairo2-dev libgdk-pixbuf-2.0-dev \
  libfontconfig1-dev libfreetype-dev libharfbuzz-dev libfribidi-dev libpng-dev \
  libx11-dev libxext-dev libxrender-dev libxrandr-dev libxcursor-dev \
  libxinerama-dev libxi-dev libxfixes-dev libxcomposite-dev libxdamage-dev \
  libcups2-dev gettext autopoint

Dependencies (Arch/Artix/Manjaro)

sudo pacman -S --needed \
  base-devel git \
  autoconf automake libtool pkgconf make gcc binutils \
  gtk-doc gobject-introspection \
  glib2 glib2-devel \
  pango cairo atk gdk-pixbuf2 \
  fontconfig freetype2 harfbuzz fribidi libpng pixman \
  libx11 libxext libxrender libxrandr libxcursor libxinerama libxi libxfixes \
  libxcomposite libxdamage libxft \
  cups

Dependencies (Gentoo)

emerge --ask --oneshot \
  dev-vcs/git \
  sys-devel/gcc sys-devel/binutils dev-build/make \
  dev-build/autoconf dev-build/automake dev-build/libtool \
  dev-util/pkgconf dev-util/ccache \
  dev-util/gtk-doc dev-libs/gobject-introspection \
  dev-libs/glib dev-libs/atk \
  x11-libs/pango x11-libs/cairo x11-libs/gdk-pixbuf \
  media-libs/fontconfig media-libs/freetype \
  media-libs/harfbuzz dev-libs/fribidi media-libs/libpng x11-libs/pixman \
  x11-libs/libX11 x11-libs/libXext x11-libs/libXrender x11-libs/libXrandr \
  x11-libs/libXcursor x11-libs/libXinerama x11-libs/libXi x11-libs/libXfixes \
  net-print/cups

GTK2-ng requires Cairo with Xlib support. If configure reports that cairo-xlib is missing, enable the X USE flag for Cairo (Gentoo)

echo 'x11-libs/cairo X' >> /etc/portage/package.use/gtk2-ng
emerge --ask --oneshot x11-libs/cairo

If Pango or Freetype dependency resolution requires Harfbuzz support, enable it for Freetype: (Gentoo)

echo 'media-libs/freetype harfbuzz' >> /etc/portage/package.use/gtk2-ng
emerge --ask --oneshot media-libs/freetype x11-libs/pango

How to Contribute

Join the main discussion here:
https://devuanusers.com/thread-gtk2-revival-thread--80

Test apps, report issues, submit patches!

License

LGPL v2.1 or later (same as original GTK+)