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
2026-08-03 15:13:45 +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 gdk: move GdkAtom boxed type registration to common code 2026-06-09 12:19:39 +02:00
gtk fix alias check for out-of-tree builds 2026-08-03 15:13:45 +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+)