Hlavní navigace

SVG témata v GNOME

18. 2. 2003
Doba čtení: 6 minut

Sdílet

Nainstalovali jste si právě nové GNOME2.2 a přemýšlíte, jak to udělat, aby váš desktop vypadal tak elegantně jako na všech těch screenshotech? Chcete nadále používat své oblíbené Gorilla téma a nevíte jak? Nebo máte starší GNOME a chcete také používat SVG témata? Pak čtěte dál.

Tento článek je zaměřen jak na uživatele GNOME2.2, které právě vyšlo, tak i na uživatele starších verzí (GNOME 2); sám používám toto SVG téma na vývojové verzi 2.1, uživatelé nového GNOME však jsou ve výhodě, nemusí instalovat knihovnu Librsvg, protože její aktuální verzi (2.2.3) již mají k dispozici.

Co je to SVG

SVG (scalable vector graphics) je formát definovaný konsorciem W3C, je založený na XML a slouží pro popis vektorových obrázků. V opensource světě je poměrně populární, podporuje ho kromě GNOMEKDE (které od verze 3.1 obsahuje jako výchozí SVG téma Crystal) nebo mozilla (přeložená s –enable-svg parametrem). Jak již z názvu formátu plyne, jeho nejzajímavější vlastností je škálovatelnost, tedy to, že při změnách velikosti neztrácí nic ze své kvality:

Tux

Větší tučňák se mi sem už nevejde :-), ale pokud se chcete přesvědčit, stáhněte si zdrojový soubor.

Pro zobrazování SVG obrázků v Gtk programech (a tedy i v GNOME) se používá knihovna Librsvg. Tato knihovna sice pracuje pouze s určitou podmnožinou SVG specifikace, ale to pro naše účely není omezující (SVG je velice komplexní formát, takže librsvg implementuje pouze jeho část zajímavou pro tvorbu ikon).

GNOME a témata

GNOME narozdíl od KDE nemá jediné ikonové téma, ale má dvě – jedno pro typy souborů (ikony reprezentující soubory, které vidíte v Nautilovi) a druhé pro widgety (ty, které vidíte např. v menu u jednotlivých položek nebo na toolbarech). Příčinou je to, že GNOME pro své widgety používá knihovnu GTK, která je sama o sobě „skinovatelná“. To není příliš velký problém, už delší dobu existuje projekt meta-témat (v GNOME2.2 již plně funkční) spojujích témata pro jednotlivé části desktopu, která k sobě logicky patří.

Pro úplnost – KDE používá v podstatě také dva druhy témat, stejnou funkci jako GTK u něj plní knihovna qt, ale uživatel je od tohoto faktu lépe odstíněn. Pro úspěšnou realizaci tohoto návodu potřebujete vědět, že existují GTK témata, o kterých se brzy dozvíte více.

Gorilla

Gorilla je velice povedené téma pro GTK/GNOME, jehož autorem je Jakub ‚jimmac‘ Steiner, který je dvorním tvůrcem GNOME ikon a s nímž jste se již na Rootovi mohli setkat. Nejčerstvější verzi tohoto tématu naleznete na GNOME CVS serveru v adresáři gorilla.

Protože jeden obrázek vydá za tisíc slov, bude nejlepší ukázat si, jak takové SVG téma vypadá:

Nautilus s Gorillou

Nautilus s Gorilla tématem jak pro GTK, tak pro soubory

Pokud se vám líbí, hned si ukážeme, jak ho nainstalovat.

Librsvg

Základním předpokladem pro používání SVG ikon je, jak jsem již uvedl výše, mít nainstalovanou knihovnu Librsvg. Tu můžete získat jako tar.bz2 archiv nebo na CVS (Concurrent Versions System – více o něm třeba v sérii článků CVS pro každého) pomocí příkazů:

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/librsvg
 login
cvs -z9 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/librsvg
  co librsvg

Po zadání prvního příkazu se vás program zeptát na heslo – žádné není, stiskněte prostě enter. Jak už jsem se zmiňoval, aktuální verze je 2.2.3, pokud si nejste jisti, jestli je vaše instalace aktuální, číslo své verze zjistíte pomocí příkazu:

pkg-config --modversion librsvg-2.0

Ke kompilaci knihovny ze zdrojových kódů použijte obligátní:

./configure ; make ; make install

a pokud máte CVS verzi, samozřejmě nejprve

sh autogen.sh

CVS verze knihovny vyžaduje gnome-common modul. Pro kompilaci nejnovější librsvg dále potřebujete: gdk_pixbuf ve verzi min. 1.3.7, libart alespoň 2.3.10, libxml >= 2.4.7 a další (které ale nejspíš máte, pokud používáte GNOME2). Všechny tyto knihovny jsou opět v dostatečných verzích součástí GNOME 2.2.

Důležité je, aby se vám nainstalovaly soubory (cesta může být opět trošku odlišná, závisí na verzi GTK):

/usr/lib/gtk-2.0/2.0.102/engines/libsvg.so
/usr/lib/gtk-2.0/2.0.102/loaders/svg_loader.so

Ty totiž zajišťují načítání SVG obrázků do GTK témat.

Ještě zkontrolujte, že soubor /etc/gtk-2.0/gdk-pixbuf.loaders odpovídá výstupu příkazu gdk-pixbuf-query-loaders, a hlavně, že osahuje záznam podobný tomuto:

"/usr/lib/gtk-2.0/2.0.102/loaders/svg_loader.so"
"svg" 0 "gtk20" "Scalable Vector Graphics"
"image/svg" "image/svg+xml" ""
"svg" ""
"<?xml" "" 50
"<svg" "" 100
"<!DOCTYPE svg" "" 100

Že máme librsvg funkční, můžeme ověřit pomocí programu rsvg, který funguje jako převaděč SVG obrázků na bitmapy, takže např.:

rsvg -x 2 -y 2 tests/Artwork.svg Artwork.png

vygeneruje soubor Artwork.png 2× zvětšený oproti původnímu Artwork.svg (Artwork.svg se nachází v adresáři tests zdrojové distribuce knihovny librsvg).

Gorilla téma pro GTK

Toto téma si můžete stáhnout buď jako součást modulu gnome-temes na GNOME CVS serveru, nebo jeho lokální kopii zde – stačí ji dekomprimovat do adresáře ~/.themes (resp. /usr/share/themes pro zpřístupnění všem uživatelům systému) a změnit téma příkazem:

gconftool-2 -t string -s
 /desktop/gnome/interface/gtk_theme Gorilla

případně editací souboru ~/.gtkrc-2.0.

Pozn.: místo gconftool-2 můžete použít GUI utilitu gconf-editor, kde ve stromové nabídce „desktop → gnome → interface“ naleznete klíč gtk_theme.

Gorilla téma pro GNOME (Nautilus)

Zde zdáleží, jakou verzi používáte – Nautilus během vývojové řady (aktuálně 2.1.6) prošel změnou formátu témat, takže pokud máte verzi 2.0.x, můžete použít Gorilla téma, které je již dlouhou dobu k dispozici (instaluje se do /usr/share/pix­maps/nautilus) – Nautilus totiž umí SVG ikony již poměrně dlouhou dobu, ale až nyní je tato podpora společná celému GNOME.

Novější verze Nautila načítají témata z adresáře /usr/share/icons – změna formátu, ač pro uživatele nepříjemná, má dobrý důvod. Tím je standardizace v rámci projektu freedesktop.org, důležitá zejména pro přibližování GNOME a KDE, takže v nejbližší budoucnosti se můžeme těšit na témata kompatibilní s oběma prostředími.

Zatím se ovšem budeme muset buď spokojit s tématy dodávanými spolu s GNOME2.2 (stáhnout si je můžete na ftp.gnome.org), nebo se smíříme s tím, že Gorilla je zatím převedená neúplně a obsahuje ikony pouze pro základní typy souborů.

Vývojovou verzi lze opět zístat buď na GNOME CVS serveru, nebo si ji stáhněte přímo z ROOTa a rozpakujte ji do adresáře /usr/share/icons. Nyní můžeme pomocí příkazu

gconftool-2 -t string -s
 /desktop/gnome/interface/icon_theme Gorilla

zvolit Gorilla téma i pro ikony v GNOME a Nautilovi.

Jak zvětšit ikony

Nejdříve si ukážeme, jak zvětšené ikony vlastně vypadají:

Tabulka č. 385
ikony - výchozí velikost
Výchozí velikost
ikony - hodně velké
Hodně velké

Pokud si stáhnete lokální verzi GTK tématu Gorilla, pak byste měli mít ikony už mírně zvětšené. Pokud máte téma z CVS, pak si otevřete soubor .themes/Gorilla/gtk-2.0/gtkrc

a na jeho začátek (před řádek style „default“) přidejte:

gtk-icon-sizes="gtk-menu=14,14:\
                gtk-button=24,24:\
                gtk-small-toolbar=24,24:\
                gtk-large-toolbar=36,36:\
                gtk-dnd=32,32:\
                gtk-dialog=48,48"

Toto jsou výchozí hodnoty – gtk-icon-sizes je jméno identifikátoru, který značí, že chcete změnit velikost ikon vykreslovaných knihovnou GTK. Jednotlivé typy ikon se pak oddělují dvojtečkou a zapisují se ve tvaru jméno = šířka, výška (mezery jsou ignorovány). Pokud máte zdrojové kódy knihovny GTK, pak základní definice těchto velikostí najdete v souboru gtk/gtkiconfac­tory.c ve funkci init_icon_sizes(). Do lokální kopie tématu jsem tento řádek již přidal, takže vám stačí jen změnit konkrétní hodnotu.

Nejviditelnější změnou je gtk-*-toolbar, neboť ten je přítomen téměř ve všech programech, i když zrovna neprohlížíte menu nebo nemáte otevřený žádný dialog.

Cloud23

Parametr gtk-icon-sizes funguje, i když nepoužíváte SVG ikony, ale zvětšené bitmapy nejsou příliš elegantní, navíc ne u všech lze měnit velikost. S gorillím tématem záleží pouze na vašem vkusu, jak velké ikony zvolíte, experimentování s optimálním nastavením ponechám na vás.

Pokud byste zatoužili prohlédnout si ikony, které máte (vaše programy) k dispozici v rámci GTK tématu, pak spusťte program gtk-demo a z nabídky si vyberte možnost stock item and icon browser.