Hlavní navigace

FluxBox

16. 3. 2004
Doba čtení: 7 minut

Sdílet

V tomto článku si přiblížíme lehkotonážní window manager Fluxbox, založený na známějším Blackboxu, mezi jehož výhody patří zejména rychlost a snadná konfigurovatelnost.

Co je to Fluxbox?

Fluxbox je window manager pro X-window-system – což znamená, že se nejedná o komplexní grafický desktop jako KDE či Gnome, Fluxbox se stará „pouze“ o umisťování oken, jejich dekorace, virtuální plochy… neposkytuje tedy sjednocený vzhled aplikací či ikonky na ploše (sice jdou dodatečně nahrát, ale pak to ztratí své kouzlo). Fluxbox je založený na kódu Blackboxu (který se v současné době nezdá být nějak moc vyvíjený) a je s ním kompatibilní, a to v konfiguračních souborech i ve stylech/tématech.

Pokuď tedy chcete zkusit nějaké odlehčené grafické prostředí, doporučuji právě Fluxbox!

Filozofické zamyšlení

Co je to desktop? Myslím to grafické prostředí, které většina lidí používá na svých počítačích. Uměli byste definovat, co to je? Já to vidím takhle: barevné ikonky na ploše, dole panel, ve kterém vidíme, kolik máme otevřených programů, barevný obrázek na pozadí. Grafická prostředí v tomto stylu jsou pro Linux dvě: Gnome a KDE. Nebavme se teď o rozdílech mezi nimi – je to v podstatě jedno a to samé. Jsou prý verzi od verze rychlejší, multimediálnější, rozsáhlejší… proto je všichni používáme a těšíme se na jejich nové verze.

Ale opravdu to chcete? Nebylo by lepší nahradit barevné ikonky klávesovými zkratkami? Dolní taskbary a applet panely jednoduchým panelem s hodinami a aktuální plochou, který dokonale plní svoji funkci? A kdyby to tak startovalo za jednu sekundu, nezabíralo skoro žádnou pamět, ovládalo by se to několikát rychleji, žádný otravný integrovaný prohlížeč webových stránek s prohlížečem souborů ala průzkumník, díky své jednoduchosti by to bylo stabilní a hlavně by se to celé konfigurovalo pomocí tří textových souborů, jak je v Unixech zvykem, a ne nějakým registry-like systémem či pár stovkami přehledných xml souborů? To není žádná novinka – jednoduché window managery tu vždycky byly a budou, je jich obrovská spousta a já bych se s vámi chtěl podělit o své zkušenosti právě z Fluxboxu.

Instalace – kompilace

Na domácích stránkách projektu Fluxbox najdete několik předkompilovaných balíčků. Třeba tam naleznete nějaký i pro vaši distribuci, já ale doporučuji zkompilovat si to sami. Tak budete mít jistotu, že máte opravdu jen to, co chcete. Já používám několik měsíců vývojovou verzi a nezaznamenal jsem jediný problém, tak vám ji s klidným srdcem doporučím. Vývojová verze umí totiž nové vychytávky jako přepínaní rozlišení za chodu (samozřejmě potřebujete XFree s touto vlastností) nebo taby vnořené do rámů oken, průhlednost apod.

Stáhněte si z mirroru archiv s Fluxboxem, rozbalte (přepokládám, že takové věci už umíte, jinak se do toho radši ani nepouštějte…) a pomocí klasických příkazů ./configure; make; make install; zkompilujte. Já jsem použil toto nastavení pro ./configure:

$ ./configure --disable-xmb --disable-xpm --disable-xrender --disable-xft --disable-gnome --disable-shape 
  •  –disable-xmb vypne podporu utf8 fontů
  •  –disable-xpm vypne podporu obrázkových témat
  •  –disable-xrender vypne podporu průhlednosti
  •  –disable-xft vypne podporu vyhlazovaných fontů
  •  –disable-gnome vypne podporu GNOME
  •  –disable-shape vypne podporu oblých okrajů oken

Tím „vypne podporu“ myslím, že se dané věci nebudou zakompilovávat do binárky Fluxbox a běh bude rychlejší – třeba na mém pomalém stroji se při zapnuté xrender podpoře trhá menu, i když je průhlednost nastavená na nulu… ale pokuď máte silný stroj, klidně nechte vše zapnuto – Fluxbox bude i tak ďábelsky rychlý.

Spuštění – první pohled

Pokuď instalace proběhla v pořádku, přistupme ke spuštění. Vypněte svůj X-window-system a na konec souboru ~/.xinitrc přidejte příkaz fluxbox. Pokud používáte grafické přihlašování pomocí GDM či KDM, zauvažujte napřed, jestli je opravdu potřebujete, a když ne, smažte je a vraťte se k editaci .xinitrc :) Pokud je potřebujete, přiklikejte si do jejich menu Fluxbox.

Konkrétně mě po spuštění překvapí něco takového:

prvni

Chyba není na vašem příjmači, obrázek je opravdu z 99% černý a dole je pouze úzký modrý panel a napravo malá ikonka. Čekali jste něco víc?:) Ale abych nekřivdil, tak přidávám jeden screenshot Fluxboxu z jeho stránek, tenhle už vypadá reprezentativ­něji.

Ovládání

Standardně to funguje tak, že když pravým tlačítkem myši kliknete někam na plochu, zjeví se vám menu s programy – je to rychlejší než najíždět do dolního rohu a klikat na „start“ like tlačítka… a v nastavení si ukážeme, jak si nadefinovat klávesové zkratky pro spouštění aplikací.

Nastavení

Veškeré uzpůsobování FluxBoxu vašim požadavkům se bude dít skrz tyto soubory:

$ ls ~/.fluxbox/
init keys menu

O celé nastavení vašeho nového grafického prostředí se tedy starají pouze tři soubory, pokud to nechcete dělat ručně, je možné použít grafická klikátka.

Nejprve soubor menu  – v něm je uloženo to menu, které se zobrazí po pravém myšoidním kliku na plochu – v přehledném textovém souboru s lehce pochopitelnou strukturou:

[begin] (MyFluX)

[exec] (k3b) {k3b}
[exec] (dc) {dcgui-qt}
[exec] (pwm) {pwm}
[exec] (mozilla) {mozilla}
[exec] (oowriter) {/usr/local/OpenOffice.org1.1.0/program/swriter}
[exec] (FireFox) {MozillaFirebird}
[exec] (konqueror) {konqueror --profile webbrowsing}
[exec] (kalkulacka) {xcalc}
[exec] (lexicon) {wine ~/uninst/Lexicon/LEXICON.EXE}

[submenu] (fluxbox)
        [workspaces] (workspaces)
        [submenu] (themes) {choose theme...}
        [stylesdir] (~/.fluxbox/styles)
        [end]
        [config] (fluxconf)
        [reconfig] (reconfigure)
[end]
        [restart] (restart)
[exit] (exit)
[end] 

Tak vypadá můj soubor s menu. Funguje to následovně:

[begin] je začátek menu. [end] uzavíra menu i každé [submenu] [exec] znamená spuštění příkazu (název programu)(název, pod kterým bude vidět v menu) {příkaz, který se vykoná}

Soubor keys  – v něm jsou uloženy klávesové zkratky pro spouštění aplikací – zvykněte si na to, je to pak úžasně rychlé, pohodlné a okolí oslňující;) Můj soubor vypadá takto:

Mod1 F1 :Workspace 1
Mod1 F2 :Workspace 2
--zkraceno--

Mod4 F1 :SendToWorkspace 1
Mod4 F2 :SendToWorkspace 2
--zkraceno--

Mod4 Tab :NextWindow
Mod4 F12 :ToggleDecor
Mod4 F11 :ShadeWindow
Mod4 tab :NextTab
Mod4 x :MaximizeWindow
Mod4 Mod1 z :Close
Mod4 k :KillWindow

Mod4 o :ExecCommand opera
Mod4 g :ExecCommand gimp-1.3
Mod4 q :ExecCommand gqview
Mod4 s :ExecCommand sylpheed
Mod4 l :ExecCommand xscreensaver-command -lock
Mod4 h :ExecCommand xmms

Mod4 t :ExecCommand rxvt -fg gray -bg black -fn -misc-fixed-medium-r-normal-*-*-200-*-*-c-*-iso8859-2 -fb -misc-fixed-medium-r-normal-*-*-200-*-*-c-*-iso8859-2 -sr

Mod4 c :ExecCommand setxkbmap cz_qwerty
Mod4 u :ExecCommand setxkbmap us 

Formát souboru je opět jednoduchý a pochopitelný:

Kombinace kláves : akce

Kombinacemi kláves můžou být různé kombinace funkčních kláves (crtl, alt, shift) + nějaký znak (třeba písmeno). Mod1 značí alt a podobně…

Mod4 o :ExecCommand opera

Takže tohle znamená, že když stisknu „tlačítko s logem jednoho nejmenovaného OS“ + o, spustí se webový prohlížeč Opera.

Soubor init. V něm jsou uloženy takové věci jako cesty k dalším konfiguračním souborům (dalším dvěma:) nebo pořadí tlačítek na rámech oken, šířka panelu, formát času apod. Vše je přehledně popsáno v manuálu a původní hodnoty jsou ve většině případů vyhovující. Tady je jeho kousek:

session.titlebar.left:  Minimize
session.titlebar.right: Maximize Close
session.screen0.toolbar.layer:    Desktop
session.screen0.toolbar.maxOver:  false
session.screen0.toolbar.autoHide: false
session.screen0.toolbar.visible:  true
session.screen0.toolbar.mode:  Workspace
session.screen0.toolbar.widthPercent: 70
session.screen0.toolbar.height: 16
session.screen0.toolbar.tools:  workspacename, iconbar, systemtray, clock
session.screen0.toolbar.onhead: 0
session.screen0.toolbar.onTop:  false
session.screen0.toolbar.placement:  BottomLeft
session.screen0.tab.rotatevertical: true
session.screen0.tab.alignment: Right
session.screen0.tab.height:    16
session.screen0.tab.placement: Bottom
session.screen0.tab.width:     64
session.screen0.slit.layer:    Bottom
session.screen0.slit.maxOver:  true
session.screen0.slit.direction: Horizontal
session.screen0.slit.autoHide: false
--zkraceno-- 

Význam většiny voleb jde odhadnout z názvu a nebo je všechny najdete v manuálu. Tyto mám upravené k obrazu svému:

session.titlebar.left:  Minimize
session.titlebar.right: Maximize Close

Což znamená, že tlačítko pro minimalizaci je v levém horním rohu – je to pro mě rychlejší ho najít, než když jsou všechna (maximalizovat, zavřít) v kupě. Další věc je ale ta, že okna prakticky neminimalizuju – používám více ploch, k tomu později.

session.screen0.strftimeFormat: %H:%M  %d. %m. %Y

To zase způsobí, že čas bude zobrazován ve tvaru hodiny:minuty den. měsíc. rok. A naleznete spoustu dalších zajímavých voleb… Doporučuji celý soubor za začátku projít a nastavit – aby se vám s Fluxboxem dobře pracovalo, musíte si ho nastavit podle sebe.

A abyste nebyli ochuzeni o barevný obrázek na ploše, tak vězte, že ten se nastavuje pomocí příkazu  fbsetbg.

Styly

O grafický vzhled Fluxboxu se starají „styly“. Styl je jednoduchý textový soubor, kde je uloženo, jakou co má barvu, popřípadě písmo apod. Několik desítek pěkných stylů přichází s vaší instalací Fluxboxu a další stovky můžete nalézt na internetu. Přepínají se pomocí menu.

Slit

Slit je část Fluxboxu, kde mohou bežet programy ve stylu appletů – Fluxbox podporuje různé „bb“ utilitky z blackboxu jako bbmail – oznamovač nové pošty, bbmount – jedoduché připojování a odpojování médií. Dále umí zobrazovat i DockAppy – určené pro windowmaker.

root_podpora

Fluxbox umí do slitu dokovat i aplikace z KDE a Gnome, pokud jste tedy nevypnuli jejich podporu, jak jsem vám radil:)

Závěr

Zkuste chvíli s Fluxboxem pracovat a sžít se s ním, nejde to ze začátku snadno, ale vyplatí se to. Taky můžete zkusit používat programy nezávisejcí na Gnome a KDE – nebudou se pak zbytečně do paměti natahovat jejich knihovny. Namátkou vybírám: pošta – sylpheed, web – opera, prohlížeč obrázků – gqview

Byl pro vás článek přínosný?

Autor článku