Újdonságok fejlesztők, rendszergazdák és disztribútorok számára

A GNOME 3.12 számos új funkciót és továbbfejlesztést tartalmaz a GNOME technológiákkal dolgozó fejlesztők számára.

Új GTK+ felületi elemek

A GTK+ eszközkészlet három új felületi elemet kapott a 3.12-ben:

  • GtkActionBar: új konténer, amely egy középre igazított gyermeket tartalmaz, például egy GtkHeaderBar-t. Ezt felületi elemek alján, a kijelölt tartalomhoz tartozó műveletek megjelenítéséhez lehet használni.

  • GtkPopover: ez az új felületi elem átmeneti nézetekhez használható, menük vagy párbeszédablakok alternatívájaként.

  • GtkFlowBox: ez a konténer a gyermekeit újratördelődő rácsként jeleníti meg, amely lehet vízszintes vagy függőleges tájolású.

Integrált értesítések API

A GNOME 3.12 egy új értesítési API-t tartalmaz. A GIO része és GNotification néven érhető el, az új API a libnotify utóda, így már nem kell ezt linkelni. (A GNotification tartalékként képes a org.freedesktop.Notifications D-Bus felület használatára.)

Az új API szépen integrálódik a GTK+-szal, és együttműködik a GApplication és GAction API-kkal. A libnotify számos képességét biztosítja, valamint néhány újat is, például az értesítések megmaradását az alkalmazás kilépése után is. Lehetővé teszi továbbá egy alkalmazás újraindítását, amikor a felhasználó aktivál egy értesítést.

További részletek a GNotification API használatáról a How Do I wiki oldalon találhatók.

Hatékony új folyamatindítási API

A 3.12 tartalmaz egy új, hatékony folyamatindítási API-t is. Az új API lehetővé teszi a gapplication parancssori segédprogram használatát alkalmazások indítására. Az alkalmazások utasíthatók fájlok megnyitására vagy műveletek aktiválására indításkor. Lehetőség van felsorolni az elérhető alkalmazásokat és műveleteket, és a parancssori alkalmazás támogatja a bash kiegészítést is.

A GApplication mostantól támogatja a parancssor kezelését, beleértve a kényelmes --gapplication-service kapcsolót.

Javított fejlesztői dokumentáció

A 3.12 rengeteg javítást tartalmaz a GTK+ API referencia dokumentációjához. A dokumentációs át lett strukturálva a logikusabb sorrend érdekében. Az összefoglaló részek az egyszerűbb olvasás érdekében egyszerűsítve lettek, és a felületi elemek képernyőképei mind frissítésre kerültek.

A dokumentáció jelölőnyelve is fejlődött számos programkönyvtárban. A GTK+, GLib, GDK-Pixbuf és Clutter mind át lett alakítva a Markdown használatára. Ez sokkal áttekinthetőbb megjelenést és forrás szintjén egyszerűbb karbantartást eredményez.

Végül minden dokumentáció formázása javult, amely vonzóbbá és egyszerűbben olvashatóvá teszi ezeket.

A Wayland elérhető tesztelésre

Nagyon sokat haladtunk a teljes Wayland integráció felé a 3.12-ben. Ez tartalmazza az új libinput programkönyvtár létrehozását, és új funkcionalitást a bejelentkezés- és munkamenet-kezeléshez. A Wayland iránt érdeklődő vagy a szoftvereiket Wayland környezetben tesztelni kívánó fejlesztők kipróbálhatják a legutóbbi fejlesztési eredményeket.

A gnome-shell Wayland alatti futtatásához adja ki a következő parancsot egy terminálban:

gnome-session --session=gnome-wayland

Lehetőség van egyedi alkalmazások Wayland alatti futtatására is a GDK_BACKEND megadásával. Futtassa a következő parancsot az alkalmazás_neve helyére a futtatandó alkalmazás végrehajtható fájljának nevét írva:

GDK_BACKEND=wayland alkalmazás_neve

Ha egy alkalmazás futtatása Wayland alatt meghiúsul, akkor megpróbál X11 alatt elindulni.

További részletek a GNOME Wayland alatti futtatásáról a GNOME Wayland wiki oldalán találhatók.

A Tracker frissítései

A Tracker, a keresőmotor, keresőeszköz és metaadat-tároló rendszer fejlesztések hosszú során esett át a 3.12-höz:

  • A Tracker kódjából létrejött a libmediaart nevű programkönyvtár a multimédiafájlokhoz tartozó grafikák kezelésére. A libmediaart lehetővé teszi a médiafájlokban tárolt grafikák gyorsítótárazását, és konzisztens módot biztosít a grafikák kikeresésére és a gyorsítótár méretének csökkentéséhez az előadók, albumok és médiaelemek esetén. (a libmediaart célja nem a bélyegképek előállítása.)

  • Egy másik új programkönyvtár, a libtracker-control a kereső adatbányászok kezelésére született meg.

  • Az új passzív kinyerési funkciók lehetővé teszik bizonyos metaadatok kinyerését (például kép tájolása) szignálok figyelésével erőforrások változásakor. Korábban az erőforrással kapcsolatos információk beszúrása egy lépésben történt. Ez a funkció azt jelenti, hogy a fájl adatai (azaz fájlnév, méret stb.) akkor is beszúrásra kerül, ha egyes metaadatok nem.

  • Mostantól lehetséges az RDF típusok priorizálása indexeléskor: ez lehetővé teszi az indexelés egyes helyzetekre hangolását.

  • A tracker:normalize() és tracker:unaccent() SPARQL függvények immár támogatottak.

  • Az új tracker-sparql --tree parancs megjeleníti az adatbázis ontológiáját. Ez segít a fejlesztőknek tiszta képet kapni az osztályhierarchiáról.

  • A kódolás felismerését mostantól az ICU-val rendelkező metaadatok is támogatják.

  • A Tracker tároló GraphUpdated szignálkésleltetése mostantól konfigurálható. Ezzel a szignállal kerülnek elküldésre az értesítések az adatbázis erőforrás-változásairól (például új fájl hozzáadása). Korábban a késleltetés mindig egy másodperc volt.

Grilo kiterjesztések Lua-ban

A Grilo médiafelfedezési keretrendszer mostantól lehetővé teszi az online médiaforrások hozzáadását a Lua hatékony, de egyszerű mintaillesztési képességeivel. További részleteket, beleértve példákat is, Bastien Nocera blogbejegyzésében talál.

Beérett kliensoldali dekorációk

A kliensoldali dekorációk lehetővé teszik az alkalmazásablakok számára funkciók átvételét az ablakkezelőtől. Ezek először a legutóbbi ciklusban jelentek meg az új GtkHeaderBar felületi elemmel. Azóta a GtkHeaderBar fejlesztése beérett. A felületi elem most már konzisztens magasságú, és az ablakok a fejlécsáv húzásával is mozgathatók érintőképernyős eszközökön. A fejlécsávok tartalmazhatnak alkalmazásmenüket, valamint a normál bezárás gombon kívül számos ablakvezérlőt is.

Továbbfejlesztett Python kötések

A GNOME Python kötései tovább fejlődtek a 3.12-ben:

  • A függvények Python doc sztringjei mostantól pontos hívásaláírásokat jelenítenek meg, beleértve az argumentum- és visszatérésitípus-információkat is.

  • Mostantól létezik egy implicit None alapértelmezés a záró függvényargumentumokhoz.

  • Mostantól minden visszahívás-összekapcsolási függvény elfogad változó számú felhasználói adatargumentumot.

  • Új demók mutatják be a CSS használatát GTK+-ban Pythonból.

  • A GObject.threads_init hívása már nem kötelező többszálú programozáshoz.

Ezen kívül számos memóriahasználati- és teljesítményjavítás történt.

Bővített portolhatóság

A portolhatóság a különböző UNIX operációs rendszerek között jelentősen javult a 3.12-ben. Több, mint 150 FreeBSD hibát jelentettek és javítottunk, és a tesztfordítások is rendszeresen futnak. A munka más operációs rendszerek esetén folyamatos. A GLib új, támogatott platformokra vonatkozó irányelvet kapott.

Ezekről az erőfeszítésekről további részletek Ryan Lortie blogbejegyzésében találhatók.

Más fejlesztések

További fejlesztések a fejlesztők és rendszergazdák számára a 3.12-ben:

  • A legtöbb GTK+ konténer mostantól hátteret is rajzol.

  • A modellalapú menük megadott feltételek alapján képesek elemeket elrejteni.

  • A GtkBox mostantól támogatja a középre igazított gyermeket, a GtkHeaderBar mintájára.

  • A magas DPI sűrűségű kijelzők támogatottá váltak a Clutterben, ugyanazon beállítás használatával, mint a GTK+ és a GNOME beállításdémon.