What is libadwaita?

No.

Libadwaita is the implementation of the GNOME interface guidelines. It provides widgets and ancillary objects to write applications targeting GNOME as their primary environment, both in desktop and mobile form factors.

GTK is platform agnostic, and encourages environments to provide their own platform library, like libadwaita for GNOME or granite for Elementary, to implement platform specific UI patterns.

Libhandy was a library that added functionality targeting non-desktop form factors to GTK3 applications, which slowly incorporated patterns from the GNOME HIG; it won’t be ported to GTK4, because there’s no point in doing that.

If you want to write a GTK application, you should figure out the kind of environment you wish to target:

  • GNOME: use libadwaita
  • Elementary: use libgranite
  • anything else: use GTK, but be prepared to implement a lot of custom widgets for platform-specific functionality

You can use libadwaita even if you’re not targeting GNOME, but be mindful that libadwaita is a GNOME project, and as such it will always put GNOME requirements first.

2 Likes