Pokročilé nastavování stylů

Většina v této sekci je převzata (nebo je silně ovlivněna) manuálovými stránkami Fluxboxu 0.1.13. Obvykle mají manuálové stránky konečné slovo v této záležitosti, ale přesto může být tento dokument nápomocný začátečníkům.

K pochopení principu na jakém jsou založeny styly ve Fluxboxu je dobré alespoň něco málo tušit o tom, jak pracují X11 zdroje (resources).

X11 zdroje se skládají z klíče a hodnoty. Klíč se skládá z několika menších klíčů (někdy nazývaných jako potomci) odělených tečkou (.). Klíče mohou obsahovat znak hvězdička, které se používají k zastoupení různých hodnot na stejné pozici klíče (*). To je užitečné u stylů, které jsou založeny na jedné nebo dvou barvách.

Fluxbox Vám dovoluje změnit jeho tři hlavní části. Je to toolbar, menu a dekorace oken. Slit automaticky přebírá nastavení toolbaru, ale pokud je potřeba, může být změněn. Malé okýnko ukazující pozici okna v souřadnicích když přetahujete okno bere nastavení z lišty oken.

Zde je jednoduchý příklad k objasnění syntaxe:

Example 10-1. Styl hodin na toolbaru

    toolbar.clock.color:  green

Toto změní nastavení hodin toolbaru na zelenou. green. Další příklad:

Example 10-2. Styl menu

    menu*color: rgb:3/4/5

Toto změní barvu menu a všech jeho potomků na barvu rgb:3/4/5. K objasnění způsobu kódování barev se podívejte do manuálových stránek X11. Takže toto změní menu.title.color a menu.frame.color. A dále:

Example 10-3. Styl fontů písma

    *font: -b&h-lucida-medium-r-normal-*-*-140-*

Toto nastaví zdroje klíčů fontů najednou na tento font. K zjištění toho, jaké máte nainstalované fonty použijte programy jako xfontsel, gfontsel, or xlsfonts.

Co dělá Fluxbox tak úžasným je jeho schopnost renderovat textury za běhu. Popisy textur jsou přímo určeny klíči, takže to potom vypadá asi takto:

Example 10-4. Styl textury

    toolbar.clock:   Raised Gradient Diagonal Bevel1
    toolbar.clock.color: rgb:8/6/4
    toolbar.clock.colorTo: rgb:4/3/2

Nemějte obavy, ihned Vám vysvětlíme jak příkazy pracují. Popis textury se zkládá až z pěti polí, které můžou vypadat následovně:

Table 10-1. Příkazy textur

PříkazPopis
Flat / Raised / Sunken / Tiled

dává komponentám hladký, zvýšený nebo propadlý vzhled.

Propadlý účinkuje pouze na pixmapy aniž by měnil jejich velikost.

Gradient / Solidkreslí buď plný nebo vystouplý typ textury.
Horizontal / Vertical / Diagonal / Crossdiagonal / Pipecross / Elliptic / Rectangle / PyramidVybírá jednu z těchto textur. Tyto pracují jen pokud je nastaven typ textury Gradient.
Interlacedprokládá texturu (ztmavlý každý druhý řádek). Tato volba je nejvíce užívána společně s vystouplými texturami, ale počínaje Blackboxem verze 0.60.3 (a tím i ve všech verzích Fluxboxu) funguje i u plných textur.
Bevel1 / Bevel2druh zkosení hran. Bevel1 je přednastavený. Stínování je umístěno na okraji obrázku. Bevel2 je další možnost. Stínování je umístěno jeden bod dovnitř obrázku.

Kromě popisu textur je dostupná také volba ParentRelative, která dává komponentám stejný vzhled, jaký má jeho rodič.

Všechny vystouplé textury jsou složeny ze dvou barev: color a colorTo zdroje (resources). Pokud je textura Interlaced (prokládaná) v Solid módu, colorTo zdroj určuje prokládací barvu.

Kompletní seznam všech komponent a druhy hodnot, které mohou obsahovat, můžete najít na Appendix C.

Možná se Vám zdá seznam příliš obsáhlý, ale pamatujte, že když vytváříte svůj vlastní styl, můžete jednoduše nastavit spoustu hodnot pomocí jednoho příkazu, např.

Example 10-5. Typický krátký styl

    *color:             slategrey
    *colorTo:           darkslategrey
    *unfocus.color:     darkslategrey
    *unfocus.colorTo:   black
    *textColor:         white
    *unfocus.textColor: lightgrey
    *font:              lucidasans-10