The developers of the Linux Mint distribution have released the first version of the libAdapta library, created as a fork of libAdwaita. The initial release, libAdapta 1.5, is based on libAdwaita 1.5 and features support for themes and some additional capabilities. Otherwise, libAdapta maintains all the functionality of libAdwaita and, by default, provides an identical appearance for applications.
The creation of its own fork is explained by the difficulties in incorporating advanced features developed by the project into the main libAdwaita codebase. A soft fork, whose codebase is periodically updated to newer versions of libAdwaita to maintain compatibility, is viewed as the optimal solution for Linux Mint. By supporting its own branch, the Linux Mint developers are not constrained in implementing their ideas and can rapidly add changes, independent of the approval from the libAdwaita developers.
The LibAdwaita project is presented as supporting only the GNOME platform, which is why the developers of this library reject requests for modifications related to theme management integration and support for features absent in GNOME. The libAdwaita developers have also dismissed the idea of adding an extension similar to libGranite.
The problem is that the libAdwaita developers fundamentally refuse to integrate theme support, offering only basic GNOME-style theming. Due to the lack of theme support, applications based on libAdwaita always appear as GNOME applications rather than GTK applications, and do not blend well with the themes of other desktop environments.
Applications built with libAdapta, when launched in desktop environments that support theme selection, pick up theme settings and use corresponding interface elements. The libAdapta library checks the current GTK theme directory and, if a libadapta-* subdirectory exists, uses a different set of style files. If the subdirectory is absent, it falls back to the libAdwaita style set. For compatibility with libAdwaita, a separate header file is provided, allowing easy switching between libAdwaita and libAdapta without changes to the code.
It is worth noting that libAdwaita provides a set of components for styling the user interface in accordance with GNOME HIG (Human Interface Guidelines). The library includes ready-made widgets (lists, panels, editing blocks, buttons, tabs, search forms, dialog boxes, etc.) that align with the overall GNOME style. The library is designed to work with GTK4 and includes components from the Adwaita theme used in GNOME, which were extracted from GTK, allowing GTK developers to focus on core aspects while GNOME developers can more swiftly advance necessary styling changes without affecting GTK itself.
Source: opennet.ru
