A GTK fejlesztői blog legújabb bejegyzése szerint a projekt hosszú évek után teljesen új alapokra helyezte az SVG-kezelést, ezzel egy régi hiányosságot pótolva. Bár a GTK gyakorlatilag a kezdetektől használja az SVG-formátumot a szimbolikus ikonokhoz, a kapcsolat sosem volt zökkenőmentes. A korábbi megoldás a librsvg könyvtárra támaszkodott, amelyet közvetve, a gdk-pixbufon keresztül használt a rendszer. Az ikonok így már korán raszterizálásra kerültek, ami megakadályozta az SVG egyik legfontosabb tulajdonságának, a korlátlan méretezhetőségnek a kihasználását. A GTK 3 idején ez még nem jelentett komoly gondot, de a GTK 4 korszakában, a jelenetgrafikonra épülő renderelés és a frakcionált skálázás megjelenésével már egyre égetőbbé vált a probléma.
Tartalomjegyzék

Saját SVG-értelmező és új megközelítés
A változás 2025 elején kezdődött, amikor Matthias Clasen, a Toolkit egyik fő fejlesztője, úgy döntött, hogy egyszerűsített SVG-értelmezőt ír a szimbolikus ikonokhoz használt korlátozott formátum kezelésére. A kísérlet gyors sikert hozott: az Adwaita ikonok közel 99%-át sikerült értelmezni, így az új megoldás a 4.20-ba már be is került. Bár a teljes lefedettséghez továbbra is szükség volt a librsvg-re, a fejlesztők gondoskodtak róla, hogy a Rust-függőség problémát okozó platformokon – például Androidon – alternatív, nem Rust-alapú ágat használjanak. A kézzel írt parser előnye, hogy nemcsak kitöltéseket, hanem körvonalrajzolást is támogat, és ezzel új lehetőségeket nyitott meg a szimbolikus ikonok számára.
Dinamikus ikonok és a GtkSvg megjelenése
A következő lépés az Apple SF Symbols rendszeréből merített inspirációra született: néhány egyedi attribútum bevezetésével lehetővé vált a dinamikus vonalvastagság, valamint az animált ikonok és átmenetek megvalósítása. Ezt az új megközelítést a fejlesztők GtkPathPaintable néven integrálták a 4.21-be, és egy gyors prototípus-szerkesztőt is készítettek hozzá, amelynek segítségével új, kísérletező stílusú ikonok születhettek.
Ahogy a nyár őszbe fordult, a munka új irányt vett: célul tűzték ki az SVG teljesebb támogatását, beleértve a csoportosítást és az animációkat is. A Gnome Toolkit renderelési infrastruktúrája már eleve tartalmazza az SVG-hez szükséges alapelemeket – transzformációkat, szűrőket, vágásokat, útvonalakat és gradiens effekteket –, így az integráció lehetségessé vált. Bár a megvalósítás nem volt könnyű, az eredmény mostanra megszületett: a GtkPathPaintable helyét átvette a GtkSvg, egy új, GdkPaintable-alapú komponens, amely az ikonokhoz leginkább releváns SVG-részhalmazt, beleértve az animációkat is, már natívan támogatja.
A fejlesztés továbbra is folyamatban van, de az első tesztek – többek között véletlenszerű Lottie-fájlok konvertálása – meglepően jó eredményeket hoztak. Ezzel a Gnome Toolkit új szintre emeli az ikonmegjelenítést: a statikus képek helyét fokozatosan átveszik a rugalmas, animált, mégis könnyen kezelhető vektorgrafikus elemek.
