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ě GNOME i KDE (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:
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 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/pixmaps/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í:
![]() Výchozí velikost |
![]() 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/gtkiconfactory.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.
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.