>
Toto je nová dokumentace pro Fluxbox, správce oken pro X11. Byla vytvořena ze starší HTML dokumentace s cílem udělat ji snadno přizpůsobitelnou na různé vystupní formáty. Zdroj byl napsán v DocBooku 4.1, formát speciálně navržený pro dokumentace.
Dosud zde bylo několik tvůrců dokumentace k Fluxboxu..
Dokumenty, které nyní čtete, jsou většinou založeny na práci člověka jménem Rando
Christensen <rando@babblica.net>
nebo jím byly původně napsány, dále pak <klausman@users.sourceforge.net>
a několika dalšími kteří přispěli.
Pokud chybí nějaká položka, prosím upozorněte <editora>,
aby to napravil.
Otázky týkající se Fluxboxu samotného je lepší směřovat na mailové konference. Informace o žádostech o ně můžete najít na na oficiální stránce Fluxboxu.
Návrhy a překlad: Přijímám téměř všechny návrhy dobře napsané dokumentace pro cokoliv zde nezahrnuté, o čemž si lidé myslí že by mělo být přidáno; Jednoduše mi pošlete email na adresu uvedenou výše, pokud máte nějaké otázky o tom, jak můžete pomoci, nebo pokud máte nějakou dokumentaci, kterou byste rádi přidali.
Zdrojáky této dokumentace a různé převedené formáty jako HTML a PostScript jsou k dispozici na webu Fluxboxu. Pokud chcete použít jinou DTD nebo jiný výstupní formát, zdroják je váš kamarád, ačkoliv budete pravděpodobně potřebovat nějakou znalost DocBooku pro úpravu DTD. Pokud chcete převést zdrojový soubor do nějakého jiného formátu než toho, které poskytuje web Fluxboxu, balíček docbook2x by mohl být užitečný.
Fluxbox je jen další správce oken pro X. Je založen na kódu Blackboxu 0.61.1. Fluxbox vypadá jako Blackbox a používá styly, barvy, umísťování oken a podobné věci přesně jako Blackbox (100% tématická/stylová kompatibilita).
Tak jaký je potom rozdíl mezi Fluxboem a Blackboxem? Odpověd zní: JE JICH MNOHO! Zde je seznam vlastností, které již Fluxbox má, nebo na kterých se pracuje...
Implementované:
NAstavitelné taby u oken.
Podpora pro Antialiasování (Xft)
Podpora UTF-8
Iconbar (pro minimalizovaná/zikonizovaná okna)
Okení/Tabové automatické seskupování
Posouvání kolečka myši přepíná plochy
NAstavitelný titlebar (umístitelnost tlačítek, nová tlačítka atd.)
Podpora KDE a Gnome (včetně Gnome 2)
Podpora Extended Window Manager Hints (ewmh)
Nativně integrovaný keygrabber (podporuje emacsové posloupnosti kláves)
Volba Maximalizovat přes slit
Řazení dokových aplikací ve Slitu
Správa sezení (sesion)
Přichytávání oken
Nastavitelný toolbar
Další minoritní vlastnosti
Zdroják Fluxboxu může být stažen z hlavního webu Fluxboxu, http://fluxbox.sourceforge.net/. Většina Linuxových distribucí a ostatní svobodné Unixy také obsahují zdrojové a binární balíčky Fluxboxu. Pokud si nejste jisti, použijte balíčky z nejnovější verze vaší distribuce.
I když je Fluxbox velice snadno nastavitelný a použitelný, je zde šance, že se v nějakém bodě vynoří otázka nebo problém. Na mnohé se již bylo tázáno a mnohé bylo vyřešeno. Proto než začnete klást otázky do mail listů nebo na IRC kanálu Fluxboxu, prosím prohlédněte si FAQ, který obsahuje Appendix B.
Tuto sekci poskytl Jason Gillman Jr. aka "Ircaddict".
Mnoho distribucí poskytuje binární balíčky Fluxboxu (nebo v případě Gentoo a FreeBSD porty/ebuildy), které dělají instalaci Fluxboxu pěkně bezbolestnou. Ačkoliv existují důvody proč jej zkompilovat ze zdroje. Například nejnovější verze Fluxboxu nemusí být k dispozici jako balíček pro distribuci. Navíc může být žádoucí zkompilovat Fluxbox s jistou sadou parametrů pro kompilátor. Pokud chcete použít balíčky ditribuce, podívejte se na dokumentaci distribuce. Pro některé distribuce poskytuje zdrojové i binární balíčky web Fluxboxu.
Účel toho dokumentu je pomoci lidem kteří jsou nezkušení v kompilaci do okenního systému X11 (nebo Linuxu obecně) a instalaci správce oken Flukbox.
První věc, kterou budete chtít udělat, je jít na stahovací stránku a stáhnout tarball se zdrojem (přípona je .tar.gz).
Čas od času jsou ulovněny speciální vývojářské vydání. Ty poskytují ukázku věcí které přijdou, nové vlastnosti apod. Díky jejich vývojové kvalitě někdy postrádají funkčnost nebo stabilitu. Vyzkoušejte je pokud chcete drsně Fluxboxovat - se všemi výhodami a nebezpečími. Návody jak je získat mohou být nalezeny v sekci News na oficiálním webu Fluxboxu.
Tak, nyní když máte zdrojový tarball, musíte jej rozbalit. To můžete udělat spuštěním následujícího příkazu, a nahrazením jména souboru tím, který jste si stáhli:
$ tar xzvf fluxbox-0.1.12.tar.gz
To vypíše seznam souborů které byly vybaleny. Až to uděláte, přepňěte se do adresáře který byl vytvořen (bude to něco jako fluxbox-0.1.12/, ale to záleží na verzi). Další krok je konfigurace a překlad zdroje Fluxboxu. Spuštěním konfigurace můžete umožnit nebo zakázat některé vlastnosti Fluxboxu. Pro většinu lidí budoui výchozí nastavení ok. Pokud chcete aby slit Fluxboxu spolupracoval s panelovými ikonami KDE, měli byste přidat parametr --enable-kde. Pro zjištění ostatních parametrů poskytovaných konfiguračním skriptem použijte parametr --help. Pokud nehccete podporu KDE, toto by mělo stačit:
$ ./configure
$ makePo kompilaci Fluxboxu se staňte rootem a spusťte:
# make install
Gratulujeme, nyní máte zkompilovaný a nainstalovaný Fluxbox.
Je sice hezké mít to zkompilované a nainstalované, ale jaký to má užitek když to nemůžete spustit?
Obecně jsou dvě odlišné cesty jak souštět X11 (a tak Fluxbox). Tradiční cesta je použít příkaz startx. Jiná cesta je použít grafický login manager (někdy nazývaný "display manager"). Nejběžnější display manager je xdm, který je součástí distribuce XFree86. Display manager poskytovaný Gnomem se jmenuje gdm, ten z KDE je jmenuje kdm.
Pokud je X11 spušteno dříve zmíněnou cestou (pomocí startx), pak je důležitý soubor jménem .xinitrc, který sídlí ve vašem domovském adresáři. V případě že startujete pomocí display manageru, je to .xsession, který je na stejném místě.
Další krok je najít binárku Fluxboxu. Pro většinu lidí to je /usr/local/bin/fluxbox. Nyní potřebuje upravit (nebo vytvořit) soubor o kterém jsme mluvily. Jen přidejte následující řádek na konec souboru:
exec /usr/local/bin/fluxbox
Změňte /usr/local/bin/fluxbox na cestu kde je binárka Fluxboxu, přičemž uvedená cesta je výchozí při kompilaci ze zdroje. Až to bude hotové, uložte to a zavřete editor, ať už jste použily k úpravám jakýkoliv. Nyní je potřeba spustit následující příkaz, pokud používáte startx:
$ chmod 700 .xinitrc
V případě .xsession toto není potřeba. V obou případech byste měli vytvořit adresář, kde má Fluxbox uloženou svoji konfiguraci:
$ mkdir .fluxbox
Pokud ho nevytvoříte, tak při vypnutí Fluxboxu a restartu přijdete o veškerá vaše nastavení (adresář se naneštěstí sám nevytváří).
Pokud potřebujete pomoc, jen skočte na nápovědní fórum Fluxboxu apoložte otázku, jsem si jist že někdo bude ochotný a pomůže vám. Můžete také klást otázky na uživatelský mailing list Fluxboxu. Odkaz na něj můžete najít na stránkách Fluxboxu. Jako poslední poznámku doporučuji vzít soubory init, menu, a titlebar z adresáře /usr/local/share/fluxbox a zkopírovat je do .fluxbox/ ve vašem domovském adresáři.
Fluxbox přichází se sadou nástrojů, které činí život trochu snadnější nebo posyktují parádní schopnosti. Implicitně jsou nainstalovány na stejné místo jako binárka fluxbox, což je /usr/local/bin, pokus jste nepoužily jiný prefix během konfigurace. Většina distribucí také používá jiné umístění, takže pokud jste instalovaly binární balíčky, můžete je najít v /usr/bin.
fbrun je v základu obdoba dialogu "Run..." z jiných desktopových prostředích. To znamená, že to je snadný způsob jak spustit program který není obsažen v nabídce (nebo potřebuje speciální sadu parametrů pro zavolání).
Jiný způsob jak může být fbrun užitečný, je je zavolat jej z menu s přednačtenou příkazovou řádkou, kterou jen upravíte a spustíte. Příkladem může být ssh-čkování se na hosta s dlouhým názvem se spustou parametrů, kde se mění jen jeden ze všech. Pro tento případ přidejte položku pro fbrun do vašeho menu obsahující jméno hosta a parametry. Pokud použijete zmíněnou položku, můžete upravit řádku s parametry a pak ji spustit.
fbrun má různé parametry:
-font [jméno písma] Písmo textu -title [jméno titulku] Nastaví titulek -text [text] Textový vstup -w [šířka] Šířka okna v pixelech -h [výška] Výška okna v pixelech -display [display string] Jméno displeje -pos [x] [y] Pozice okna v pixelech -fg [barva] Barva textu -bg [barva] Barva pozadí -a Antialias -hf [soubor s historií] Jaký soubor s historií načíst (~/.fluxbox/history je výchozí) -help Zobrazí tuto nápovědu
Většina těchto parametrů hovoří sama za sebe. Parametry -text a -hf možná potřebují určité vysvětlení. Dřívě zmíněný je použit k nastavení přednačteného (upravitelného) textu uvnitř okna fbrun. Pokud chcete použít více argumentů (jako ssh -X -f), ujistěte se že použijete uvozovky:
fbrun -text "ssh -X -f"
Parametr-hf nastavuje soubor s historií, což je místo kde fbrun udržuje svou "paměť" použitých příkazů (jako to dělá Bash). Normálně nepotřebujete tento parametr, potom je použito výchozí místo. Může být užitečné mít více položek fbrun v menu a udržovat oddělené historie pro každou z nich.
(Citace z :http://fluxspace.sourceforge.net):
Fluxspace mísí správu oken Fluxboxu s novými schopnostmi správy desktopu. Využívá existujících komponent a sílu Pythonu na vytvoření flexibilního desktopového prostřebí okolo Fluxboxu a ostatních lehkých správců oken.
Přidává jednotlivým pracovním plochám ikony and panely integrací nástrojů jako Rox Filer a Idesk.
Dekoruje každou pracovní plochu jinou tapetou.
Spravuje programy po spuštění.
Automaticky startuje a zastavuje aplety podle toho jake se přepínáte mezi plochami, umožňujíc tak každé ploše mít unikátní sadu nástrojů a apletů.
Desktop pager pomáhá při práci s více než jednou plochou. Zobrazováním ploch v malém okně a umožňujíc okna přetahovat mezi plochami. Pager není vyžadován pro práci s více plochami, správu ploch dělá správce oken, jméno plochy a obsah můžete vidět v toolbaru a okna mohou být poslána na jiné plochy z nabídky titulku okna, nebo nastavena v souboru aplikace.
Ale pagery poskytují lepší nadhled, některé ukazují pouze rámy oken, jiné obrázky obsahu oken nebo ikony běžících aplikací.
Fluxboxové taby nejsou nijak novou myšlenkou. Implementace je jako ta v spráci oken PWM. Způsob jak to pracuje: Více oken je sloučeno dohromady a sdílí stejnou geometrii- mají stejnou velikost, přesně stejnou pozici a pohyb jednoho z oken způsobý pohyb všech. Uvažujte o nich jako o kupě papírů. Taby jsou jako ty malé plastové záložky, které přilepíte na jednotlivé stránky, aby bylo nalistování každé stránky jednoduché a rychlé.
Ve verzích do 0.1.14 jsou taby připevněny k rámu okna, o 0.9.x jsou taby součástí titulku okna.
Ta je přesně jak taby ve Fluxboxu fungují. Jednoduše výberte požadovaný tabu toho okna které chcete a to okno vyskočí navrch té kupy papírů. Nyní si to zkuste.
První věc, kterou nezapomeňte, je že všechny operace s taby používají třetí (prostřední) tlačítko myši. Tak pro začátek: vyberte dvě okna které chcete spojit dohromady. Klepňete třetím tlačítkem na titulek prvního a přetáhněte jej na titulek druhého. Gratulujeme, jsou spojeny dohromady! Nyní můžete používat taby pro přepínání se mezi okny.
Odstranění tabů se dělá stejně. Klepněte třetím tlačítkem na spojené taby a přetáhněte je někam pryč.
"Ale to mi připadá nešikovné přetahovat tab na jiný malý tab."
Pak máme dobré zprávy. Z konfiguračního menu Fluxboxu vyberte nastavení 'Sloppy Window Grouping'. To vám umožní přetahovat vaše taby na cílové okno pro provedení sloučení.
"To je skvělé, ale já chci jen připojit program X!"
Jsou dva různé způsoby jak tohoto docílit, záleží na tom jak mnoho programů chcete mít v tabech. Můžete zapmout nebo vypnout tabs jednotlivým oknům. (Klepněte pravým tlačítkem na název okna, klepněte na položku 'tab'), nebo je můžete vypnout globálně pomocí 'Configuration'->'Use Tabs'. Pojejich vypnutí můžete zapínat taby jednotlivým oknům tak, jak bylo popsáno výše.
"Nemám rád taby, jak je mohu vypnout?"
Zajisté. Vyberte 'Use Tabs' z konfigurační nabídky Fluxboxu. Protože to je přepínač, tak pokud ho znova vyberete, taby opět zapnete. Také máte paramtr v konfiguračním souboru init pro tuto funkci:
session.tabs: true
Vypnutí tabů se provede nahrazením true za false.
Do verze 0.1.14 byly taby připevněny k oknu, od verze 0.9.x jsou taby začleněny do titulku na rámu okna.
(0.1.14) V nabídce nastavení je položka nazvaná 'Tab Placement'. Vypisuje místa u oken, na kterých mohou být taby umístěny. Toto je velice jednoduché, takže jediná věc o které se opravdu musíme zmínit, je nabídka 'Relative'. Toto nastavení to dělá tak, že celková délka všech tabů v okně odpovídá délce okna. Pokud je v okně jeden tab, pak je dlouhý jako okno. Pokud jsou tam dva taby, každý z nich má 50% délky. Toto nastavení často dělá vzhled tabů decentní a je velmi populární.
Někdy chceme aby aplikace byly sloučeny dohromady když je spustíme. To je logicky nazýváno "Autogrouping". Tato část vysvětluje jak to funguje. Jako první věc potřebujete verzi Fluxboxu 0.1.11 nebo vyšší. Autogrouping se staršími verzemi nefunguje. Potom potřebujete vytvořit soubor ~/.fluxbox/groups, pokud tam již není. Potom upravte soubor ~/.fluxbox/init a přidejte tuto řádku (nebo ji změňte pokud tam již je a vypadá jinak):
session.groupFile: ~/.fluxbox/groups
Tak, všechno je na svém místě. Teď jednoduše vyplňte soubor se skupinami.
Jednoduše jedna skupina na jednu řádku. Napište jméno instance programů, které chcete spojovat. Příklad:
toto vytvoří dvě skupiny, jednu s netscape a nedit a druhou s xterm. Nové okno se pouze přižadí k ostatním oknům na stejnou plochu a k poslednímu oknu, které bylo navrchu. Pro získání jména pro zapsání do souboru skupin spusťte:
xprop |awk '/WM_CLASS/{print $4}'a klepněte na okno. Pokud to nic nezobrazí, zkuste změnit $4 na $3.
Toto vám umožní vyvolat hlavní menu. Pokud klepnete pravým tlačítkem na tab a vyberete si nějakou aplikaci, naběhne pak jako další tab v tomto okně.
Note: Sdužování tímto způsobem (z tabů) může kolidovat s normalním automatickým slučováním.
Máme celou sekci (Chapter 10) věnovanou vzhledu tabů v tématech. Můžete se na ní podívat, pokud se zajímáte o změnu vzhledu tabů ve vašem tématu. (Taby v tématech budou normálně stejné jako vzhled nadpisů oken; toto někdy chtějí lidé změnit.)
Keygrabber funguje podobně jako bbkeys, což je výborný nástroj, ale má některá omezení (a licence nebyla kompatibilní), ale s úplně novou syntaxí pro konfigurační soubor a spoustou nových vlastností, což dělá Fluxbox ještě mnohem lepší.
Zaprvé, keygrabber podporuje posloupnosti kláves (jako Emacs)... takže můžete například mít: Mod1 + M + Mod1 + F pro přepnutí se na další plochu (ne každý každý by měl použít tuto konkrétní posloupnost kláves.)
A pokud jste napsali část posloupnosti, ale rozhodli se nepokračovat (přerušit), tak můžete napsat jinou posloupnost kláves (kterou jste nastavili ve vašem souboru keys) pro přerušení (pomocí: AbortChain).
Jako dodatek k tomuto: můžete také změnit posloupnost kláves na tu pro přepnutí se mezi okny sloučenými do tabů/skupin (pomocí: NextTab a PrevTab).
Je možné spustit více příkazů pro jednu klávesovou zkratku. Příkazy budou prováděny souběžně.
Konečně, pro vaše pohodlí jsme (nebo přesněji vlaad a tarzeau) jsme vás vybavili dvěma skripty (oba dělají to samé) pro převod konfiguračního souboru bbkeys do konfiguračního souboru Fluxboxu. (použití skriptů je v popsáno v nich). Stažení: convertkeys nebo convertkeys2.
Example 5-2. Soubor s klávesovými zkratkami
Mod1 Tab :NextWindow
Mod1 F1 :Workspace 1
Mod1 F2 :Workspace 2
Mod1 F3 :Workspace 3
Mod1 F4 :Workspace 4
Control n Mod1 n :NextTabTak, jak můžete vidět, jako první je modifikační klávesa, potom normální klávesa (potom znovu modifikační klávesa a normální klávesa, pokud chcete mít delší sekvenci) a dvojtečka a za ní událost.
Pro seznam použitelných událostí čtěte trochu dále v tomto dokumentu.
A proč je tohle všechno pro vás užitečné? Nyní můžete například ovládat xmms:
Pokud máte nějaké dodatečné klávesy (multimediální klávesy), můžete tímto způsobem ovládat xmms tímto způsobem, pokud máte tyto klávesy správně nastaveny v XFree86:
Example 5-4. Multimediální klávesy pro XMMS
None XF86AudioPlay :ExecCommand xmms -u
None XF86AudioStop :ExecCommand xmms -sMěl bych říct, abyste si přečetli xmms --help pro více informací, to možná právě teď děláte...
Možná se nyní ptáte jak zjistit jména kláves. Spusťte xev, posuňte kurzor myši na nově otevřené okno a stiskněte klávesu a uvidíte co to o ní řekne. Zde je příklad po stisknutí šipky doprava:
Example 5-5. výstup xev pro šipku doprava
KeyPress event, serial 18, synthetic NO, window 0x2c00001,
root 0x60, subw 0x0, time 3745737930, (373,380), root:(504,526),
state 0x10, keycode 102 (keysym 0xff53, Right), same_screen YES,
XLookupString gives 0 characters: ""Důležitou hodnotou je jméno klávesy, což je to uvnitř závorky, společně s keysym. V tomto příkladu to je (keysym 0xff53, Right). Takže jméno klávesy je Right.
Pro vaše pohodlí jsou tu některé speciální klávesy. Nezapomeňte, že je xev zobrazí okamžitě jakmile je zmačknete (ne jako modifikační klávesy pro ostatní klávesy).
Zde jsou události, které Fluxbox v současnosti nabízí. Zahrnují většinu akcí, které chce ovládat klávesovými zkratkami. Nezapomeňte že v souboru kláves by měl být poslední znak před událostí :.
Události rozlišují malá a velká písmena.
Table 5-1. Navigace
| Událost | Výsledek |
|---|---|
| Workspace | Jdi na plochu xy. Použijte :Workspace 1, :Workspace 2, apod. |
| NextTab | Přepne na další tab ve skupině. |
| PrevTab | Přepne na předchozí tab ve skupině. |
| NextWindow N | Jdi na další Okno. Popisuje Poznámka 1. |
| PrevWindow N | Jdi na předchozí okno. Opět popisuje Poznámka 1. |
| NextWorkspace | Přejde na další plochu. |
| PrevWorkspace | Přejde na předchozí plochu. |
| NextGroup, PrevGroup | Jdi na další/předchozí okno ve skupině. |
| LeftWorkspace | Stejné jako PrevWorkspace. |
| RightWorkspace | Stejné jako NextWorkspace. |
1. NextWindow / PrevWindow: NextWindow/PrevWindow má číselný argument, který je trochu komplikovanější, než aby byl vysvětlen v předchozí tabulce. Tak tedy jak to funguje:
Celočíselný parametr, který určuje nastavení z následující tabulky a potom ORed:
Hodnota Význam 1 Přeskoč lower taby (používej skupinu tabů jako jedno okno). 2 Přeskoč přilepená (stick) okna. 4 Přeskoč zabalená (shade) okna. Tady je výčet hodnot parametrů, které oceníte. Výsledek je parametr pro NextWindow/PrevWindow. Nebo můžete použít hodnotu z této tabulky:
Table 5-2. Operace s okny
| Událost | Výsledek |
|---|---|
| Close | Zavře okno. |
| KillWindow | Obdoba zavolání xkill a klepnutí na okno. |
| Minimize | Také známé jako "iconify". Zminimalizuje okno. |
| ShadeWindow | Dá okno do 'zabaleného' stavu, nebo ho obnoví z 'zabaleného' stavu. |
| StickWindow | Přepíná 'přilepenost' okna. |
| ToggleDecor | Přepíná zda současné okno má či nemá rám, tlačítka, a nadpis. |
| Raise | Vyzdvihne okno 'navrch', objeví se okny které ho překrývají. |
| Lower | Opak Raise. |
| NextTab, PrevTab | Aktivuj další, předchozí tab. |
| MoveTabLeft, MoveTabRight | Posune tab o n tabů doleva/doprava. |
| DetachClient | Odpojí klienta ze skupiny tabů. |
Table 5-3. Velikosti oken
| Událost | Výsledek |
|---|---|
| HorizontalIncrement | Rozšíří okno o jednu jednotku (Vysvětluje Poznámka 2). |
| HorizontalDecrement | Opak k HorizontalIncrement |
| VerticalIncrement | Zvýší výšku okna o jednu jednotku (Vysvětluje Poznámka 2). |
| VerticalDecrement | Opak VerticalIncrement |
| MaximizeHorizontal | Horizontální maximalizace okna. |
| MaximizeVertical | Vertikální maximalizace okna. |
| MaximizeWindow | Maximalizace okna. |
| Resize | Změnit velikost okna o konkrétní deltu, například změna o -8 -8. |
| ResizeHorizontal | Pouze horizontální změna. |
| ResizeVertical | Pouze vertikální změna. |
| ArrangeWindows | Magicky rozmístit okna. |
| ShowDesktop | Minimalizace všech oken. |
2. HorizontalIncrement / HorizontalDecrement / VerticalIncrement / VerticalDecrement: Mluvíme o zde "jedné jednotce", když popisujeme změnu velikosti. Tady v tomto případě to odpovídá xterm/aterm/Eterm změnám, místo změny o jeden pixel. Přibyde místa o velikosti jednoho znaku.
U ostatních programů by se měla měnit velikost o jeden pixel.
Table 5-4. Pohyb s okny
| Událost | Výsledek |
|---|---|
| SendToWorkspace | Pošle aktuální okno na definovanou plochu. Použijte :SendToWorkspace 1 |
| Move | Posun o delta-x delta-y. |
| MoveLeft | Posun doleva. |
| MoveRight | Posun doprava. |
| MoveUp | Posun nahoru. |
| MoveDown | Podun dolu. |
Table 5-5. Různé
| Událost | Výsledek |
|---|---|
| AbortKeychain | Zruší zadávání kláves, zejména užitečné při víceřetězových klávesových zkratkých. |
| ExecCommand | Vykonej příkaz. Například :ExecCommand xmms -t. |
| RootMenu | Zobrazit hlavní nabídku. |
| WorkSpaceMenu | Zobrazit Workspace Menu. |
| Restart | Restartovat Fluxbox. |
| Reconfigure | Znovunačíst konfiguraci Fluxboxu. Např. pokud byl změněn soubor keys, avšak init a slitlist by měly být zapsány před načtením. |
| SetStyle | Načte zadaný soubor. |
| SetWorkspaceName | Nastaví jméno plochy. |
| SaveRC | Zapíše soubory. |
| Quit | Vypne Fluxbox. |
Fluxbox, stejně jako Blackbox, má pro tapety dvě utility - Ve skutečnosti mají stejná jména jako mají v Blackboxu: bsetroot a bsetbg. Podívejme se jak pracují.
bsetroot je ekvivalent xsetroot. Může nastavovat tapety, pokud jsou jednoduché, jako jedobarevné pozadí. bsetroot může také nastavit barevné přechody.
bsetbg je program vyšší úrovně. Je to v podstatě obal pro jiné utility, které umí nastavit pozadí, jako je wmsetbg, Esetroot, program display z ImageMagick, atd. Pokud je spuštěn poprvé, vytvoří konfigurační soubor ~/.fluxbox/bsetbg, který nastaví který program to může použít. Kdykoliv to můžete upravit a vybrat si který použít. Pro použití 'transparentních' aplikací, jako je xchat a Eterm, byste měli použít wmsetbg nebo Esetroot.
Jedna z nevýhod kterou Blackbox má je, že pozadí totálně závislé na tématu. Kdykoliv změníte téma, změníte také pozadí na to, které určuje to které téma. Mnoho lidí nemá rádo toto chování. Takže Fluxbox má způsob jak to napravit. Do souboru ~/.fluxbox/init přidejte rádku jako je tato:
session.screen0.rootCommand: bsetbg -f ~/backgrounds/zimdib_dark.png
A cokoliv jste tam nastavili bude vaše pozadí, nezávisle na tom co je nastaveno v tématu.
Jedna z nejčastěji kladených otázek je "Co to je slit?" Když byl tento dokument napsán, tak jsem ve FAQ vytvořil odkaz na tuto sekci, za účelem zastavení kladení otázek na #fluxbox desekrát za den, a skončit mýtus o Slitu, že je to jiné jméno pro Toolbar.
Slit je jedna z mnoha částí Fluxboxu, které zdědil z Blackboxu. Je navržen pro běh dokových aplikací (apletů) WindowMakeru, (vše co běží v tomto módu, který se jmenuje 'withdrawn' nebo (méně často) 'swallowed'). Takové aplikace často mají parametr-w, ale některé běží automaticky v módu withdrawn.
Jako první věc se musíte ujistit, že toto je zakompilováno ve vaší kopii Fluxboxu. Obecně lze předpokládat že ano. Pokud si vzpomínám, všechny balíčky pro různé distribuce toto mají. Pokud si myslíte, že vám bude bez toho lépe, můžete to zakázat během kompilace. Ačkoliv nepoužitý slit nezabírá prostor obrazovky a zabere jen velmi málo paměti, takže obvykle není nutné to zakázat, pokud to nezasahuje nějaký jiný software který používáte.
Jinak můžete spustit jakoukoliv 'dokovou' aplikaci. (Také známé jako běžet v módu 'withdrawn'). Jako příklad, xmms přichází s aplikací wmxmms. Jednoduše spusťte wmxmms &, a ono se to objeví ve slitu. Jak jsem se dříve zmínil, některé aplikace (například gkrellm) potřebují parametr -w aby se spustily ve Slitu.
Pro začátek je nejlepší Dockapp warehouse. Tam je k dispozici velké skladiště různých apletů. Nemluvě o tom že můžete prohledat Freshmeat, nebo prohledat vaši distribuci.
Stránka bbtools nabízí také nějaké utility pro Blackbox/Fluxbox, ze kterých může spousta běžet ve slitu.
Pokud máte zapnutou podporu pro KDE, aplety KDE se budou objevovat ve slitu.
Dockapps.Org je nový web exklusivně věnovaný apletům.
Samozřejmě. Jednoduše klepnete pravým tlačítkem myši na viditelnou část slitu a vyberete si z nabídky. Většina nastavení je stejná jako u Taskbaru. Jediná věc, která není je Direction. Váš slit může běžet buď Horizontálně nebo Vertikálně.
Také tam je položkaMaximize Over Slit; to umožní maximalizovaným oknům překrývat slit.
Ve Fluxboxu 0.1.10 a novějším to je možné, a to použitím souboru slitlist. Tady jsou nějaké instrukce jak to použít.
Aktuální pořadí apletlů je zapsáno v souboru, jako výchozí je to ~/.fluxbox/slitlist. Když se načítají aplety do slitu, pokusí se udržet předchozí pořadí, pomocí jmen předtím spuštěných apletů.
Jednoduchý způsob jak nastavit pořadí ve slitu způsobem jakým chcete je:
Řazení apletů
Spusťte Fluxbox bez přednačtených apletů.
Spusťte aplety individuálně v tom pořadí v jakém je chcete mít.
Znovu přidejte aplety do vašeho startovního skriptu, například .xinitrc nebo .xsession. Zde nehraje pořadí roli.
Toto pořadí je jako výchozí uloženo do ~/.fluxbox/slitlist a bude spravováno v budoucích sessions Fluxboxu.
Máte možnost si ručně upravit soubor slitlist. Je to jednoduchý seznam jmen oken, jedna řádka na aplet. Tento soubor by neměl být přepisovám za běhu Fluxboxu. Jinak by úpravy mohly být přepsány.
Máte také možnost vybrat si jinou cestu pro soubor s řazení ve slitu. Následující příklad souboru init mění položku s cestou k souboru:
Není žádné nastavení pro úplné zakázání řazení. Autor patche nevidí žádné využití pro svévolné nebo náhodné řazení apletů.
Toolbar je malá plocha pro zobrazování informací, jako je čas, nebo tlačítek běžících aplikací.
Je nastaven přes init a style soubory. Init nastavení se obvykle mění přes menu toolbaru.
Toolbar můžete vypnout(nezobrazovat) nastavením session.screen0.toolbar.visible: false v souoru init.
Zobrazované pomůcky můžete nastavit v resource souboru, obvykle .fluxbox/init, pomocí záznamu toolbar.tools.
Možné pomůcky: workspacename, prevworkspace, nextworkspace, iconbar, systemtray, prevwindow, nextwindow, clockDélku, průhlednost a vrstvu toolbaru lze nastavit přes menu toolbaru. To se zobrazí po kliknutí pravým tlačítkem na hodiny, nebo zobrazovač pracovní plochy na toolbaru.
Iconbar může být nastaven pro různé zobrazování otevřených/ikonifikovaných oken : None, Icons from all workspaces, Workspace Icons, all windows from Workspace, All Windows from all workspaces.
Vzhled toobaru je definován v souboru stylů.
Tak, Fluxbox je nainstalován a při kliku pravým myšítkem na plochu na vás vybafne to mocné menu - spouštěč aplikací. V případě, že si ho upravíte dle svých potřeb a přaní, je to opravdu užitečná věc. Účelem tohoto dokumentu je vám v tom pomoct.
Pro začátek existuje pěkná utilita dodávaná s Fluxboxem - fluxbox-generate_menu. Jejím úkolem je procházet cesty různých často instalovaných programů, např. internetových prohlížečů a terminálových emulátorů, ve vašem systému a stvořit soubor menu. fluxbox-generate_menu detailně popisuje the Section called fluxbox-generate_menu in Chapter 3.
Fluxbox menu je standardně nastaveno na ~/.fluxbox/menu. Toto nastavení můžete samozřejmě změnit, a to ve vašem souboru init. Tady je příklad takového řádku :
Jednoduše změňte ~/.fluxbox/menu chcete-li použít jiný menu soubor. Standardní struktura by však měla většině lidí vyhovovat.
Fluxbox menu je pouze textový soubor, který umožňuje vytváření podadřesářů, spouštění aplikací, ovládání pracovních ploch, nastavení Fluxboxu a opustit X. Menu rozeznává následující příkazy :
[begin] (NadpisMenu)
[submenu] (NazevPodmenu) {NadpisPodmenu}
[exec] (NazevAplikace) {/cesta/k/programu}
[include] (/cesta/k/programu)
[end]
[nop] (--------)
[workspaces] (NazevPodmenu)
[stylesdir] (/cesta/k/adresari/se/styly)
[config] (NastaveniFluxboxu)
[reconfigure] (Prenastaveni)
[restart] (Restart)
[exit] (Exit)Většina příkazu mluví sama za sebe. Položky s velkými písmeny jsou slova, která se zobrazí v menu. Rozeberu hlouběji význam jednotlivých položek. Jen tak mimochodem, neexistuje žádný limit v sobě vnořených podmenu. Snad jen ten čistě praktický...
[nop] - umožňuje do menu vložit text, nebo prázdný řádek, který nebude nic spouštět, bude v menu sloužit čistě jako oddělovač.
[reconfigure] - použijete-li menu ke změně nastavení Fluxboxu, změny budou ztraceny po odchodu z Fluxboxu. Pro uložení je třeba změny zapsat do souboru init, čehož docílíte kliknutím na položku reconfigure po provedení požadovaných změn.
[restart] - jen aby bylo jasno, restart restartuje pouze Fluxbox, nikoliv celý systém.
Example 9-2. menu
# Fluxbox menu file
[begin] (Fluxbox)
[exec] (rxvt) {rxvt -ls}
[exec] (netscape) {netscape -install}
[exec] (The GIMP) {gimp}
[exec] (XV) {xv}
[exec] (Vim) {rxvt -geometry 132x60 -name VIM -e screen vim}
[exec] (Mutt) {rxvt -name mutt -e mutt}
[submenu] (mozilla)
[exec] (browser) {mozilla -browser}
[exec] (news) {mozilla -news}
[exec] (mail) {mozilla -mail}
[exec] (edit) {mozilla -edit}
[exec] (compose) {mozilla -compose}
[end]
[submenu] (Startup)
[exec] (gkrellm) {gkrellm -w}
[exec] (xmms) {xmms -p}
[exec] (galeon) {galeon -s}
[exec] (kdeinit) {kdeinit}
[end]
[submenu] (Window Manager)
[exec] (Edit Menus) {nedit ~/.fluxbox/menu}
[submenu] (Style) {Which Style?}
[stylesdir] (~/.fluxbox/styles)
[stylesmenu] (Fluxbox Styles) {/usr/local/share/fluxbox/styles}
[end]
[config] (Config Options)
[reconfig] (Reconfigure)
[restart] (Restart)
[end]
[exit] (Log Out)
[end]
# end of menu filepřípadně prozkoumejte soubor menu, který je dodáván s Fluxboxem.
Touto sekcí přispěl Justin Rebelo alias "demerol".
Styl v podstatě určuje vzhled Fluxboxu. Je to prostý ASCII textový soubor, podle kterého Fluxbox vygeneruje zevnějšek různých částí okenního manažeru. Soubor je obvykle uložen v ~/.fluxbox/styles a v globálním share adresáři Fluxboxu, jehož umístění závisí na Vaší instalaci Fluxboxu.
Nejdříve si otevřete nějaký styl ve Vašem oblíbeném textovém editoru (já doporučuji vim). Podívejte se na jeho strukturu a uspořádání. Už jen tento pohled Vám dá odpověď na spoustu otázek, které byste mohli mít.
Styl je tvořen několika hlavními částmi, které mají své vlastní direktivy. Mezi hlavní části patří toolbar, menu a window. Direktivy window.* určují vzhled orámování oken, window.tab.* určují vzhled horní lišty oken. menu.* nastavují okno, které uvidíte po zmáčknutí pravého tlačítka myši na ploše. toolbar.* je lišta, kterou vidíte na horním nebo spodním okraji Vaší obrazovky. Zevnějšek slitu (v jiných WM také nazýván dock nebo wharf) určuje nastavení toolbar a to i v případech, kdy je nemáte nastaveno.
Slit kopíruje nastavení toolbar a ve většině případů to vystačí. Pokud chcete nastavit výhradně slit použijte následující direktivy:
slit: [texture option]
slit.color: [color value]
slit.colorTo: [color value]Tyto direktivy slitu pracují stejně jako u menu, window atd.
Někde v konfiguračním souboru stylu můžete vidět řádek s direktivou rootCommand na jeho začátku a tato je nejčastěji následována příkazem (pravděpodobně bsetbg) k nastavení obrázku nebo barvy pozadí stylu. Můžete použít jiný příkaz rootCommand než bsetbg, ale toto bych nedoporučoval. bsetbg volá další příkazy k nastavení obrazovky. Takto můžete nastavit, který program chcete použít (Esetroot např.) a ten bude použit ve všech stylech, které užívají bsetbg.
Jistě, stačí přidat na začátek řádky křížek (#), vykřičník (!), nebo použijte komentáře ve stylu C++ (//).
Podívejte se na soubory stylů dodávané s Fluxboxem, měli byste v nich najít odpovědi na Vaše otázky, případně zkuste jiná nastavení. Pokud stále ještě nerozumíte, zastavte se na #fluxbox na OPN. Moje přezdívka je demerol.
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:
Toto změní nastavení hodin toolbaru na zelenou. green. Další příklad:
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:
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/2Nemě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říkaz | Popis |
|---|---|
| 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 / Solid | kreslí buď plný nebo vystouplý typ textury. |
| Horizontal / Vertical / Diagonal / Crossdiagonal / Pipecross / Elliptic / Rectangle / Pyramid | Vybírá jednu z těchto textur. Tyto pracují jen pokud je nastaven typ textury Gradient. |
| Interlaced | proklá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 / Bevel2 | druh 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ř.
Přispěl Verin.
Správce oken je jen další aplikace pro X11, stejně tak jako netscape nebo gimp nebo xterm. Mnoho lidí neznalých X11 si myslí, že X11 ovládá správce oken a správce ovládá další programy. Ale to není pravda. Ve správné konfiguraci můžete spouštět všechny aplikace přímo pod X11, zavřít správce oken a dalšího správce oken zase spustit.
Jediný skutečný program, který X11 spouští a který spouští další programy je Váš .xinitrc nebo .xsession skript. Když jsou X11 spuštěny, .xinitrc nebo .xsession je spuštěn také a když je tento skript ukončen, X11 jsou ukončeny stejně tak. Dovolte mi to zopakovat, je to důležité: když je .xinitrc ukončen, je to proto, že X končí. Ne proto, že končí Váš okenní manažer.
Dobře, nejdříve si připomeňme to, co již víme. Když spustíte program z příkazové řádky, nemůžete dělat nic jiného dokud program není hotov, dokud neskončí. Váš .xinitrc nebo .xsession skript se chová stejně tak. Když je spuštěn a provádí příkazy jeden po druhém a narazí na program, jehož vykonávání zabere dlouhou dobu (většina X11 programů), zastaví se vykonávání skriptu do té doby, dokud spuštěný program neskončí.
Ideálně byste měli mít jen jedno místo, kde skript zůstane 'viset'. A obvykle byste měli chtít, aby to bylo na jeho konci. Takže, pokud máte v úmyslu spouštět programy pod X11 před tím, než skript dosáhne místa, kde zůstane 'viset', musíte je spouštět na pozadí. Jen vložíte & na konec řádky. Takže, řekněme že chcete spustit xclock spolu s dalšími programy, potom vložte tento řádek před konec vašeho skriptu:
xclock &
Další věc je příkaz exec, jehož použití doporučuje mnoho zdrojů jako spouštěcí mechanizmus okenního manažeru do Vašich skriptů. Toto není bezpodmínečně nutné, protože pokud umístíte název spouštěcího souboru správce oken na poslední řádek skriptu, fungování se bude jevit stejné jako s exec.
Takže proč vůbec exec použít? Řekněme, že chcete vložit více startovacích příkazů různých okenních manažerů do skriptu a zároveň chcete aby se spouštěl pouze jeden správce oken. S příkazem exec můžete startovací příkaz vybraného správce oken umístit jako první nad všechny ostatní startovací příkazy dalších okenních manažerů, neboť příkaz exec znamená toto:
"Nahraď mě samotného tímto programem, tzn. spusť program a když tento program skončí, ukonči mě také. "
Tedy pokud vložíte např. řádek exec wmaker nad exec enlightenment potom, když je wmaker ukončen, je ukončen i skript, který nikdy nepokračuje na další řádek.
Už tedy víte, proč jej pokládám za nepříliš důležitý? Můžete právě tak vložit hromadu zakomentovaných startovacích řádků správců oken a fungovalo by to stejně.
Alternativně můžete okenní manažer spustit jako první, a uchovat si ID jeho procesu v proměnné prostředí:
wmaker & wmpid=$!
spouští program na pozadí(&) a uchovává ID ($!) jeho procesu v proměnné (wmpid). K vytvoření čekacího bodu potom použijte wait:
wait $wmpid
nebo můžete zůstat 'viset' na programu, který užíváte vždy, jako např. gkrellma to pouze tím, že jej nespustíte na pozadí. Ale pamatuje, že jakmile tento program ukončíte, Vaše X11 skončí také.
Já nyní používám způsob s wait, protože si rád vybírám okenní manažer předtím, než spustím dokované a jiné programy. Také předtím, než začnu cokoliv jiného, upravím nastavení X11 serveru jako např. dpms, šetřič obrazovky a dokonce přidám nějaké adresáře do cesty k fontům (fonty, které nechci instalovat globálně pro celý systém). A potom, když je všechno hotovo, zase přidané cesty k fontům zruším, hlavně proto, že pokud běžel přihlašovací manažer, tento na resetování fontů není vhodný.
Example A-1. .xinitrc
# vypnout mazání obrazovky a zapnout režim energy star
xset s off
xset dpms 600 60 60
# přidat cestu k mým doplňkovým fontům
xset +fp "$X_FONTPATH"
xset fp rehash
# uložit výpis nastavení prostředí pro případ potřeby ladění
env > ~/.xenv
# správce oken
fluxbox & wmpid=$!
bbrun &
wmCalClock &
wmxmms &
# ČEKACÍ BOD - čekat dokud neskončí správce oken
wait $wmpid
# obnovit původní cestu k fontům
xset fp defaultPrvní věc, kterou se o Slitu dozvíte je, že to není panel úloh Fluxboxu.
Slit je místo, kde mohou být umístěny dokové aplikace (aplety). Máme celou kapitolu věnovanou Slitu: Chapter 7. Přečtěte si ji než se začnete ptát co je slit a jak pracuje.
S Fluxboxem verze 0.1.10 nebo vyšší ano. Vysvětlení je v Chapter 7.
Změňte tento řádek ve vašem souboru init:
session.screen0.strftimeFormat: %a %d %H:%M
Pro informace o formátu spusťte man 3 strftime na vašem počítači.
To je chyba ve verzích Fluxboxu předcházejících verzi 0.1.8-bugfix2. Prosím nainstalujte si poslední verzi / opravu chyb, než budete tuto chybu hlásit.
Vysvětluje Chapter 4.
S příchodem Fft jsou písma spravována jinak. Pro začátečníky: zkuste specifikovat v souboru vašeho Tématu:
*.font: Verdana:size=7
Samozřejmě můžete použít jiný druh písma a velikost, ačkoliv tento příklad by měl nabídky učinit použitelné. Pro informace o typech písma, které můžete použít, si přečtěte nasledující otázku. question.
Při zapnutí AA ve Fluxboxu závisí zobrazování znaků na Freetype2. Pokud nepoužíváte AA, může být použito nativní zobrazování písem z X11. Tím, že FT2 nepodporuje všechny formáty, které X11 podporuje, stává se výber písem pro Fluxbox ometeným. Když toto píšu, FT2 podporuje následující formáty:
TrueType soubory (.ttf) and sbírky (.ttc)
soubory písem Type 1 v ASCII (.pfa) nebo binárním (.pfb) formátu
písma Type 1 Multiple Master
písma Type 1 CID-keyed
písma OpenType/CFF (.otf)
písma CFF/Type 2
písma Adobe CEF (.cef)
Windows FNT/FON bitmapová písma
Na druhou stranu FreeType 1 podporuje pouze písma TrueType , ačkoliv podpora pro písma GX a OTF může být umožněna použitím jiné knihovny. Podrobnosti mohou být nalezeny na domovské stránce Freetype.
To vysvětluje Appendix D
Pokud se vám líbí písma Artwiz, ale nelíbí se vám jak vypadají v terminálech, zvažte vyzkoušení balíku písem LFP, z Linux Font Project. Jsou tam dvě sady písem, The LFP Fixed-Width Fonts (vhodné pro terminály), a LFP Variable-Width Fonts (vhodné pro ostatní věci). Písma s pevnou šířkou jsou rovněž k dispozici pro Linuxovou konzoli.
Vysvětluje Chapter 6.
Řešení obsahuje Chapter 6.
Jistě že můžete, ale nezapoměňte přidat nějaké řádky pro titlebar a keygrabbing. Možná by bylo moudré nějak symbolicky nalinkovat váš blackboxrc a ~/.fluxbox/init.
Ukazuje Appendix A.
Ano. Tarbally pro oba balíčky by měly být 100% zaměnitelné. To by mělo platit i pro projekty Waimea a Openbox, ačkoliv to nemohu zaručit. Neviděl jsem žádný takový slib od ani jednoho z těchto projektů, ale jeden z cílů Fluxboxu je zůstat kompatibilní s Blackboxovými styly.
Ukazuje Appendix A.
Ano! U configure použijte parametr --enable-kde. To zajistí, že se lištové ikony KDE objevují ve Slitu.
Ano! U configure použijte parametr --enable-gnome. To umožní pokyny Gnomu. Ve verzích Fluxboxu 0.1.12 a pozdějších je to přednastavené.
Jednoduše nalinkujte váš ~/.blackboxrc na ~/.fluxbox/init, například tímto příkazem:
$ ln -s ~/.fluxbox/init ~/.blackboxrc
0.1.14 nebo předcházející verze.
Aby taby vypadaly lépe, musíte přidat některé extra položky do vámi požadovaného stylu (tématu). Ačkoliv to nemusíte dělat, Fluxbox sám je velmi schopný v nastavování tabů na požadované barvy/styly, ale pokud chcete větší kontrolu nad tím jak vypadají, budete asi chtít přídat pár řádků jako tyto:
Example B-1. Upravené taby v souboru stylu
! -- tab style (for Fluxbox)
window.tab.justify: Right
window.tab.label.unfocus: Flat Solid
window.tab.label.unfocus.color: rgb:AC/AC/AC
window.tab.label.unfocus.textColor: black
window.tab.label.focus: Raised Solid
window.tab.label.focus.color: rgb:CC/CC/CC
window.tab.label.focus.textColor: black
window.tab.borderWidth: 1
window.tab.borderColor: rgb:10/10/10
window.tab.font: fixed
! --- end, tab styleDobře, co tohle všechno potom udělá? To samé jako jakákoliv ostatní věc v tématu, jsem si jist, že to pochopíte, pokud jste někdy předtím vytvořili téma pro Blackbox (Chapter 10 může být zajímavá pokud ne).
Pokud styl obsahuje některé extra položky, bude stále perferktně pracovat v Blackboxu, takže jejich přidáním nic neztratíte.
Toto je kompletní seznam dostupných direktiv určující jaké parametry je možné jim přiřadit. Podrobnosti o direktivách najdete v Chapter 10.
Table C-1. Styl nástrojové lišty
| toolbar | Textura |
| toolbar.height | Číslo |
| toolbar.color | Barva |
| toolbar.colorTo | Barva |
| Tlačítka | |
|---|---|
| toolbar.button | Textura nebo ParentRelative |
| toolbar.button.color | Barva |
| toolbar.button.colorTo | Barva |
| Barva šipek nezmáčkutých tlačítek | |
|---|---|
| toolbar.button.picColor | Barva |
| Zmáčknutá tlačítka | |
|---|---|
| toolbar.button.pressed | Textura (např. Sunken) nebo ParentRelative |
| toolbar.button.pressed.color | Barva |
| toolbar.button.pressed.colorTo | Barva |
| Barva šipek zmáčknutých tlačítek | |
|---|---|
| toolbar.button.pressed.picColor | Barva |
| Štítek plochy | |
|---|---|
| toolbar.label | Textura neboParentRelative |
| toolbar.label.color | Barva |
| toolbar.label.colorTo | Barva |
| toolbar.label.textColor | Barva |
| štitek plochy | |
|---|---|
| toolbar.workspace | Textura nebo ParentRelative |
| toolbar.workspace.pixmap | Pixmapa |
| toolbar.workspace.color | Barva |
| toolbar.workspace.colorTo | Barva |
| toolbar.workspace.textColor | Barva |
| toolbar.workspace.font | Font |
| štítek okna | |
|---|---|
| toolbar.windowLabel | Textura nebo ParentRelative |
| toolbar.windowLabel.color | Barva |
| toolbar.windowLabel.colorTo | Barva |
| toolbar.windowLabel.textColor | Barva |
| Hodiny | |
|---|---|
| toolbar.clock | Textura nebo ParentRelative |
| toolbar.clock.pixmap | Pixmapa |
| toolbar.clock.color | Barva |
| toolbar.clock.colorTo | Barva |
| toolbar.clock.textColor | Barva |
| toolbar.clock.font | Font |
| Prázdný ikonbar | |
|---|---|
| toolbar.iconbar.empty | Textura nebo ParentRelative |
| toolbar.iconbar.empty.pixmap | Pixmapa |
| toolbar.iconbar.empty.color | Barva |
| toolbar.iconbar.empty.colorTo | Barva |
| toolbar.iconbar.empty | Textura nebo ParentRelative |
| Zaměřený a nezaměřený ikonbar | |
|---|---|
| toolbar.iconbar.focused | Textura nebo ParentRelative |
| toolbar.iconbar.focused.pixmap | Pixmapa |
| toolbar.iconbar.focused.color | Barva |
| toolbar.iconbar.focused.colorTo | Barva |
| toolbar.iconbar.focused.textColor | Barva |
| toolbar.iconbar.focused.font | Font |
| Text | |
|---|---|
| toolbar.justify | center, left, or right |
| toolbar.font | Font |
Table C-2. Styl menu
| Název | |
|---|---|
| menu.title | Textura |
| menu.title.color | Barva |
| menu.title.colorTo | Barva |
| menu.title.textColor | Barva |
| menu.title.font | Font |
| menu.title.justify | center, left, or right |
| Rámeček | |
|---|---|
| menu.frame | Textura |
| menu.frame.color | Barva |
| menu.frame.colorTo | Barva |
| menu.frame.textColor | Barva |
| menu.frame.disableColor | Barva |
| menu.frame.font | Font |
| menu.frame.justify | center, left, or right |
| Odrážky submenu | |
|---|---|
| menu.bullet | empty, triangle, square, or diamond |
| menu.bullet.position | right or left |
| menu.submenu.pixmap | Pixmapa |
| Zvýrazněná položka | |
|---|---|
| menu.hilite | Textura (např. Raised) |
| menu.hilite.color | Barva |
| menu.hilite.colorTo | Barva |
| menu.hilite.textColor | Barva |
| menu.selected.pixmap | Pixmapa |
| menu.unselected.pixmap | Pixmapa |
Table C-3. Styl okna
| Název | |
|---|---|
| window.title.focus | Textura |
| window.title.focus.color | Barva |
| window.title.focus.colorTo | Barva |
| window.title.unfocus | Textura |
| window.title.unfocus.color | Barva |
| window.title.unfocus.colorTo | Barva |
| window.title.height | Číslo |
| Štítek | |
|---|---|
| window.label.focus | Textura nebo ParentRelative |
| window.label.focus.color | Barva |
| window.label.focus.colorTo | Barva |
| window.label.focus.textColor | Barva |
| window.label.unfocus | Textura nebo ParentRelative |
| window.label.unfocus.color | Barva |
| window.label.unfocus.colorTo | Barva |
| window.label.unfocus.textColor | Barva |
Table C-4. Úchopová lišta
| window.handle.focus.color | Barva |
| window.handle.focus.colorTo | Barva |
| window.handle.unfocus | Textura |
| window.handle.unfocus.color | Barva |
| window.handle.unfocus.colorTo | Barva |
Table C-5. Rámeček přemístění
| window.grip.focus | Textura |
| window.grip.focus.color | Barva |
| window.grip.focus.colorTo | Barva |
| window.grip.unfocus | Textura |
| window.grip.unfocus.color | Barva |
| window.grip.unfocus.colorTo | Barva |
Table C-6. Tlačítka okna
| window.button.focus | Textura nebo ParentRelative |
| window.button.focus.color | Barva |
| window.button.focus.colorTo | Barva |
| window.button.focus.picColor | Barva |
| window.button.unfocus | Textura nebo ParentRelative |
| window.button.unfocus.color | Barva |
| window.button.unfocus.colorTo | Barva |
| window.button.unfocus.picColor | Barva |
| window.button.pressed | Textura |
| window.button.pressed.color | Barva |
| window.button.pressed.colorTo | Barva |
Table C-8. Tab
| window.tab.justify | right, left or center |
| window.tab.label.unfocus | Textura |
| window.tab.label.unfocus.color | Barva |
| window.tab.label.unfocus.textColor | Barva |
| window.tab.label.focus | Textura |
| window.tab.label.focus.color | Barva |
| window.tab.label.focus.textColor | Barva |
| window.tab.borderWidth | Počet pixelů |
| window.tab.borderColor | Barva |
| window.tab.font | Font |
Table C-10. Různé
| Okraj kreslený kolem všech komponent | |
|---|---|
| borderWidth | Počet pixelů |
| borderColor | Barva |
| bevelWidth | Počet pixelů |
| handleWidth | Počet pixelů |
| frameWidth | Počet pixelů |
| Příkaz vykonaný vždy, když je nahrán nový styl | |
|---|---|
| rootCommand | Shelový příkaz, např. bsetbg nicepiccy.jpg |
| Staré BB 0.51 zdroje | |
|---|---|
| menuFont | Font |
| titleFont | Font |
Takzvané Artwiz Fonty jsou fonty vytvořené (překvapivě) člověkem, jehož jméno je Artwiz. Byl tak laskav a vložil balík s jeho fonty na jeho stránky. Můžete si je stáhnout zhttp://www.xs4all.nl/~hanb/software/fluxbox/artwiz-fonts.tar.bz2.
Nemusíte instalovat fonty ručně pokud používáte Mandrivu a RPM. Tento je má již obsaženy v archívu. Pokud Mandrivu nepoužíváte, zde je postup jak fonty instalovat. Jsou dva způsoby, jak fonty instalovat: pro celý systém nebo pouze pro jednotlivého uživatele.
Pokud chcete instalovat fonty pro všechny uživatele systému, potom stáhněte balík do adresáře /tmp a pokračujte zadáváním těchto příkazů:
# cd /usr/X11R6/lib/X11/fonts
# tar xjf /tmp/artwiz-fonts.tar.bz2
# cd fluxbox-artwiz-fonts
# mkfontdir
# chkfontpath -q -a /usr/X11R6/lib/X11/fonts/fluxbox-artwiz-fonts:unscaledA restartuje font-server. Vaše distribuce může mít jiné umístění systémových fontů jako např. /usr/share/fonts. Adresář uvedený výše je ovšem většinou používán jako výchozí.
Pokud chcete fonty instalovat pouze pro určtého uživatele pak máte méně práce. Stáhněte balík do domovského adresáře a potom:
$ tar xjf artwiz-fonts.tar.bz2
$ mv fluxbox-artwiz-fonts .fonts
$ mkfontdir $HOME/.fontsEditujte Váš .xinitrc nebo .xsession soubor (závisí na způsobu jakým spouštíte X11) tak, aby obsahoval následující řádky před voláním dalších programů:
xset +fp $HOME/.fonts
Potom (znovu)spusťte X11 a použijte xlsfonts nebo xfontsel ke zkontrolování jestli jsou fonty správně rozpoznány systémem.
Artwiz fonty někdy kolidují s nastavením národního prostředí. Pro zajištění správné funkce musíte vložit následující na začátek vašeho .xinitrc nebo .xsession:
export LC=C
export LC_ALL=CTato nastavení jsou pro LOCALES, takže pokud fonty stále nefungují tak, jak by měly, nebo máte jiné problémy týkající se LOCALES, řádky zase odstraňte. Existuje ještě další řešení od aleczapka, uvedené níže.
A zde je řešení jak užívat Vaše národní nastavení a přitom se zároveň těšit z fontů Artwiz ve Fluxboxu.
Řešení je velice jednoduché. To, co musíte udělat je upravit Váš fonts.alias (a/nebo fonts.dir) soubor.
Toto také řeší problémy s ostatními aplikacemi (např. Evolution a UTF-8). Nejdříve je potřeba mít správný fonts.dir soubor. Měl by být umístěn v adresáři kde jsou nainstalovány fonty Artwiz. Pokud tomu tak není potom vstupte do tohoto adresáře a spusťe mkfontdir.
Syntaxe souboru je jednoduchá. První řádek obsahuje pouze počet fontů v adresáři. Všechny následující řádky jsou následujícího tvaru
soubor_fontu název_fontu
Zde je jako příklad uveden obsah souboru fonts.dir:
Example D-1. fonts.dir
14 glisp.pcf.gz -artwiz-glisp-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv gelly.pcf.gz -artwiz-gelly-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv edges.pcf.gz -artwiz-edges-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv nu.pcf.gz nu drift.pcf.gz drift cure.pcf.gz cure aqui.pcf.gz aqui lime.pcf.gz -artwiz-lime-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv snap.pcf.gz -artwiz-snap-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv
Co nás zajímá jsou položky jejichž obsahem jsou pouze krátké popisy fontů, v našem případě fonty Nu, Drift, Cure and Aqui. Problémem je, že tyto položky postrádají plný popis fontu ve stylu X11.
Změnte soubor následnovně:
14 glisp.pcf.gz -artwiz-glisp-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv gelly.pcf.gz -artwiz-gelly-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv edges.pcf.gz -artwiz-edges-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv nu.pcf.gz -artwiz-nu-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv drift.pcf.gz -artwiz-drift-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv cure.pcf.gz -artwiz-cure-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv aqui.pcf.gz -artwiz-aqui-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv lime.pcf.gz -artwiz-lime-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv snap.pcf.gz -artwiz-snap-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv
Poslední věcí je změna souboru fonts.alias (k použití fontů i s jiným enkódováním než iso646).
Syntaxe je alias_fontu název_fontu. Např. aby fonty pracovaly i v enkódování ISO-8859-2, vytvořte pro toto enkódování alias (vše jeden řádek).
-artwiz-anorexia-medium-r-normal--11-110-75-75-p-90-iso8859-2 -artwiz-anorexia-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv
Můžete se také podívat na mé fonts.dir and fonts.alias soubory, podporují ISO-8859-1, ISO-8859-2, a iso10646-1 (UTF-8). Pokud nastavíte vše tak, jak je popsáno výše, potom nebudete muset měnit LC_* proměnné na C nebo POSIX. A všechny aplikace (ne jen Fluxbox) budou fungovat tak, jak by měly; žádná chybová hlášení "nemůžu převést znakovou sadu" nebo podobné.
Odlaďování je dovednost, kterou se můžete naučit. Existuje několik dobrých dokumentů, které popisují jak vytvořit dobré chybové hlášení. Prosím, přečtěte si je předtím, než začnete hlášení vytvářet, chyba neuteče a Vás to nezabije. Raději budeme chtít zabít chybu a k tomu budeme potřebovat Vaši pomoc. Takže, pojďme do boje dobře připraveni. Dva dobré dokumenty jsou Bugzilla Bug Reporting HOWTO a od Simona Tathamse How to Report Bugs Effectively.
Vzhledem k podstatě některých neoficiálních patchů je není možné všechny podporovat. To znamená (pro Vás), že byste měli ověřit zda Fluxbox padá také bez aplikovaných patchů. Pokud byly patche Vašeho Fluxboxu aplikovány správcem distribuce, dejte mu o této záležitosti vědět.
Pokud potřebujete s odlaďováním více pomoci než může tento průvodce poskytnout, podívejte se na #fluxbox irc.freenode.net po nápomocných lidech. Protože hlavní vývojáři a další kvalifikovaní lidé jsou obvykle zde, jsou šance že problém bude vyřešen.
Podobně jako ostatní aplikace Fluxbox vypisuje informace do konzoly, z které byl spuštěn. Problém je, že ve standardních podmínkách jdou všechny informace do textové konzoly. Změňte startovací řádek Fluxboxu na exec xterm nebo na Váš jakýkoli jiný oblíbený emulátor terminálu. Spustěte X11 a následně Fluxbox v terminálu a hle, uvidíte všechny zprávy poskytované Fluxboxem.
Chceme hodně věcí. Ujistěte se, že o nich víte všechno.
Váš operační systém / distribuci a jejich verze.
Verzi Fluxboxu, pokud je z CVS (nebo vývojového tarballu) potom den?
Kdy se to stalo? Dělali jste něco? Můžete to zopakovat?
Vaše nastavení. Ta můžou být nalezena v ~/.fluxbox/init
Pokud se Vám někdy podařilo získat core dump soubor s Fluxboxem, udělejte následující: Běžte na kanál #fluxbox na OPN a řekněte fluxgenu, že máte core dump. Dejte mu všechny informace, které po Vás bude požadovat. Pravděpodobne po Vás bude chtít následující. Je toho docela dost, ale každý s trochou normální inteligence a nějakými zkušenostmi s Unixovým systémem to zvládne. Ještě budete potřebovat také GNU odlaďovač, nazývaný gdb.
Ano, četli jste správně. Abyste se stali opravdovým odlaďovačem musíte rekompilovat Fluxbox s odlaďovacími symboly.
Kompilujte Fluxbox jako obvykle, ale ještě přidejte následující volby předtím, než zadáte make:
$ CFLAGS=-Wall -g3 CXXFLAGS=-Wall -g3 make
Pokud používáte RPM balíčky zdrojových souborů ze stránek Fluxboxu nebo z Vaší distribuce, potom bude postup vypadat přibližně takto:
$ su
# rpm -ivh fluxbox-0.1.11.1mdk.src.rpm
# cd /usr/src/RPM/SPECS
# env DEBUG=true rpm -ba fluxbox.spec
# rpm -Uvh --force /usr/src/RPM/RPMS/i686/fluxbox*
# exit
$ mkdir -p ~/src/fluxbox
$ cp -R /usr/src/RPM/BUILD/fluxbox* ~/src/fluxboxBěžte do adresáře Fluxboxu (abysme dostali core dump na správné místo). Shell má jednu vychytávku, která vypíná tvorbu core dump souborů, takže se ujistěte, že máte core dumpy povoleny:
$ ulimit -c unlimited
Spustěte X11 a začněte ladit. Dělejte stejné věci, které vedou k pádu Fluxboxu a tvorbě core dump souboru. A nyní začneme s odlaďováním:
$ gdb fluxbox core
A vložte tento příkaz do gdb (první část je promt gdb, tu nepište :)):
(gdb) where
Dostanete hodně výstupních informací. Fluxgen požaduje všechny informace, které začínají na #.
Přiložte je do e-mailu adresovanému Fluxgenu společně se čtyřmi konfiguračními soubory v ~/.fluxbox/.
Ještě nemažte core soubor ani adresář se zdrojovými soubory. Fluxgen po Vás ještě může chtít další informace a proto je v budoucnu možná budete potřebovat. Pokud Vás o to Fluxgen výslovně nepožádá, neposílejte core soubor, protože se týká pouze Vašeho systému a taky z toho důvodu, že tyto soubory bývají většinou docela obsáhlé.